在上一篇中,我对http请求从浏览器端如何通过soul转发到后台的整个流程从源码的角度做了梳理,今天,将从源码的角度来分析一下,Dubbo应用接入soul后是如何做到在启动时将拦截规则信息自动注册到soul-admin中的。
首先,先大概讲一下一个dubbo应用接入soul应该要做哪些事情:
1、需修改 application.yaml 配置文件,添加 Soul 配置项如下:
soul:
dubbo:
adminUrl: http://localhost:9095
contextPath: /dubbo
appName: dubbo
2、修改 pom.xml 文件,引入soul-spring-boot-starter-client-apache-dubbo依赖:
<dependency>
<groupId>org.dromara</groupId>
<artifactId>soul-spring-boot-starter-client-apache-dubbo</artifactId>
<version>${soul.version}</version>
</dependency>
加上这些配置,启动soul-examples-apache-dubbo-service工程后,控制台日志会输出以下信息:
2021-01-20 01:13:03.084 INFO 21220 --- [pool-2-thread-1] o.d.s.client.common.utils.RegisterUtils : dubbo client register success: {"appName":"dubbo","contextPath":"/dubbo","path":"/dubbo/insert","pathDesc":"Insert a row of data","rpcType":"dubbo","serviceName":"org.dromara.soul.examples.dubbo.api.service.DubboTestService","methodName":"insert","ruleName":"/dubbo/insert","parameterTypes":"org.dromara.soul.examples.dubbo.api.entity.DubboTest","rpcExt":"{\"group\":\"\",\"version\":\"\",\"loadbalance\":\"random\",\"retries\":2,\"timeout\":10000,\"url\":\"\"}","enabled":true}
2021-01-20 01:13:03.098 INFO 21220 --- [pool-2-thread-1] o.d.s.client.common.utils.RegisterUtils : dubbo client register success: {"appName":"dubbo","contextPath":"/dubbo","path":"/dubbo/findById","pathDesc":"Query by Id","rpcType":"dubbo","serviceName":"org.dromara.soul.examples.dubbo.api.service.DubboTestService","methodName":"findById","ruleName":"/dubbo/findById","parameterTypes":"java.lang.String","rpcExt":"{\"group\":\"\",\"version\":\"\",\"loadbalance\":\"random\",\"