一般用户会选择在公网环境下调试程序,调试结束后,再将程序发布到正式环境。
公网环境,指的是在控制台创建 Topic 时,指定“公网”,那么生产端/消费端可以部署在本地,也可以部署在 ECS(跨地域)。
正式环境,指的是在控制台创建 Topic 时,指定某个地域(北京,杭州…),那么生产端/消费端必须部署在相应地域的 ECS(不能跨地域)。
不同地域的 Topic 相关数据(包括 Producer ID, Consumer ID),根据地域不同,会由不同的 broker,不同的集群来处理,所以我们建议您使用配置文件,给线下(公网),线上(正式)环境使用不同的 Topic,Producer ID 和 Consumer ID。
例如,线下(公网)使用 Topic A,Producer ID A, ConsumerID A;线上(正式)使用 Topic B, Producer ID B,Consumer ID B。
两个环境的数据不要混在一起使用。
下面举两个常见的错误做法:
1)公网使用 Topic A,Producer ID A,Consumer ID A;删除 Topic A,Producer ID A, Consumer ID A 后,在正式环境,创建同样名字的 Topic A,Producer ID A,Consumer ID A 来使用。
2)公网使用 Topic A,Producer ID A,Consumer ID A,正式环境使用 Topic B,Producer ID A,Consumer ID A。
上面的错误做法,容易导致系统数据混乱,比如,消息本来应该发送到正式环境 broker,却发给了公网环境 broker,导致数据鉴权失败;所以在实际部署中,我们要求用户将两个环境的数据严格分开。
如果问题还未能解决,请联系售后技术支持。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/