针对以上问题,有两个场景:使用阿里云的云服务器的RocketMQ和使用自己搭建的RocketMQ。但无论采用这两种的任何一种,都是可以在同一个topic下,通过tag来进行业务区分的。
网上有很多分析相关使用方式的文章,虽然分析的结果都是“不可以”,但我们可以通过其他的一些方案来进行解决。
自主搭建的RocketMQ
通过自主搭建RocketMQ,然后通过SpringBoot进行集成实现,可以参考在公众号【程序新视界】中的文章《Spring Boot快速集成RocketMQ实战教程》,完整的实战步骤。
这里我们只摘取其中消费者的部分代码:
@Service
@RocketMQMessageListener(topic = MqTopicConstant.DEMO_TOPIC
, consumerGroup = MqTopicConstant.DEMO_CONSUMER_GROUP_REGISTERED
, selectorExpression = MqTopicConstant.DEMO_TAG_REGISTERED)
public class MqRegisteredListenerDemo implements RocketMQListener {
private static final Logger log = LoggerFactory.getLogger(MqRegisteredListenerDemo.class);
@Override
public void onMessage(String message) {
log.info("received registered message: {}", messag