简介
生产者启动流程指的是new一个producer实例,调用producer.start()方法的过程。启动过程最主要是创建MQClientInstance实例
,该类封装了RocketMQ网络处理API,为后续消息发送创建网络通道。
DefaultMQProducer producer = new DefaultMQProducer("group_name");
producer.setNamesrvAddr("127.0.0.1:9876");
producer.start();
生产者启动流程
producer.start()实际调用了defaultMQProducerImpl.start(),我们从defaultMQProducerImpl.start()方法来跟踪。
1、检查productGroup是否符合要求;并改变生产者instanceName为进程ID。
2、创建MQClientInstance实例。同一个clientId只会创建一个MQClientInstance。
clientID为客户端IP + instance + (unitname可选),如果在同一台物理服务器部署2个应用程序,那clientId岂不是相同,为了避免这个问题,便有了第1步中改变生产者instanceName为进程ID,这样就避免了不同进程的相互影响。
MQClientInstance封装了RocketMQ网络处理API,负责底层网络通道的处理。
3、调用MQClientInstance的start方法启动MQClientInstance,如果已经启动,则本次启动不会真正执行。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。