摘要:
优雅启动:如何避免流量打到没有启动完成的节点? 回顾 优雅停机,就是为了让服务提供方在停机应用的时候,保证所有调用方都能“安全”地切走流量,不再调用自己,从而做到对业务无损。其中实现的关键点就在于,让正在停机的服务提供方应用有状态,让调用方感知到服务提供方正在停机。 启动预热 简单来说,就是让刚启动 阅读全文
摘要:
优雅关闭:如何避免服务停机带来的业务损失? 上线的大致流程 当服务提供方要上线的时候,一般是通过部署系统完成实例重启。在这个过程中,服务提供方的团队并不会事先告诉调用方他们需要操作哪些机器,从而让调用方去事先切走流量。而对调用方来说,它也无法预测到服务提供方要对哪些机器重启上线,因此负载均衡就有可能 阅读全文
摘要:
异常重试:在约定时间内可靠的重试 回顾 在 RPC 框架中如何设计自适应的负载均衡,其关键点就是调用端收集服务端每个节点的指标数据,再根据各方面的指标数据进行计算打分,最后根据每个节点的分数,将更多的流量打到分数较高的节点上。 RPC 框架的重试机制 调用端发起的请求失败时,RPC 框架自身可以进行 阅读全文
摘要:
负载均衡:节点负载差距这么大,为什么收到的流量还一样? 回顾 “多场景的路由选择”,其核心就是“如何根据不同的场景控制选择合适的目标机器” 问题 RPC 框架有没有什么智能负载的机制?能否及时地自动控制服务节点接收到的访问量? 什么是负载均衡 通过负载均衡,将请求分发给这个集群下的每个服务节点,从而 阅读全文
摘要:
路由策略:怎么让请求按照设定的规则发到不同的节点上 回顾 健康检测在 RPC 中的作用,简单来讲就是帮助调用方应用来管理所有服务提供方的连接,并动态维护每个连接的状态,方便服务调用方在每次发起请求的时候都可以拿到一个可用的连接 为什么选择路由策略 在真实环境中服务提供方是以一个集群的方式提供服务,这 阅读全文
摘要:
健康检测:这个节点都挂了,为啥还要疯狂发请求 回顾 超大规模集群“服务发现”的挑战,服务发现的作用就是实时感知集群 IP 的变化,实现接口跟服务集群节点 IP 的映射。在超大规模集群实战中,我们更多需要考虑的是保证最终一致性。其实总结来说,就一关键词,你要记住“推拉结合,以拉为准” 背景 因为有了集 阅读全文
摘要:
服务发现:到底是要CP还是AP? 回顾 “怎么设计一个灵活的 RPC 框架” 总结起来,就是怎么在 RPC 框架中应用插件,用插件方式构造一个基于微内核的 RPC 框架,其关键点就是“插件化”。 服务发现 为了高可用,在生产环境中服务提供方都是以集群的方式对外提供服务,集群里面的这些 IP 随时可能 阅读全文
摘要:
架构设计:涉及一个灵活的RPC框架 回顾 RPC的通信原理及RPC中各个功能组件的作用 RPC就是把拦截到的方法参数,转成可以在网络中传输的二进制,并保证服务提供方能正确还原出语义,最终实现想调用本地一样的调用远程的目的 RPC架构 功能模块 传输模块 考虑到传输的可靠性,一般默认采用TCP协议;为 阅读全文
摘要:
动态代理 回顾 用来解决两个应用之间的通信,而网络则是两台l两台机器之间的“桥梁”,只有搭好桥梁才能把请求数据从一端传输到另一端,其中关键就是“可靠的传输” 背景 RPC的目标就是通过屏蔽调用细节,实现远程调用如同本地调用一样简单 在使用RPC时,一般的做法是先找服务提供方要接口,通过Maven或者 阅读全文