什么是微服务?
微服务是一种体系结构样式,将单个应用程序划分为较小的服务单元,并在微服务之间使用HTTP的API进行资源访问和操作。
微服务体系结构的优点:
- 服务的独立部署:每个服务都是独立项目,可以独立放置,不依赖其他服务,并且连接器很低。
- 服务快速入门:分割后服务启动速度必须比分割前快得多。因为依赖的库少,代码量少。
- 更适合敏捷开发:敏捷开发以用户的需求进化为核心,以迭代、渐进的方法进行。服务分割可以快速发布新版本,您只需发布该服务,而不必完全重新发布要修改的服务。
- 全权负责,专责小组负责专门服务:随着业务的快速发展,研发人员也在增加,每个团队可以负责各自的业务线,服务划分有助于团队之间的分工。
- 服务可以根据需要动态扩展:当对某项服务的访问量很大时,只需扩大这项服务。
- 重复使用代码:每个服务都提供REST API,需要提取所有基本服务,许多基本实现作为界面提供。
微服务体系结构的缺点:
- 调用复杂性高的分布式部署。
- 独立数据库、分布式事务挑战。
微服务是当下非常热门的话题。我平时工作之外和圈子里的朋友们交流,提到微服务等新技术,他们先是兴奋,后又无奈。兴奋的是他们看到了新技术带来的便利,无奈的是团队规模和能力又反过来制约了他们采用新技术的步伐。而他们也对微服务有着这样或那样的理解,但更多的是疑惑,比如说他们会问:
1、微服务这技术虽然面试的时候总有人提,但作为一个开发者,是不是和我关系不大?那不都是架构师的事吗?
2、微服务不都是大厂在玩吗?我们这个业务体量用得着吗?
3、微服务特别复杂,没个 100 人的研发团队是不是就无法落地?