SOFARPC

服务发布

服务发布过程涉及到三个类 RegistryConfigServerConfigProviderConfig

  1. RegistryConfig

    1. RegistryConfig registryConfig = new RegistryConfig()
    2. .setProtocol("zookeeper")
    3. .setAddress("127.0.0.1:2181")

    RegistryConfig 表示注册中心。如上声明了服务注册中心的地址和端口是127.0.0.1:2181,协议是 Zookeeper 。

  2. ServerConfig

    1. ServerConfig serverConfig = new ServerConfig()
    2. .setPort(8803)
    3. .setProtocol("bolt");

    ServerConfig 表示服务运行容器。如上声明了一个使用8803端口和 bolt 协议的 server 。

  3. ProviderConfig

    1. ProviderConfig<HelloWorldService> providerConfig = new ProviderConfig<HelloWorldService>()
    2. .setInterfaceId(HelloWorldService.class.getName())
    3. .setRef(new HelloWorldServiceImpl())
    4. .setServer(serverConfig)
    5. .setRegistry(registryConfig);
    6. providerConfig.export();

    ProviderConfig 表示服务发布。如上声明了服务的接口,实现和该服务运行的 server 。
    最终通过 export 方法将这个服务发布出去了。

服务引用

服务引用涉及到两个类, RegistryConfigConsumerConfig

  1. ConsumerConfig<HelloService> consumerConfig = new ConsumerConfig<HelloService>()
  2. .setInterfaceId(HelloService.class.getName())
  3. .setRegistry(registryConfig);
  4. HelloService helloService = consumerConfig.refer();

ConsumerConfig 表示服务引用,如上声明了所引用服务的接口和服务注册中心。
最终通过 refer 方法将这个服务引用,获取到该服务的远程调用的代理。