https://github.com/yemingfeng/kit-message
这里的场景本质是,消息如何广播? 那么会有人问为什么不使用消息队列? 因为消息队列无法很优美的实现这里的场景。比如说 kafka,使用不同的 consumer_group 就可以实现,但不优雅。所以开启了 kit-message 这个项目。
本地启动
增加依赖
<dependency>
<groupId>io.github.yemingfeng</groupId>
<artifactId>kit-message-client</artifactId>
<version>1.0.0</version>
</dependency>
发布消息
MessageProducer messageProducer = new MessageProducer("127.0.0.1", 8800);
messageProducer.pub("topic1", "topic1:" + i);
messageProducer.close();
订阅消息
MessageConsumer messageConsumer = new MessageConsumer("127.0.0.1", 8800);
messageConsumer.sub("topic1", new BiConsumer<String, String>() {
@Override
public void accept(String topic, String payload) {
System.out.println("topic1_1:" + topic + "\t" + payload);
}
});
kit-message-server 支持集群部署,建议使用 nginx 做转发。
stream {
upstream kit-message-server {
server server_ip1:8800;
server server_ip2:8800;
}
server {
listen 8800;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass kit-message-server;
}
}
答:这个项目是基于服务间消息通知这个场景的。解决问题更加明确,也更加轻量。
答:kit-message-server 让项目更加通用,接入更加方便,依赖更少,管理维护成本更低。
欢迎提反馈
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.