java随笔集
分布式事务解决方案
1.xa理论,二段提交分为协调者和参与者,第一阶段协调者发送准备指令给各个数据库,参与者各自在本地执行
各自事务但是不提交,发送准备提交的指令给协调者;第二阶段协调者统一发送commit指令给参与者各自提交
并返回ok指令给协调者,只要有一个没有ok就发送回滚指令给各自进行回滚
zk和eureka的区别
分布式cap理论:一致性,高可用和分区容错性
zk保证了cp一致性和分区容错在高可用上做了相关妥协,zk的zab理论就是基于崩溃恢复的原子广播机制,zk在
崩溃恢复阶段不可用,但是由于zk的watch机制,及zkService端发生改变时会产生watch时间发送到客户端,
客户端会通过zkwatchmanger保存客户端的事件注册,通知服务端watch为true,然后服务端通过watchmanger
来绑定相对的事件,客户端向服务端注册自己需要关注的节点,一旦发生改变服务端就会发送watch事件到客户端
,客户端接收消息后会去服务端获取数据
springcloud和dubbbo
1.前者基于http(restful接口)后者基于tcp(传输层协议,效率高)
2.注册中心eureka(集群中只要有一个可用,整体就可用)和zk(leader节点与超过半数的不一致就会进入崩溃
恢复,这期间不可用强一致性,高可用不如eaurk)
3.前者一个应用为一个服务,后者是接口,粒度不一样
4.前者是一个生态,提供了微服务一整套解决方案,而dubbo只是服务调用这一部分