不支持跨语言平台
IDL 文件
跨语言平台,组织内外皆可
修改和删除字段不支持向前兼容
注册中心服务拆分之后,服务的提供者和消费者分别运行在不同的机器上,而且服务众多,有几十个,甚至上百个 。这就涉及到一个问题,消费者如何才能找到服务提供者,这也是注册中心需要解决的问题 。
文章插图
注册中心需要实现哪些 API?
- 服务注册接口: 服务提供者通过调用服务注册接口来完成服务注册 。
- 服务反注册接口: 服务提供者通过调用服务反注册接口来完成服务注销 。
- 心跳汇报接口: 服务提供者通过调用心跳汇报接口完成节点存活状态上报 。
- 服务订阅接口: 服务消费者通过调用服务订阅接口完成服务订阅,获取可用的服务提供者节点列表 。
- 服务变更查询接口: 服务消费者通过调用服务变更查询接口,获取最新的可用服务节点列表 。
- 服务查询接口: 查询注册中心当前注册了哪些服务信息 。
- 服务修改接口: 修改注册中心中某一服务的信息 。
文章插图
【一篇带你从零开始学微服务】
配置中心一般包含下面几个功能:
- 配置注册
- 配置反注册
- 配置查看
- 配置变更订阅
- 路由: 网关接收所有 API 请求并将它们转发到目标服务 。
- 记录日志: 能够在一处记录所有请求 。
- 权限认证: 检查用户是否有资格访问该服务,如果没有,可以拒绝该请求 。
- 性能分析: 估计每个请求的执行时间并检查性能瓶颈 。
- 缓存: 通过在网关级别处理缓存,可以降低服务的流量压力 。
文章插图
如果没有 API 网关,可能需要在每个服务中做一些横切关注点,比如想记录服务的请求和响应 。此外,如果应用程序由多个服务组成,客户端需要知道每个服务地址,并且在更改服务地址的情况下,需要更新多个地方 。
负载均衡微服务架构拥有很好的可扩展性,我们能够通过运行更多服务实例来处理更多请求,但问题是,哪个实例应该接收请求,或客户端如何知道哪个服务实例应该处理请求?
这些问题的答案是负载均衡 。负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性 。
文章插图
常用的负载均衡算法有一下五种:
随机算法顾名思义就是从可用的服务节点中,随机挑选一个节点来访问 。
实现比较简单,在请求量远超可用服务节点数量的情况下,各个服务节点被访问的概率基本相同,主要应用在各个服务节点的性能差异不大的情况下 。
轮询算法跟随机算法类似,各个服务节点被访问的概率也基本相同,也主要应用在各个服务节点性能差异不大的情况下 。
推荐阅读
- 使用 Python 构建 Web 应用程序从未如此简单——从 Pynecone 开始
- MongoDB数据库性能监控看这一篇就够了
- MySql主从复制配置,你了解吗?来看这篇,全懂了
- 教师|学生“理想职业调研”:从想当科学家,变成网红明星,值得深思
- 纵横永生从风云开始?永生 怎么在起点上搜不到了 搜 梦入神机 也没看到永生啊 怎么回事?
- 求职|生活一团乱麻时,如何从中理出头绪来?
- 车辆工程毕业后从事什么工作 车辆工程专业就业
- 娱乐圈|假发假臀假肌肉,“从头假到脚”,还有什么是真的?
- 看淡,心静,积极的句子 清心寡欲的文章
- 赵文瑄|假发假臀假肌肉,大半个娱乐圈“从头假到脚”,还有什么是真的?