![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式
喝不醉的solace
这个作者很懒,什么都没留下…
展开
-
DUBBO SPI部分源码浅析
private static final Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();这里先上核心代码。 在分析dubbo源码时,我们发现每个config类里面都有这段代码。 首先,protocal类带有spi注解,我们可以确认,默认使用的DUBBO-P原创 2017-09-12 23:33:04 · 451 阅读 · 0 评论 -
kafka重复消费解决方案
重复消费场景:1.消费端消费能力比较低,处理消息速度慢2.根据kafka消费特性,消费者在每个partion上的位置都是一个整数,即消费下一条消息的偏移量。这个状态可以定期检查点,使得消息的确认变得非常的方便,消费者可以倒退回旧的偏移量,重新消费。3.消息处理完之后提交下一个消费的offset,而在session-time-out前,消息还没有处理完,但是已经超时被kafka视为消费失败...原创 2018-03-22 00:30:49 · 12627 阅读 · 0 评论 -
基于zookeeper分布式锁的实现
架构图如图所示 1. 首先创建持久化节点loker,每次获取锁,就去loker下创建临时顺序节点,锁用完后删除节点。 2. 每次创建节点后需要判断节点的是不是最小的,所以需要先排序所以节点,拿到比自己大的那个节点 3. 使用锁过程中,释放出现问题,则通过session_time_out来控制锁自动释放 4. 拿到比自己大的节点后监听exsit的watch被触发,注:一个节点只会监听比他...原创 2018-03-22 11:34:07 · 262 阅读 · 0 评论 -
浅谈高可用架构中NIO的重要性
一个功能引发的思考今天同事开发了一个文件读写的模块,发现读写性能异常的低,他的做法是单线程纯IO操作,频繁的打开关闭IO流,读写。 于是乎他问我这个应该怎么做,我给他讲解到这种做法的低效,建议他批量的一次性写入,频繁直接操作IO性能当然是无法接受的。再谈IO操作的演变BIO:传统的cs端架构,都是一个请求提交,后台一个专门的线程负责接受这个请求,分配给新的线程去处理。这种做法的缺...原创 2018-04-11 00:36:00 · 603 阅读 · 0 评论 -
Kafka线程模型
reactor模式可能这个模式很多人听起来会比较陌生,其实也很容易理解,类似观察者模式的,java NIO中提供了实现reactor模式的API,javaNIO工作流程如图 首先,selector创建serversocketChannel对象,并注册op_accept事件,serversocketChannel负责监听收到客户端连接请求,请求来了后,selector监听到op_acce...原创 2018-04-13 00:42:43 · 1818 阅读 · 0 评论 -
领域驱动模型之ERP单品模块架构设计
模块划分领域对象 用户根据持有的单据类型ID,去可用的单据流程池中查找单据流程池,拿到流程池之后,需要确定最终单据管理的操作是什么,相比原始业务对象,领域对象具有了行为资源库 一些基础的数据库交互操作,数据库与Elasticsearch缓存同步等操作,相比传统的VO,由资源库屏蔽了敏感的直接对底层访问,相比以前vo,具有更高的内聚,低耦合防腐层 在一个上下文中,有时需要对...原创 2018-07-10 23:44:40 · 637 阅读 · 0 评论