消费者订阅
消费者通过 subscribe()
和 assign()
两种方式订阅主题
subscribe()
使用 subscribe()
可以订阅一个或多个主题,对于这个方法而言,可以以集合的方式订阅多个主题,也可以以正则表达式的形式订阅特定模式的主题。
subscribe 的几个重载方法如下:
public void subscribe(Collection<String> topics)
public void subscribe(Pattern pattern, ConsumerRebalanceListener listener)
public void subscribe(Pattern pattern)
public void subscribe(Pattern pattern, ConsumerRebalanceListener listener)
对于消费者以集合的方式订阅主题,如果前后两次订阅了不同的主题,以最后一次的订阅为准,前面的订阅都会失效,如:
consumer.subscribe(Arrays.asList("topic1"));
consumer.subscribe(Arrays.asList("topic2"));
上述的示例,最终订阅的是 topic2,由此可以看出来 topic1 订阅失效了。
如果以正则表达式的方式订阅主题,在之后的过程中,如果新创建了新的主题,并且主题的名称与正则表达式相匹配,那么这个消费者就可以消费到这个新添加的主题中的消息。
示例如下:
consumer.subscri