欢迎访问Spring Cloud中国社区

《重新定义Spring Cloud实战》由Spring Cloud中国社区倾力打造,基于Spring Cloud的Finchley.RELEASE版本,本书内容宽度足够广、深度足够深,而且立足于生产实践,直接从生产实践出发,包含大量生产实践的配置。欢迎加微信Software_King进群答疑,国内谁在使用Spring Cloud?欢迎登记

微服务应该具备的功能

aspx5 · 4月前 · 743 ·

微服务,可以拆分为“微”和“服务” 二字。“微”即小的意思,那到底多小才算“微”呢?可能不同的团队有不同的答案。从参与微服务的人数来讲,单个微服务从架构设计、代码开发、测试、运维的人数加起来是8~ 10 人才算“微”。那么何为“服务”呢?按照“微服务”概念定义:“服务”是一个独立运行的单元组件,每个单元组件运行在独立的进程中,组件与组件之间通常使用HTTP 这种轻量级的通信机制进行通信。

微服务具有以下的特点:

  • 按照业务来划分服务,单个服务代码量小,业务单一,易于维护。
  • 每个微服务都有自己独立的基础组件,例如数据库、缓存等,且运行在独立的进程中。
  • 微服务之间的通信是通过HTTP 协议或者消息组件,且具有容错能力。
  • 微服务有一套服务治理的解决方案,服务之间不相合,可以随时加入和剔除服务。
  • 单个微服务能够集群化部署,并且有负载均衡的能力。
  • 整个微服务系统应该有一个完整的安全机制,包括用户验证、权限验证、资源保护等。
  • 整个微服务系统有链路追踪的能力。
  • 有一套完整的实时日志系统。

微服务具有以上这些特点,那么微服务需要具备一些什么样的功能呢?微服务的功能主要体现在以下儿个方面:

  • 服务的注册和发现。
  • 服务的负载均衡。
  • 服务的容错。
  • 服务网关。
  • 服务配置的统一管理。
  • 链路追踪。
  • 实时实日志。