浅谈服务化

最近一直从事公司服务化改造,服务标准化和服务治理相关的工作,再次期间有幸和公司技术大牛探讨了服务化和微服务相关的知识。
服务并非与生俱来的,微服务的概念也是近一两年才不断发扬光大,早期的系统可以成为单体应用,非常简单,前面是View层,中间是业务层,最底层就是DB,如下图所示:浅谈服务化_第1张图片
这个架构非常简单,适合一般小型系统,调试也很简单,而且能够快速实现需求。此时Service也可以理解为一个服务,为这个特定view提供服务。
但是该系统存在service单点,数据库单点的问题,为了解决单点问题,最普通的就是给service增加备用服务,因为service一般来说都是无状态的(不存在Session、或者进程内缓等情况),所以很方便横向扩展,同时数据库也可以利用厂商提供容灾策略(例如MySQL的主备或者主主),此时架构得到如下优化
浅谈服务化_第2张图片
正常来说,这个架构的Service层还可以水平增加,View通过Nginx、LVS、F5等负载均衡技术将请求发到后端各个Service上,各个Server之间可以做到负责均衡和热备。
随着业务规模的不断扩大,数据库层面可能会设计到水平拆分和垂直拆分,这部分内容本文暂不设计,本人更加关注的是,随着业务规模的不断扩大,Service变得相当的臃肿。同时,所有的业务全部集中在Service中,沟通维护成本巨大。此时,需要将一些功能单一的模块拆分出来。

你可能感兴趣的:(微服务)