一、 微服务简介

1.1微服务是什么

随着领域驱动设计、持续交付、按需虚拟化、基础设施自动化、小型自治团队、大型集群系统这些实践的流行,微服务也应运而生。它不是被发明出来的,而是被总结出来的一种趋势或模式。

微服务,就是可以协同工作的微型的服务,这些服务要小,且可以自治。

1.2微服务的大小

微服务到底多微才算微?有人说,若使用开发时间来计算,一个微服务应该可以在两周内完全重写。

但这只是个经验法则,具体实施起来还是要因地制宜。微服务一般来说足够小即可,不宜过小。换句话说,如果你不觉得你的代码库过大,那么它就算足够小了。

1.3微服务的好处

使用微服务的好处有很多,而且这些好处遍布于不同的方面,具体如下:

l  技术异构性:在不同的服务中,可以使用最合适的技术栈去实现功能;

l  弹性强:可以很好地处理服务不可用和功能降级;

l  扩展性强:使用较小的多个服务,则可以只对需要进行扩展的服务进行扩展;

l  简化部署:各个服务独立部署,可以更快地对特定部分进行部署,且更容易回滚;

l  便于管理:在小代码库上工作的小团队更加高效;

l  可组合性:可以组合使用微服务快速完成一个粗粒度的服务接口;

1.4微服务的不足

微服务不是银弹,任何事情都有两面性,在享受微服务带来的便捷之余,也要接收它的不足,具体如下:

l  管理成本高:微服务的相对独立性,会带来大量的服务管理工作;

l  网络问题:一旦使用了微服务,网络就是个问题,不但网络,机器也是如此;

l  分布式失误:相较于传统架构,要做更多的事情保证各个微服务的业务一致性;

1.5微服务的使用场景

随着新功能的增加,代码库会越变越大。时间久了代码库会非常庞大,以至于想要知道该在什么地方做修改都很困难,若在涉及到人员变动,新人接棒后更难维护。

尽管大家都想在自己的系统中做到清晰地模块化,但事实上这些模块,或者说业务之间的界限很难维护。相似的功能随处可见,使得开发或维护变得难上加难。

遇被上述的问题缠绕着,就可以想想微服务是否可以帮你解决这些事情。

微服务将高内聚、低耦合这个理念应用到独立的服务上,把因相同原因而变化的东西聚到一起,把因不同原因而变化的东西分离出来。根据业务的边界来确定服务的边界

1.6小结

主要总结了什么是微服务,微服务的好处与不足,以及在什么场景使用微服务。

微服务不是银弹,在享受它来带的好处的同时,也要做好准备。主要在服务管理上,需要在部署、测试、监控等方面做更多的工作。

微服务需要根据业务来拆分,业务的边界就是微服务的边界,脱离的业务的微服务很难找到合适的边界,从而使得相互间的依赖变得混乱不堪。

猜你喜欢

转载自my.oschina.net/u/2450666/blog/1787248