最近大火的微服务microservice跟前两年的soa有什么本质区别吗? 我看了几个说法 优点又是老生常谈:容量吞吐量优势 架构灵活 解偶带来的扩维护性可扩展性。。。
但是这些说辞 在十多年前spring之父的旷世之作《expert one on one j2ee without ejb》中已经一一驳斥过了,
我想确认一下 是不是最近几年的一些技术进步 让过去分布式架构的主要问题不存在了?
马丁福勒还是谁好像说过“分布式架构第一原则就是不要分布你的组件”。
今天看到infoq微信号上的文章《左耳朵耗子:聊聊分布式系统架构》,产生上述疑惑。
先抛出我的观点:
我觉得不谈容量需求和系统类型的情况下 去谈分布式架构,就是耍流氓。十多年前厂商们为了卖j2ee服务器就鼓吹分布式架构能提高吞吐量,后来为了卖中间件又变个花样鼓吹soa。现在的微服务我没看出有什么根本的改变和提高,在分布式事务的性能和一致性矛盾没有根本解决之前,分布式架构始终是一个代价高昂的选项,我认为不应该主动去分布式,只有在你面对的系统天然的就是异构分布的 或者像bat那样的巨型系统巨型团队,你才应该去解决分布式问题。对于绝大多数组织 分布式都不值得提倡。
不能因为现在有了kubernetes 有了springcloud就以为分布式可以顺其自然。工具为架构服务 而不是为了用好工具而去使用某种架构。
分布式架构第一原则就是不要分布你的组件,因为成本和复杂性太高,除非你明确判断你的收益高于这成本。