服务发布

服务发布过程涉及到三个类 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 方法将这个服务引用,获取到该服务的远程调用的代理。