- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于开发中系统之间耦合度⾼、业务拆分不明确等问题的解决⽅案
关于开发中系统之间耦合度⾼、业务拆分不明确等问题的解决⽅案
开发中遇到问题,向前辈请教以后整理了⼀下。
1消息中间件
1.1⽬前我⾃⼰开发的项⽬系统中存在的问题
服务和服务之间的耦合度很⾼;商品审核时需要⽣成静态页⾯,需要更新索引库
业务拆分不明确,服务之间的先后顺序变的复杂。
不利于系统的维护和扩展
使⽤MQ(消息队列/消息中间件来解决这个问题)
1.2什么是消息中间件(MQ)
MQ :Message Queue (消息队列),它是⼀种实现系统和系统之间进⾏通信的⼀种技术解决⽅案,⽤来解决我们在系统开发过程中的存
在的⼀些问题的。
实现跨平台的系统通信
减低系统之间的耦合(主要)
有利于升级和扩展维护
1.3常见的消息中间的产品
(1)ActiveMQ
ActiveMQ 是Apache出品,最流⾏的,能⼒强劲的开源消息总线。ActiveMQ 是⼀个完全⽀持JMS1.1和J2EE 1.4规范的 JMS
Provider实现
ActiveMQ 是apache出品的⼀个实现了JMS规范的MQ的其中⼀个产品.主要是⽤于消息发送和接收来实现系统之间的通信。
在易⽤性、扩展性、表现不错,并且有详尽官⽅的⽂档和相关⽀持。
(2)RabbitMQ
RabbitMQ 是⼀个由 Erlang 语⾔开发的 AMQP 的开源实现。
AMQP :Advanced Message Queue,⾼级消息队列协议。它是应⽤层协议的⼀个开放标准,为⾯向消息的中间件设计,基于此协议的
客户端与消息中间件可传递消息,并不受产品、开发语⾔等条件的限制。
在易⽤性、扩展性、⾼可⽤性等⽅⾯表现不俗。
(3)RocketMq
RcoketMQ 是⼀款阿⾥巴巴开源的低延迟、⾼可靠、可伸缩、易于使⽤的消息中间件产品,⽬前已贡献给了apache。它具有以下特点:
能够保证严格的消息顺序
提供丰富的消息拉取模式
⾼效的订阅者⽔平扩展能⼒
实时的消息订阅机制
亿级消息堆积能⼒
(4)Kafka
Apache下的⼀个⼦项⽬ 。
特点:⾼吞吐,在⼀台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统。适合处理海量数据。
1.4解决问题的基本思想架构图
⽤我⾃⼰的⼀部分代码展⽰具体的解决步骤。
2RocketMQ介绍
2.1什么是RocketMQ
RocketMQ作为⼀款阿⾥开源的纯java、分布式、队列模型的开源消息中间件,⽀持事务消息、顺序消息、批量消息、定时消息、消息回
溯等。
2.2 NameServer集群
NameServer的作⽤是注册中⼼,类似于Zookeeper。每个NameServer节点互相之间是独⽴的,没有任何信息交互,NameServer是⼀个
⼏乎⽆状态的节点,可集群部署。
2.3 Broker集群
Broker部署相对复杂,Broker分为Master与Slave,⼀个Master可以对应多个Slaver,但是⼀个Slaver只能对应⼀个Master,Master
与Slaver的对应关系通过指定相同的BrokerName,不同的BrokerId来定义,BrokerId为0表⽰Master,⾮0表⽰Slaver。Master可以部
署多个。每个Broker与NameServer集群中的所有节点建⽴长连接,定时注册Topic信息到所有的NameServer。
Master和slave之间的同步⽅式分为同步双写和异步复制,异步复制⽅式master和slave之间虽然会存在少量的延迟,但性能较同步双写⽅
式要⾼出10%左右
2.4 Producer集群
2.4.1 与nameserver的关系
单个Producer和⼀台nameserver保持长连接,定时查询topic配置信息,如果该nameserver挂掉,⽣产者会⾃动连接下⼀个
nameserver,直到有可⽤连接为⽌,并能⾃动重连。与nameserver之间没有⼼跳。
2.4.2 与broker的关系
单个Producer和与其关联的所有broker保持长连接,并维持⼼跳。默认情况下消息发送采⽤轮询⽅式,会均匀发到对应Topic的所有
queue中。
2.5 Consumer集群
2.5.1 与nameserver的关系
单个Consumer和⼀台nameserver保持长连接,定时查询topic配置信息,如果该nameserver挂掉,消费者会⾃动连接下⼀个
nameserver,直到有可⽤连接为⽌,并能⾃动重连。
您可能关注的文档
- 嵌入式软件开发课程设计-俄罗斯方块游戏.pdf
- 企业文档管理系统-文档资料.pdf
- 禅道项目管理系统实施说明.pdf
- 《精选18套试卷》辽宁省大连西岗区七校联考2021年物理八年级第二学期期末学业水平测试试题含解析.pdf
- 2022年辽宁省普通高中学生学业水平考试信息技术真题.pdf
- 辽宁省抚顺一中2020学年高一英语下学期学业水平模拟测试试题.pdf
- 辽宁省沈阳市2015年学业水平测试预测数学试题2 Word版含答案.pdf
- 辽宁省辽阳市二年级下册语文期中学业水平测试卷A卷.pdf
- 辽宁省辽阳市二年级下册语文期中学业水平测试卷D卷.pdf
- 辽宁省沈阳市2018年学业水平测试预测数学试题1Word版含答案.pdf
文档评论(0)