一篇带你从零开始学微服务( 二 )


不支持跨语言平台
IDL 文件
跨语言平台,组织内外皆可
修改和删除字段不支持向前兼容
注册中心服务拆分之后,服务的提供者和消费者分别运行在不同的机器上,而且服务众多,有几十个,甚至上百个 。这就涉及到一个问题,消费者如何才能找到服务提供者,这也是注册中心需要解决的问题 。
 

一篇带你从零开始学微服务

文章插图
 
注册中心需要实现哪些 API?
  • 服务注册接口: 服务提供者通过调用服务注册接口来完成服务注册 。
  • 服务反注册接口: 服务提供者通过调用服务反注册接口来完成服务注销 。
  • 心跳汇报接口: 服务提供者通过调用心跳汇报接口完成节点存活状态上报 。
  • 服务订阅接口: 服务消费者通过调用服务订阅接口完成服务订阅,获取可用的服务提供者节点列表 。
  • 服务变更查询接口: 服务消费者通过调用服务变更查询接口,获取最新的可用服务节点列表 。
除此之外,为了便于管理,注册中心还必须提供一些后台管理的 API,例如:
  • 服务查询接口: 查询注册中心当前注册了哪些服务信息 。
  • 服务修改接口: 修改注册中心中某一服务的信息 。
配置中心在拆分为微服务架构前,单体应用只需要管理一套配置;而拆分为微服务后,每一个系统都有自己的配置,并且都各不相同,而且因为服务治理的需要,有些配置还需要能够动态改变,以达到动态降级、切流量、扩缩容等目的,所以如何管理配置十分重要 。
 
一篇带你从零开始学微服务

文章插图
【一篇带你从零开始学微服务】 
配置中心一般包含下面几个功能:
  • 配置注册
  • 配置反注册
  • 配置查看
  • 配置变更订阅
API 网关API 网关可以被视为一种充当应用程序服务和不同客户端之间的中间件,可以管理许多事情,例如:
  • 路由: 网关接收所有 API 请求并将它们转发到目标服务 。
  • 记录日志: 能够在一处记录所有请求 。
  • 权限认证: 检查用户是否有资格访问该服务,如果没有,可以拒绝该请求 。
  • 性能分析: 估计每个请求的执行时间并检查性能瓶颈 。
  • 缓存: 通过在网关级别处理缓存,可以降低服务的流量压力 。
事实上,它是作为一个反向代理工作的,客户端只需要知道系统的网关,应用服务就可以隐藏起来,不直接向其他系统暴露 。
 
一篇带你从零开始学微服务

文章插图
 
如果没有 API 网关,可能需要在每个服务中做一些横切关注点,比如想记录服务的请求和响应 。此外,如果应用程序由多个服务组成,客户端需要知道每个服务地址,并且在更改服务地址的情况下,需要更新多个地方 。
负载均衡微服务架构拥有很好的可扩展性,我们能够通过运行更多服务实例来处理更多请求,但问题是,哪个实例应该接收请求,或客户端如何知道哪个服务实例应该处理请求?
这些问题的答案是负载均衡 。负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性 。
 
一篇带你从零开始学微服务

文章插图
 
常用的负载均衡算法有一下五种:
随机算法顾名思义就是从可用的服务节点中,随机挑选一个节点来访问 。
实现比较简单,在请求量远超可用服务节点数量的情况下,各个服务节点被访问的概率基本相同,主要应用在各个服务节点的性能差异不大的情况下 。
轮询算法跟随机算法类似,各个服务节点被访问的概率也基本相同,也主要应用在各个服务节点性能差异不大的情况下 。


推荐阅读