服务引入的核心就是构造代理对象,而代理对象的核心在于代理逻辑。
    核心代理逻辑:

    1. 获取服务提供者列表
    2. Mock 逻辑
    3. 路由规则 M —> N
    4. 负载均衡 N —> 1
    5. 集群容错:如果 1 执行失败了
    6. 构造 Netty 客户端
    7. 发送数据(Invocation:方法+方法参数等)

    每个注册中心的服务都会有一个 Invoker,如果配置了多个注册中心那么就会有多个 Invoker,如果有配置了默认的注册中心,就会选择默认的执行 invoke 方法,如果没有配置,遍历注册中心取出第一个 Invoker 执行 invoker 方法。

    MockInvokerWrapper
    image.png