消息队列的思考
文章的目的不是比较哪个消息队列好
市面上的消息队列共同的特性
- 有自己的发布订阅机制,但是都差不多一个样,流(我还不是很熟悉)
- 完善(?)的容灾处理,也就是掉线的消息本地化
- 集群
我认为或者是我想要的消息队列
- 简单
- 可以不健壮的容灾
- 集群
可以看到,我想要的只是第二点和上面有很大的差别。因为消息队列掉线的消息是最难处理的,处理的好,就是做到了简单,处理不好,就是复杂了。
针对工业-物联网:
数据量可以说是很巨大的,但是对于一些垃圾数据,丢了就是丢了,没必要找回。
针对工业-物联网业务数据:
此时的数据量不大,一般的网络都是内网部署,只要服务器不关机,那就是不丢数据的。
针对其他行业(toC):
丢一条数据,客户直接炸锅!
传统的消息队列做法:
消息本地化,重连之后,进行消费。
上面的做法用很多代码来实现,效果好不好,只能说我不知道,但是想想就知道,遇到消费不完的情况呢?
下面我解释一下我想要的不健壮的容灾
掉线的机器一般是很低概率发生的
消息不必去做掉线重连自动消费,需要人工干预最好(此时的数据需要本地化时候,特定格式),因为掉线的数据只有人才知道如何去把握客户。这样可以在消息队列代码层面做到简单,人也可以知道异常数据到底怎么用。
有的事情可以CI,CD
但是有的事情人,是不可替代的