上QQ阅读APP看书,第一时间看更新
2.1 微服务应该具备的功能
微服务,可以拆分为“微”和“服务”二字。“微”即小的意思,那到底多小才算“微”呢?可能不同的团队有不同的答案。从参与微服务的人数来讲,单个微服务从架构设计、代码开发、测试、运维的人数加起来是8~10人才算“微”。那么何为“服务”呢?按照“微服务”概念提出者Martin Fowler给出的定义:“服务”是一个独立运行的单元组件,每个单元组件运行在独立的进程中,组件与组件之间通常使用HTTP这种轻量级的通信机制进行通信。
微服务具有以下的特点。
•按照业务来划分服务,单个服务代码量小,业务单一,易于维护。
•每个微服务都有自己独立的基础组件,例如数据库、缓存等,且运行在独立的进程中。
•微服务之间的通信是通过HTTP协议或者消息组件,且具有容错能力。
•微服务有一套服务治理的解决方案,服务之间不耦合,可以随时加入和剔除服务。
•单个微服务能够集群化部署,并且有负载均衡的能力。
•整个微服务系统应该有一个完整的安全机制,包括用户验证、权限验证、资源保护等。
•整个微服务系统有链路追踪的能力。
•有一套完整的实时日志系统。
微服务具有以上这些特点,那么微服务需要具备一些什么样的功能呢?微服务的功能主要体现在以下几个方面。
•服务的注册和发现。
•服务的负载均衡。
•服务的容错。
•服务网关。
•服务配置的统一管理。
•链路追踪。
•实时日志。