网站大量收购独家精品文档,联系QQ:2885784924

关于开发中系统之间耦合度高、业务拆分不明确等问题的解决方案!.pdfVIP

关于开发中系统之间耦合度高、业务拆分不明确等问题的解决方案!.pdf

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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,直到有可⽤连接为⽌,并能⾃动重连。

文档评论(0)

134****3224 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档