那么,具体某一个请求到底应该是由哪个服务实例来响应最为合适呢?这个话题看上去很简单,实际上却有点复杂,涉及到服务请求的路由机制
而在分布式系统中,上一讲中引入的负载均衡就是最常见也是最具代表性的一种路由机制。为了对请求进行合理的分发,我们需要提供一组负载均衡算法,那么常见的负载均衡算法有哪些?它们又应该如何实现呢?
那么,具体某一个请求到底应该是由哪个服务实例来响应最为合适呢?这个话题看上去很简单,实际上却有点复杂,涉及到服务请求的路由机制
而在分布式系统中,上一讲中引入的负载均衡就是最常见也是最具代表性的一种路由机制。为了对请求进行合理的分发,我们需要提供一组负载均衡算法,那么常见的负载均衡算法有哪些?它们又应该如何实现呢?
我们知道服务发布的过程就是服务提供者对外暴露可访问入口的过程。基于所暴露的访问入口,服务消费者就可以成功发起远程调用。我们把这个过程称为服务引用。
和服务发布类似,服务引用也具备一套完整的执行流程。那么,服务引用有哪些具体的实现方式呢?
本质上,一次远程调用涉及两个角色,即服务提供者和服务消费者,分别用来实现服务的发布和引用。在本讲内容中,我们将讨论服务的发布过程,并引出一个常见的面试题,即:如何合理设计服务发布机制?
任何分布式系统的开发都涉及到跨进程之间的远程过程调用,也就是所谓的 RPC。那么,现在假如没有这些开源框架,而是需要你自己来设计并实现一套远程过程调用机制,你应该怎么做的?
借助于分布式服务框架,我们可以实现不同服务之间跨网络的交互和协作。网络通信涉及到数据的有效传输,这就需要引入另一个技术组件,即序列化。而目前关于如何实现序列化和反序列化,业界也诞生了一大批工具和框架。
那么,序列化是一种什么样的技术组件?我们又应该如何对种类繁多的序列化实现工具进行正确选型呢?
如何设计并实现高效的网络通信机制,这是分布式服务框架的核心功能之一,也是我们在面试过程中经常会碰到的一个面试题。
实现分布式服务应该具备哪些核心技术组件呢?
究竟什么是分布式系统?分布式系统和单体系统之间到底有什么区别?