如题,因为用 rocketmq 的大多是 java,所以我就以 maven 的 artifactId 来列举
rocketmq-client rocketmq-spring-boot-starter spring-cloud-starter-stream-rocketmq 公司自研框架 楼主在公司目前使用的第二种方式,但是在使用过程中碰到一个小问题,就是在本地测试的时候,消息总会被其他启动了同一个服务的同事给消费了。我想本地 debug 就很麻烦。不知道各位会不会有同样的困扰😶
也有想过办法去解决,魔改 rocketmq-spring-boot-starter 在消费者注入之前把 topic 加强一下,但是看了源码发现没啥可扩展性,魔改有点困难。其次的话使用 spring-cloud-starter-stream-rocketmq,因为 topic 都是配置的,就可以在配置的时候加上前缀后者后缀,但是这个使用起来也很麻烦,因为每一个 topic 都要写配置,要是有一百个 topic 的话。。。或者甚至更多🤷♀️
1
IDAEngine 2021-01-23 13:11:52 +08:00
上百万 topic 毫无压力
|
2
oneisall8955 2021-01-23 13:24:33 +08:00 via Android
我用的其他 mq,也有这个问题,dev 环境被其他主机消费,所以,联系同事别动,让我调完先🙊
|
3
jerry1zeng OP @oneisall8955 这样测试太影响效率了
|
4
jerry1zeng OP @IDAEngine 这样的级别肯定是用公司自研的框架吧
|
5
deargodfrey 2021-01-23 13:57:07 +08:00
用 Kafka 和 Rabbit 多点
|
6
limuyan44 2021-01-23 14:59:57 +08:00 via Android
spring 的 config 不是可以拦截的吗,你读 topic 配置的时候加上自己的前缀。。
|
7
jerry1zeng OP @limuyan44 topic 在注解 @RocketMQMessageListener#topic,注解的值我没看到能修改的方法。。。
|
8
zzh7982 2021-01-23 15:18:14 +08:00
再部署一个 mq
|
9
jerry1zeng OP @zzh7982 我自己测试的话,会连我本地启的 MQ 。。。。
|
10
676529483 2021-01-23 15:27:55 +08:00 2
可以参考我司的做法,在不同环境里,加不同的 Tag,消费时,只消费指定 Tag 的信息
|
11
jerry1zeng OP @676529483 这个方案可以考虑一下,那我有一个问题,贵司不同环境通用一个 Rocket 吗?
|
12
jr981008 2021-01-23 15:41:48 +08:00
这种中间件没有 acl 控制?
|
13
jerry1zeng OP @jr981008 小公司 没那研发力度。。。能完成需求就不错了😂
|
14
zzh7982 2021-01-23 15:55:54 +08:00
@jerry1zeng 你同事也消费你本地的 MQ ?。。。
|
15
jerry1zeng OP @zzh7982 我自己启动肯定就我自己一个人用了 😂
|
16
Lighfer 2021-01-23 16:31:58 +08:00
支持 springEL 的啊,开发测试环境运行命令加上一个指定的系统参数,收发消息的代码加上就行了
|
17
amwyyyy 2021-01-23 17:04:07 +08:00 via iPhone
如果是自己发的消息,那就和同事用不同 tag 。如果是外部应用发的消息,那就用不同的消费组。
|
18
guodong110 2021-01-24 20:38:55 +08:00
线下环境改下配置的 group 不就好了,不就避免被同事消费了
|
19
676529483 2021-01-25 09:51:16 +08:00
@jerry1zeng 不是,分实例的,开发和测试不在一个环境
|