我在k8s里部署好了rocketmq多主多从集群,并且在我的kubernetes集群中已经使用了,但是突然有要求在kubernetes集群外部也要用,这个就尴尬了。因为我的是线上环境如果外部访问就需要放在公网上,我这里在测试环境测试。刚开始我用的是一个代理,代理多个broker就会发现客户端生产和消费都是两条同样的消息,但是只是发了一条会产生聊天,弄了两天。一直郁闷。。。。。
后来我把一个代理换成两个代理,每个代理代理一个broker即可。我的nginx已经安装好了,看一下我的nginx配置。
nginx73 stream { upstream prod-eft-link-mq10909 { least_conn; server 192.168.6.236:32727; } upstream prod-eft-link-mq10911 { least_conn; server 192.168.6.237:32742; } upstream prod-eft-link-mq9876 { least_conn; server 192.168.6.236:30740; } server { listen 9876;#9876 proxy_pass prod-eft-link-mq9876; } server { listen 10909;#10909 proxy_pass prod-eft-link-mq10909; } server { listen 10911; #10911 proxy_pass prod-eft-link-mq10911; } } nginx93 stream { upstream prod-eft-link-mq10909 { least_conn; server 192.168.6.236:30532; } upstream prod-eft-link-mq10911 { least_conn; server 192.168.6.236:31213; } upstream prod-eft-link-mq9876 { least_conn; server 192.168.6.236:30740; } server { listen 9876;#9876 proxy_pass prod-eft-link-mq9876; } server { listen 10909;#10909 proxy_pass prod-eft-link-mq10909; } server { listen 10911; #10911 proxy_pass prod-eft-link-mq10911; } }
stream是需要配置到nginx的http里的,所以安装的nginx要支持stream。另外需要配置一下broker主的配置,把两个主里增加brokerIP1 = 192.168.6.93和`brokerIP1 = 192.168.6.73`
然后重启broker即可,下面看一下我的控制台变化
增加了两个代理的ip,这时我们需要在主题里创建一个topic然后发个消息,在消息里查看一下,是不是一条消息就可以了,另外在连接rocketmq时需要把93和73的9876端口都加上才可以,避免brocker之间不均衡。
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏