rocketmq讲解
2023-12-23 本文已影响0人
微点
rocketmq分为生产者与消费者,生产者生产消息,消费者消费消息,中间通过broke存储与转发数据,broker通过nameServer管理与路由,当produce发生消息,通过nameserver找到broker,将消息存在其中,消费者在通过nameServer找到broker再消费。
一般生产者发送消息较快,需要多个消费者并行处理,来提高消费能力。
发送又分为同步发送,异步发送与单向发送,同步发送及发送后等待结果返回,异步监听结果,单向最快,发送即完,但没有保障。
短信,消息,订单消费通知一般为同步发送,日志收集为单向发送。
发送消息时,需要规定组名,以划分业务为主,支付,挂号等,主题,业务内每个生产线,订单缴费通知,邮件通知,上传监管平台通知,标签,给每一个消息队列划一个标签,key对应消息,然后是内容,需要转成字节放入消息体。
接收消息,创建推消费者,设置nameServer,订阅主题,然后再设置消费模式,一般为集群与广播模式,集群为多个消息随即放入不同消息队列,让消息实例消费,广播则发一个消息,每个q(消费队列)都会收到消息,每个队列中都有一个相同的消息,每个消费实例都会消费到,因为与消费实例有关,所以消息一般存在实例对应的客户本地,不可靠,容易重复发送,而集群放在broker中,服务端,所以较可靠,mq默认为集群模式。
然后是设置重启条件,重启后从上一次消息位置开始,顺序消费则从最后一次位置开始,注册函数,处理消息,启动消费者监听。
消息消费一般为全部顺序消费与部分顺序消息,全部顺序保障只有一个q,q就是顺序消费,而部分顺序消费则可以在注册函数时,获取q序号,然后与消息序列取余,放入不同的q队列中即可。