Producer

Producer

Producer与Name Server集群中的其中一个节点(随机选择)建立长连接,定期从Name Server取Topic路由信息,并向提供Topic服务的Master建立长连接,且定时向Master发送心跳。Producer完全无状态,可集群部署。

Producer Group用来表示一组发送消息应用,一个Producer Group下包含多个Producer实例,可以是多台机器,也可以是一台机器的多个进程,或者一个进程的多个Producer对象。一个Producer Group可以发送多个Topic消息。

  1. 标识一类Producer

  2. 可以通过运维工具查询这个发送消息应用下有多个Producer实例

  3. 发送分布式事务消息时,如果Producer中途意外宕机,Broker会主动回调Producer Group内的任意一台机器来确认事务状态。

流程

DefaultMQProducer

1、调用defaultMQProducerImpl的发送方法。

2、根据topic获取消息队列和broker名称,然后执行sendKernelImpl方法。

3、根据broker名称获取broker地址,封装请求参数,根据三中不同的发送方式(ASYNC、ONEWAY、SYNC),调用MQClientAPIImpl的sendMessage方法。

调用remotingClient,同步发送消息给指定的broker。

调用remotingClient,异步发送消息给指定的broker,发送成功或失败会执行回调方法。

Last updated