Dubbo服务示例演示
官方说明文档:https://dromara.org/zh-cn/docs/soul/user-dubbo.html
启动示例项目
dubbo以Zookeeper作为注册中心,所以需要本地先启动zookeeper。
启动了zookeeper之后,接着还要在我们的后台管理启动dubbo的插件。

以上两步完成之后,则可以启动我们的示例代码,直接run我们的TestAlibabaDubboApplication即可启动。
启动完成之后,和Http协议同样,我们的Soul会主动发现我们的规则,在插件管理的dubbo下即可看到我们所定义的规则了。

访问测试
我们以findById这个方法为例,可以看到通过访问9195端口即可访问到我们的示例项目的方法。

当我们把规则关掉之后,就会发现找不到规则,无法访问服务器。


再看我们示例代码中怎么实现的,在每个方法上使用@SoulDubboClient注解,将该方法配置到Soul的规则里,就可以通过Suol网关代理访问了。
@Override
@SoulDubboClient(path = "/findById", desc = "Query by Id")
public DubboTest findById(final String id) {
DubboTest dubboTest = new DubboTest();
dubboTest.setId(id);
dubboTest.setName("hello world Soul Alibaba Dubbo, findById");
return dubboTest;
}
Dubbo协议支持的插件
通过Debug可以看出,execute方法中会遍历如下插件进行操作,目前我们只配置了dubbo,也就是它的Selector和Rule,至于其他几个插件,后面研究一下再做说明。
| plugin | class |
|---|---|
| sign | SignPlugin |
| waf | WafPlugin |
| rate_limiter | RateLimiterPlugin |
| hystrix | HystrixPlugin: |
| resilience4j | Resilience4JPlugin |
| dubbo | AlibabaDubboPlugin |
| monitor | MonitorPlugin |
先看一下dubbo插件的玩法:它提供了选择器和规则两级配置。

通过选择器我们配置了所有dubbo协议的请求经由后续规则处理。

后面的规则指定了具体调用的方法。

298

被折叠的 条评论
为什么被折叠?



