一、微服务介绍
微服务是一种架构风格,它将一个大型的应用程序拆分为一系列较小、独立的服务。每个服务都可以独立开发、部署和扩展,通过定义明确定义的接口进行通信。
二、基础设施工具
1、服务注册与发现中心
服务注册就是维护一个登记簿,它管理系统内所有的服务地址。
客户端注册是服务自身要负责注册与注销的工作。当服务启动后向注册中心注册自身,当服务下线时注销自己。期间还需要和注册中心保持心跳。
客户端发现是指客户端负责查询可用服务地址,以及负载均衡的工作。这种方式最方便直接,而 且也方便做负载均衡。
当下用于服 务注册的工具非常多 ZooKeeper,Consul,Etcd, 还有 Netflix 家的 eureka 等。
2、API网关
API Gateway是进入系统的唯一节点,提供协议转化、负载均衡、灰度等功能。
3、配置中心
配置中心一般用作系统的参数配置,它需要满足如下几个要求:高效获取、实时感知、分布式访问。常见有apollo,consul
4、链路追踪
链路追踪需要跟踪一个请求从一个微服务到下一个微服务的传播过程,并提供可视化界面查询。常见有zipkin等。
5、服务熔断限流
在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个 系统不可用的情况,这种现象被称为服务雪崩效应。
熔断器的原理很简单,如同电力过载保护器。它可以实现快速失败,如果它在一段时间内侦测到 许多类似的错误,会强迫其以后的多个调用快速失败,不再访问远程服务器,从而防止应用程序 不断地尝试执行可能会失败的操作,使得应用程序继续执行而不用等待修正错误,或者浪费 CPU 时间去等到长时间的超时产生。