ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【消息中间件】rabbitMQ(一)

2019-03-04 11:42:56  阅读:162  来源: 互联网

标签:用户注册 队列 rabbitMQ 消息 消息中间件 一致性


为什么要学习rabbitMQ呢?要解决什么问题呢?

商品的数据同步问题 后台的商品一旦发生变化,前台和搜索也都要跟着变化

 

学习的步骤:

搭建rabbitMQ的环境

学习rabbitMQ

解决数据同步的问题

 

原始的数据同步的解决方案:

在前台系统开放接口 该接口中完成将redis 中的数据删除

后台系统在商品编辑,删除时调用这个接口。即可实现数据同步

该方案存在的问题是: 系统的耦合度太高 耦合度是指:其他团队的版本升级会影响到后端团队的版本升级 于是就引进了rabbitMQ

 

消息中间件介绍及特点详解

消息中间件是在消息传输过程中保存消息的容器,消息中间件再将消息从它的源中继(生产者)到它的目标时(消费者)充当中间人的作用 队列的目的是提供路由并保证消息的传递,

如果发送消息时接收者不可用,消息队列会保留消息,知道可以成功传递为止,当然 消息队列保留消息也是有期限的

 

消息中间件特点:

1、采用异步处理的模式 消息发送者可以发送一个消息而无需等待响应,消息发送者将消息发送到一条虚拟的通道上(主题或者队列),

  消费者可以订阅或者监听这个通道 eg: 用户注册的逻辑:用户注册 输入用户信息,点击注册,注册服务会立马响应并提示用户注册成功 同时发消息给邮件服务 并保存一条数据到mysql,邮件服务消费这条消息    就会触发发送邮件的服务,用户会收到注册成功的邮件

2、可以实现几个应用程序之间的解耦 一致性在分布式系统中是最难的东西,一致性分为很多种:读写一致性。读读一致性,写写一致性 常一致,弱一致,最终一致

在线交易系统为了保证最终数据的一致性,在支付系统处理完成后会把支付结果放到消息中间件里通知订单系统修改订单支付状态,两个系统通过消息中间件解耦

 

标签:用户注册,队列,rabbitMQ,消息,消息中间件,一致性
来源: https://www.cnblogs.com/yuanyuan2017/p/10469662.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有