Solon v3.7.2

dami2 - lpc 对接 rpc 或 mq

</> markdown

lpc 是基于 call 事件总线,可以有很多个提供者,(但有返回值时)只接收第一个答复。

1、对接 rpc 接口(比如 nami, dubbo)

dubbo 对接,只需要把客户侧实例注册为 lpc 提供者(即接收方)。且,方法名和参数对上即可。

@Configuration
public class Config{
    @Bean
    public void case1(@DubboReference HelloService helloService){
        Dami.lpc().registerProvider("topic.demo", 0, helloService);
    }
    
    @Bean
    public void case2(@NamClient HelloService helloService){
        Dami.lpc().registerProvider("topic.demo", 0, helloService);
    }
}

2、对接 mq

同上,把发送端注册为 lpc 的 registerProvider。或者使用 bus 模式注册(参考: dami - bus 之调用事件(call)

Dami.bus().listen(topic, (event,data, sink) -> {
    //这里只是示意代码。。。(如果由 lpc 发起请求,data 的格式与 lpc 编解码器有关)
    String json = JSON.toJson(data);
    Mq.send(event.getTopic(), json);
});