A_80_java分布式系统
2021-04-15 22:55:51 0 举报
AI智能生成
全面、高效的知识图谱:A_80_java分布式系统!! 全面又深度的提升认知,达到实际应用的目的! 建议先纵观全局,掌握好大方向。 再根据自己的需要,针对性的学习某一个点,最后做到逐步由点及面。
作者其他创作
大纲/内容
分布式锁
redis
zookeeper
分布式事务
JTA事务
分布式事务:两段式提交(最终一致性)
分布式消息队列(MQ框架)
Redis
基于Key-Value对的NoSQL数据库,开发维护很活跃
zeromq
号称最快的消息队列系统,尤其针对大吞吐量的需求场景
kafka
高吞吐量的分布式发布订阅消息系统
非常特殊的消息机制,不同于传统的mq
阿里开源的RocketMQ
捐apache
RabbitMQ
使用Erlang编写的一个开源的消息队列
ActiveMq
高性能跨语言分布式发布/订阅消息队列系统,而Jafka是在Kafka之上孵化而来的,即Kafka的一个升级版
文章
RabbitMQ、ActiveMQ、ZeroMQ、Kafka之间的比较汇总
rabbitMQ、activeMQ、zeroMQ、Kafka、Redis 比较 - 二郎神 - 博客园
关于消息队列的使用----ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ
比较
有无broker(中间商)
kafka在乎的是性能,速度
如果你用kafka做通讯总线那绝对的不会快只能更慢;
rabbitmq追求的是灵活
你想要rabbitmq实现分布式,那真的是难为它
zeromq追求的是轻量级、分布式
如果你拿zeromq来做大数据量的传输功能,不是生产者的内存“爆掉”就是消费者被“压死”
持久化消息
zeroMq 不支持 , activeMq 和 rabbitMq 都 支持
技术点:可靠性、灵活的路由、集群、事务、高可用的队列、消息排序、问题追踪、可视化管理工具、插件系统、社区
RabbitMq最好,ActiveMq次之,ZeroMq最差
dubbo
DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。
常见的分布式应用架构风格有三种
分布式对象(Distributed Objects,简称DO)
架构实例有CORBA/RMI/EJB/DCOM/.NET Remoting等等
远程过程调用(Remote Procedure Call,简称RPC)
架构实例有SOAP/XML-RPC/Hessian/Flash AMF/DWR等等
表述性状态转移(Representational State Transfer,简称REST)
架构实例有HTTP/WebDAV
DO和RPC这两种架构风格在企业应用中非常普遍,而REST则是Web应用的架构风格,它们之间有非常大的差别
小结
分布式系统间的通讯接口,怎么防止外部调用
ip限制
appid+appsecret => token
...
参考
理解本真的REST架构风格
常见的分布式应用架构风格有三种
基于Consul的分布式锁实现
分布式锁的三种实现方式 - 推酷
Redis分布式锁----悲观锁实现,以秒杀系统为例
Redis分布式锁----乐观锁的实现,以秒杀系统为例 - 推酷
以交易系统为例,看分布式事务架构的五大演进
单数据库事务
基于后置提交的多数据库事务
两段式事务
prepare预提交与commit确认提交
两段式事务也就是著名的XA事务
XA是由X/Open组织提出的分布式事务的规范
TCC事务
TCC事务的全称为:Try-Confirm/Cancel,翻译成中文即:尝试、确定、取消
TCC事务是一种编程模式,如果SOA接口的提供者与调用者都遵从TCC编程模式,那么就能最大限度的保证数据一致性
差异
非TCC模式的扣除金币操作,接口提供者只需要提供一个SOA接口即可,接口的作用就是扣除金币
而TCC模式的扣除金币操作,接口提供者针对扣除金币这一操作需要提供三个SOA接口
扣除金币Try接口,尝试扣除金币
扣除金币Confirm接口,确定扣除金币
扣除金币Cancel接口,取消扣除金币
0 条评论
下一页