老话说得好,有事一定会失败; 我们为了方便,使用了消息中间件,享受了它的优点。 它必然要忍受它的缺点
使用消息中间件有什么缺点? 降低系统可用性提高系统复杂性一致性问题可用性降低
外部对系统的依赖越多,不可避免的问题就越多,越容易瘫痪。 例如,正如上一篇文章所述,本来是ABCD的四个系统,后面添加了消息中间件。 中间件到期后,整个系统会不会崩溃? 那样的话,我们就必须卷铺盖走人
复杂性提高
还是说,原来ABCD的4个系统都在正常运行,为了了解耦合的异步等,添加了消息中间件? 那信息重复了怎么办? 如果信息丢失了怎么办? 怎么保证传递信息的顺序? 等一系列问题必须加以考虑
一致性问题
这就是异步出现的问题。 这边的a系统向用户返回了成功结果,但是在后面的异步处理时,如果d系统失败了怎么办? 这不是会导致新闻不一致吗?
所以消息队列是一个非常复杂的体系结构,使用起来确实带来了一系列好处,提高了程序性能,缩短了时间,降低了耦合。 但是,如果进行维护的话,就会发现复杂度有了惊人的上升。 但是,还是必须使用。 不能噎着吃吧。