dubbo问题

Dubbo注册中心挂掉之后,是否还可以继续通信?

可以的,启动dubbo时,消费者会从zk拉取注册的生产者的地址接口等数据,缓存在本地。每次调用时,按照本地存储的地址进行调用

  • 注册中心对等集群,任意一台宕掉后,会自动切换到另一台
  • 注册中心全部宕掉,服务提供者和消费者仍可以通过本地缓存通讯
  • 服务提供者无状态,任一台 宕机后,不影响使用
  • 服务提供者全部宕机,服务消费者会无法使用,并无限次重连等待服务者恢复

dubbo泛化调用,找不到服务提供者

1
2
3
4
5
6
7
ReferenceConfig<GenericService> reference = new ReferenceConfig<GenericService>();
reference.setApplication(application);
reference.setRegistry(registry);
reference.setInterface("xyz.mqiy.demo.service.UserService");

// 声明为泛化接口
reference.setGeneric(true);

原因: reference.setInterface方法入参不对,参数为接口全限定名,写成了xyz.mqiy.demo.service.userService

Dubbo-Fail to decode request due to: RpcInvocation

原因:

1.传输的参数中是否包含了不能序列化的属性,例如ImmutableList、Joda DateTime等。  

解决办法:

1.传输的参数中去除不能序列化的属性,使用可序列化参数代替。

还有可能是服务方方法未发布