| --- |
| title: "Broadcasting" |
| permalink: /docs/broadcast-example/ |
| excerpt: "How to send broadcast messages in Apache RocketMQ." |
| modified: 2017-04-24T15:01:43-04:00 |
| --- |
| |
| {% include toc %} |
| |
| #### What is broadcasting |
| Broadcasting is sending a message to all subscribers of a topic. If you want all subscribers receive messages about a topic, broadcasting is a good choice. |
| |
| #### Producer example |
| |
| ```java |
| public class BroadcastProducer { |
| public static void main(String[] args) throws Exception { |
| DefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName"); |
| producer.start(); |
| |
| for (int i = 0; i < 100; i++){ |
| Message msg = new Message("TopicTest", |
| "TagA", |
| "OrderID188", |
| "Hello world".getBytes(RemotingHelper.DEFAULT_CHARSET)); |
| SendResult sendResult = producer.send(msg); |
| System.out.printf("%s%n", sendResult); |
| } |
| producer.shutdown(); |
| } |
| } |
| ``` |
| |
| #### Consumer example |
| |
| ```java |
| public class BroadcastConsumer { |
| public static void main(String[] args) throws Exception { |
| DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("example_group_name"); |
| |
| consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET); |
| |
| //set to broadcast mode |
| consumer.setMessageModel(MessageModel.BROADCASTING); |
| |
| consumer.subscribe("TopicTest", "TagA || TagC || TagD"); |
| |
| consumer.registerMessageListener(new MessageListenerConcurrently() { |
| |
| @Override |
| public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, |
| ConsumeConcurrentlyContext context) { |
| System.out.printf(Thread.currentThread().getName() + " Receive New Messages: " + msgs + "%n"); |
| return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; |
| } |
| }); |
| |
| consumer.start(); |
| System.out.printf("Broadcast Consumer Started.%n"); |
| } |
| } |
| ``` |
| |