转自公众号程序猿小哈
接口关系图接口API两种Destination(目的地)P2P(Point To Point)点对点消息传输模消息提供者提供消息给先进先出的的消息队列,消息消费者从消息队列获取自己对应的消息.Pub/sub 发布订阅模消息提供者发布消息到Topic(主题),topic发布消息给所有订阅的消费者. 注意:发布订阅模式下,需要先订阅,类似微信公众号,未订阅发布的消息,订阅后不可见,只能获取订阅后发布的消息我们知道了消费的两种模式后,需要思考的几个问题
如何判断是自己的消息呢???消费者和生产者绑定同一个队列,消费者庄宇新可以recver/监听队列,获取队列内的message多消费者同时监听同一队列,会导致消息重复消费吗?(消费者集群下)中间件有负载均衡功能,可以选择不同的负载均衡策略,默认为轮询,使消息不会重复消费. 注意topic卡伦布模式不支持集群如果消费者增加,会影响性能找个网站吗点对点模式下,增加消费者,负载均衡策略下,多消费者还是只能消费留白一条消息,会加快消费的速度.在订阅模式下,中间件需要给所有消费者都发送一条消息,ipdizhi那么消费者增加,需要发送的也就变多了,性能会有影响。JMS组成结构JMS provider JMS余额宝靠谱吗消息中间件(Ac深泉学院tiveMQ,rabbitMQ,kafka等)JMS produc你还记得大明湖畔的夏雨荷吗er 消息生产者JMS con台式电脑配置sumer 消息消费者JMS messag桂林游玩攻略e 消息JMS message我们都知道JMS是中间件,需要给其他很多的应160626用项目使用,在队列增益中发送的消息和接收的消息,格式需要相同,那么发送的消息就需要一个固定的格式.
消息包括消息头,消息体,消息属性 三个部分.
消息头:设置消息的通用属性,类似http消息头,可以设置消息的过期时间,是否持久化,投递的目的地(队列名/topic名),最主要的设置消息的唯一标识messageId来标识消息的唯一性(JMS会模认生成,你也可以使用自己的id格式来生成唯一标识)。消息体:服务器虚拟化技术消息实际存放数据的地方,有多种类型的消息,text/map/bytes/Stream/Object等.发送和接收需要使用同一类型。消息属性如果需要除消息头外的值,可以使用消息属性(消息头veket的属性是固定的,类似于自定义字不科学段),可以识别/去重/重点标注相同消息头和消息体的消息.设置–>message.setStringProperty(“KEY”,”VALUE”);JMS的可靠性JMS提供了持久化/ACK确认机制/事务来保证消息的可靠性(防止消息丢失,消息的重复消费)
持久化当服务器宕机时,数据不丢失,会保存在服务器本地。持久化可以保证在消费者消息在正确送达消费者以前不会丢失。默认为持久化传送模式,保证消息只被传送一次和成功使用一次,可靠性是优先考虑因素。topic持久化时,消香港中文大学研究生专业费者需要在MQ注册一个自己的身份id标识,在消费者宕机时,生产者会为对应的id保留数据个人健康。事务(transaction)ACID 生产者消费者为了保证多条消息发送保证同步提交和同步消费,可以开启事务功能,需要提交事务.ACK确认机制1.自动ACK 消费者自动ack 2.手动ACK 需要自己手动提交ACK信息方差分析 3.运行重复签收 用于可以多消费者签收的消息事务手绘插画学习和ACK都是确认消息是否被成功提交和消费,那么哪个优先级更高呢?事务优先级更高,当开启事务时,ACK设置无效. 当非事务模式下,才会启用ACK设置本文发布于:2023-06-02 10:41:25,感谢您对本站的认可!
本文链接:http://www.ranqi119.com/ge/85/189901.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |