如果是你造消息中间件的轮子,你会考虑哪些方面?

2020-10-27 23:11:20 +08:00
 1qaz2wsx

如果是你造消息中间件的轮子,你会考虑哪些方面? 通信?消息存储?高可用?。。。大家一起讨论讨论呢

2536 次点击
所在节点    程序员
18 条回复
hq
2020-10-28 04:31:19 +08:00
如果是 Kafka/RocketMQ 这种,我希望支持无限 topic
1qaz2wsx
2020-10-28 07:57:56 +08:00
@hq 嗯嗯,这个确实也是个问题
amwyyyy
2020-10-28 08:15:38 +08:00
增减 broker 节点不影响生产消费。
yuqiangabab
2020-10-28 09:07:53 +08:00
怎么做才能 star 破千 然简历加分
hun2008hun
2020-10-28 10:04:46 +08:00
topic 数量很多的可以看下 pulsar,理论上支撑百万级的 Topic
1qaz2wsx
2020-10-28 10:11:16 +08:00
@yuqiangabab 😂别瞎想了
1qaz2wsx
2020-10-28 10:12:21 +08:00
@hun2008hun 嗯嗯,去看看,开源的吗
xuanbg
2020-10-28 10:20:09 +08:00
使用要简单,消息处理要智能。
wysnylc
2020-10-28 10:23:24 +08:00
先考虑通用和兼容,再考虑性能和所谓的优雅
hun2008hun
2020-10-28 10:34:48 +08:00
@1qaz2wsx 是的,Apache Pulsar
blackboom
2020-10-28 10:41:52 +08:00
简单,简单,还是简单
stephenxiaxy
2020-10-28 10:45:05 +08:00
开箱即用,性能
1qaz2wsx
2020-10-28 12:34:04 +08:00
@xuanbg 要智能是什么意思?
1qaz2wsx
2020-10-28 12:34:34 +08:00
@wysnylc 嗯嗯,总而言之先能跑起来
1qaz2wsx
2020-10-28 12:34:56 +08:00
@hun2008hun 可以的,研究研究
arloor
2020-10-28 12:59:05 +08:00
楼主说的通信,消息存储,高可用都是很大的问题——所以抛出这些问题没啥意义

我提几个:

1. 采用“生产-消费”( rabbitMQ )还是“发布-订阅”( kafka )模式——或者说,要不要像 rabbtimq 那样有一个 Exchange 来做消息路由
2. 分片怎么做:以达成更高的性能
3. 拷贝怎么做:以达到高可用性,——扩展开来 failover 怎么做
4. 不丢数据,不重复消费怎么保证?(等待 ack 的策略)

不知道要考虑什么,说明对现在成熟的几个消息中间件都缺乏认知。

引用不知道哪里看到的一句话:一致性都够你吃喝一壶的。

当然,如果是自己玩,完全可以搞,从 0 到 1 的过程对能力提升还是好的。一开始也不要考虑周全,第一步是从 0 到 0.1,后面慢慢的才能趋于 1 。
DoctorCat
2020-10-28 15:07:50 +08:00
希望支持 AMQP 协议。这样才有机会称得上“工业级”
1qaz2wsx
2020-10-28 19:28:58 +08:00
@arloor 嗯嗯,确实有很多点需要思考

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/719225

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX