领域驱动设计
复杂软件设计的解决方案 DDD是Domain-Driven Design(领域驱动设计)的简称,它是一种解决复杂软件设计的方法论,它试图分离技术实现的复杂性,并围绕业务概念构建的领域模型,以解决软件难以理解,难以演进的问…
复杂软件设计的解决方案 DDD是Domain-Driven Design(领域驱动设计)的简称,它是一种解决复杂软件设计的方法论,它试图分离技术实现的复杂性,并围绕业务概念构建的领域模型,以解决软件难以理解,难以演进的问…
什么是CAP定理? CAP定理告诉我们,一个分布式系统不可能同时满足一致性(C:Consistency),可用性(A: Availability)和分区容错性(P:Partition tolerance)这三个基本需求,…
低成本防暴力破解&防CC攻击 fail2ban
hexo配置https
Iterm2 proxy
最近生产环境出现了一些NPE问题(微服务架构),上游保存了数据库之后,发送MQ消息通知下游,下游服务查询不到上游保存的数据,从而导致了NPE问题。 架构图大致如下: 怀疑一:数据库主从同步延时 可以确定的是数据库是多实例…
最近接手的项目遇到一个这样的问题:我们服务的一个接口需要循环查询另一个服务的接口,这样如果数据量较多的时候,我们服务的接口响应时间可能就会超时,伪代码如下: 这里先不讨论为什么不能让对方服务提供一个批量查询接口,然后通过…
在JAVA中大多数的同步类(比如ReentrantLock、CountDownLatch、Semaphore等)都是基于AbstractQueuedSynchronier(简称AQS)来实现的。AQS是一个提供了原子式的…
分代收集理论 现在大多数的垃圾回收都是基于分代理论设计的,不同厂商对于内存的操作细节都不太一样,所以这里不讨论具体垃圾回收算法的细节,只是介绍垃圾回收算法的一些思想。 分代收集虽然是一套理论,但是却是符合大多数程序运行的…