目录
- 系统间通信方式
- 从队列到消息服务
- 消息模式与消息协议
- ActiveMQ消息中间件
- ActiveMQ使用示例
1. 系统间通信方式
系统间通信方式
- 基于文件
- 基于共享内存
- 基于RPC
- 基于Socket
- 基于数据库
- 基于RPC
我们期望有一种通信方式:
- 可以实现异步的消息通信
- 可以简化参与各方的复杂依赖关系
- 可以在请求量很大的时候,缓冲一下 > 类比线程池里的Queue
- 某些情况下能保障消息的可靠性,甚至顺序
2. 从队列到消息服务
MQ的四大作用
对比其他通信模式,MQ的优势在于:
- 异步通信:异步通信,减少线程等待,特别是处理批量等大事务、耗时操作。
- 系统解耦:系统不直接调用,降低依赖,特别是不在线也能保持通信最终完成。
- 削峰平谷:压力大的时候,缓冲部分请求消息,类似于背压处理。
- 可靠通信:提供多种消息模式、服务质量、顺序保障等。
3. 消息模式与消息协议
消息处理的保障
三种QoS(注意:这是消息语义的,不是业务语义的):
- At most once,至多一次,消息可能丢失但是不会重复发送;
- At least once,至少一次,消息不会丢失,但是可能会重复;
- Exactly once,精确一次,每条消息肯定会被传输一次且仅一次。
消息处理的事务性: - 通过确认机制实现事务性;
- 可以被事务管理器管理,甚至可以支持XA。
消息有序性
同一个Topic或Queue的消息,保障按顺序投递。
注意:如果做了消息分区,或者批量预取之类的操作,可能就没有顺序了。
《企业集成模式》 可以认为是 SOA/ESB/MQ等 理论基础
消息协议
STOMP
JMS
AMQP
MQTT
XMPP
Open Messaging
标签:基于,队列,通信,间通信,MQ,消息,分布式 来源: https://blog.csdn.net/jia970426/article/details/122528396
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。