初认识:
我理解每个行业、每个公司具有不同的业务体系和产品形态,微服务架构是一种架构模式,区别于其他系统架构的构建方式和技术方案,微服务架构具有其固有特点。
微服务架构的提出者 Martin Fowler 在其文章Microservices中定义了包括服务组件化、去中心化、基础设施自动化在内的多个微服务架构特点。
一般公司可以把业务体系中的服务分成如下几种类型:基础服务、通用服务、定制服务和其他服务等。我司就是这么玩的。
用什么技术:
目前业界主流的微服务实现技术提炼了八大技术体系,包括服务通信、服务治理、服务路由、服务容错、服务网关、服务配置、服务安全和服务监控。
- 服务通信 Spring Cloud Gateway
采用异步转同步的实现机制,也就是说开发人员使用同步的方式进行方法调用,而框架本身会基于 Future 等机制实现异步的远程处理。 - 服务治理 Eureka
通过服务治理实现自动化的注册和发现。称为服务注册中心。 - 服务路由 Ribbon
可以理解为负载均衡,是最常见的一种路由方案,常见的客户端/服务器端负载均衡技术都可以完成服务路由。Spring Cloud 等主流的微服务框架也都内置了 Ribbon 等客户端负载均衡组件。 - 服务容错 Spring Cloud Circuit Breaker
服务在自身失败引发生错误的同时,还会因为依赖其他服务而导致失败。除了比较容易想到和实现的超时、重试和异步解耦等手段之外,我们需要考虑针对各种场景的容错机制。 - 服务网关 Spring Cloud Gateway
服务网关也叫 API 网关,封装了系统内部架构,为每个客户端提供一个定制的 API。在微服务架构中,服务网关的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。 - 服务配置 Spring Cloud Config
在微服务架构中,考虑到服务数量和配置信息的分散性,一般都需要引入配置中心的设计思想和相关工具。
与注册中心一样,配置中心也是微服务架构中的基础组件,其目的也是对服务进行统一管理,区别在于配置中心管理的对象是配置信息而不是服务的实例信息。 - 服务安全 Spring Cloud Security
服务安全是一块非常重要的。访问安全性,都是围绕认证和授权。也就是说我们首先需要确定用户身份,然后再确定这个用户是否有访问指定资源的权限。 - 服务监控 Spring Cloud Sleuth 与 Zipkin 的集成
在微服务架构中,当服务数量达到一定量级时,我们难免会遇到两个核心问题。
一个是如何管理服务之间的调用关系?另一个是如何跟踪业务流的处理过程和结果?
这就需要构建分布式服务跟踪机制。