分布式点点滴滴
个人工作学习总结
尹忠政
奋斗的年纪
展开
-
IO-BIO实现聊天室
IO-BIO实现聊天室(Socket全双工)概述本次实现的是一个聊天室,使用的是TCP/IP协议,使用自定义传输协议。多个客户端连接上服务端,客户端发送消息到服务端,服务端将客户端加入到客户端队列,通过loop队列,向所有的客户端转发消息。此处转发为同步转发,意味着先加入的客户端将优先收到消息。当客户端离线的时候,服务端将从队列中移除,并且终止针对该客户端的轮询。流程图服务端获取客...原创 2019-01-12 21:26:45 · 901 阅读 · 0 评论 -
dubbo分布式项目架构组建-rxcq
分布式项目rxcq 架子闲聊分布式分布式架构,我的理解是,大的逻辑是将应用按照模块进行拆分,如果某个模块的某个点热度比较高,可以考虑将此功能拆出来,单独部提高吞吐量分布式架构实现了业务和api接口的分离,通过dubbo实现RPC通信,API不在参与具体业务。3.通过使用消息队列组建来解耦可被异步调用的一些业务,如验证码相关,邮件相关、用户积分相关、推送相关、日志相关等一些可以异步的操...原创 2019-01-09 16:27:32 · 353 阅读 · 0 评论 -
Dubbo源码解析-bean的创建和服务暴露
Dubbo源码解析-bean的创建和服务暴露项目中使用了dubbo有一段时间了,以前公司项目是ssm架构的单体应用,目前由于项目模块不断增长,开发迭代需要加快的前提下,参与了公司的项目改造,在dubbo和springCloud的权衡后还是选择了dubbo。dubbo bean加载过程dubbo利用spring中schema扩展编写schema扩展文件(xsd文件)在classpa...原创 2019-01-06 12:11:23 · 366 阅读 · 0 评论 -
Zookeeper-针对比较重要的API内容解析
Zookeeper-针对比较重要的API内容解析versionZookeeper对ZNode进行事务(可以对数据造成更改的操作)操作时,采用CAS(Compare And Swap)无锁机制来进行数据交换。CAS无锁机制相比锁机制具有更改的性能(线程无序等待,减少了线程切换),但是会造成ABA的问题。所以引入了version字段来很轻易的解决这个问题,这点很重要。ZNode的节点类型...原创 2019-01-02 21:01:50 · 343 阅读 · 0 评论 -
Zookeeper原生API--令人费解的bug
Zookeeper原生API bug问题Zookeeper客户端在创建远程连接的时候,不会抛出超时异常查看源码connectTimeout = sessionTimeout / hostProvider.size();hostProvider是Zookeeper集群元素对象,size代表着集群中实例的个数。但是一直未见其抛出IO异常,这个问题困扰着我。一种替代方案package ...原创 2019-01-02 08:37:20 · 489 阅读 · 0 评论 -
分布式-传统事务理解心得
文章目录分布式-事务理解ACID隔离级别针对 隔离级别 提高数据操作的吞吐量[GitHub主页](https://github.com/yinzhongzheng/study)分布式-事务理解ACID原子性(AtomicAtomicity)原子性,表示最小执行单元,要么全执行,要么全部执行,和Java线程的原子性的区别在于,java在操作共享变量时,该操作对应的cpu指令的条数,由于...原创 2018-12-26 08:36:47 · 299 阅读 · 0 评论