How Micro Should the Microservice Be
眼前的黑不是黑, 你说的微服务有多微?
小明:
现在开发一个 DSF,怎么能即符合公司的宗旨,又能做到微服务的概念?
苏格拉底:
服务的划分?
怎么舒服怎么来!
虽然他说是微服务, 只代表他支持微服务, 不代表你不能胡搞瞎搞
如果你全写在一个里面, 发现比拆开来写更方便, 那你就全写在一个服务里面.
小明:
全写在一个里面, 和之前没有区别, 那么就变成了单体应用了, 不是说单体应用是不好的吗?
苏格拉底:
单体应用一定是坏的嘛? 并不一定
还是要结合具体场景
什么时候你觉得该拆了
把单体应用中可以独立功能的, 属于一个事务的, 搞出来改成微服务
微服务强调的是变现速度, 如果你没有足够的经验却全改成微服务, 那么反而会增本降效,
小明:
我知道了, 要按照自己的实际需求来设计微服务的粒度.
苏格拉底:
是的, 比如, 分开写多个服务,服务器申请, 部署和运维就头疼了
微服务并非没有代价
划分了微服务之后, 监控, 运维, 调试都变得更加困难
小明:
那我们为什么还要用微服务? 微服务有什么好处?
苏格拉底:
那么微服务带来了什么好处?
合理的划分微服务, 可以达到屏蔽异构, 支持不同的语言实现, 不同的后端, 选用合适的语言和存储进行成本和收益的权衡.
通过将单体应用解耦, 实现职责的分离, 可以小步快跑,支撑更快速的迭代.
重要的是解耦
解耦良好的 SOA, 就可以称之为微服务
如果解耦良好, 当你觉得需要拆分成一个个单独的微服务以提高迭代速度, 那么也是分分钟的事情.
小明:
我明白了, 微服务强调的是解耦, 这和软件设计的古老理念: 高内聚, 低耦合 是一贯相承的,
微服务并不是一个新造的概念突然火了. 我们在实践中, 应该根据自身需求, 合理的划分微服务.
才能达到降本增效的目的.
苏格拉底:
你说的对.
苏格拉底:
车坊 CBD 有一家酸菜鱼特别好吃, 一起去吧