使用
引入maven依赖
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-registry-redis</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
配置文件修改
dubbo.registry.address=redis://49.234.190.147:6379
实现原理
服务启动后会在redis里创建两个值
127.0.0.1:6379> keys *
1) "com.william.dubbodemo.api.IHelloService:1.0.0::provider:dubbo--provider-demo"
2) "/dubbo/com.william.dubbodemo.api.IHelloService/providers"
127.0.0.1:6379> type /dubbo/com.william.dubbodemo.api.IHelloService/providers
hash
127.0.0.1:6379> type com.william.dubbodemo.api.IHelloService:1.0.0::provider:dubbo--provider-demo
string
//查看值,key为url,value是过期值.发布者会周期性的刷新更新时间,如果服务宕机,key会因为超时被redis删除。
127.0.0.1:6379> hkeys /dubbo/com.william.dubbodemo.api.IHelloService/providers
1) "dubbo://192.168.48.1:12345/com.william.dubbodemo.api.IHelloService?anyhost=true&application=dubbo--provider-demo&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.william.dubbodemo.api.IHelloService&metadata-type=remote&methods=sayHello&pid=8852&release=2.7.8&revision=1.0.0&side=provider×tamp=1600142556401&version=1.0.0"
2) "rest://192.168.48.1:12346/com.william.dubbodemo.api.IHelloService?anyhost=true&application=dubbo--provider-demo&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.william.dubbodemo.api.IHelloService&metadata-type=remote&methods=sayHello&pid=8852&release=2.7.8&revision=1.0.0&side=provider×tamp=1600142555601&version=1.0.0"
127.0.0.1:6379> hvals /dubbo/com.william.dubbodemo.api.IHelloService/providers
1) "1600164555270"
2) "1600164555301"
127.0.0.1:6379> get com.william.dubbodemo.api.IHelloService:1.0.0::provider:dubbo--provider-demo
"{\"parameters\":{\"side\":\"provider\",\"release\":\"2.7.8\",\"methods\":\"sayHello\",\"deprecated\":\"false\",\"dubbo\":\"2.0.2\",\"interface\":\"com.william.dubbodemo.api.IHelloService\",\"version\":\"1.0.0\",\"qos.enable\":\"false\",\"generic\":\"false\",\"revision\":\"1.0.0\",\"metadata-type\":\"remote\",\"application\":\"dubbo--provider-demo\",\"dynamic\":\"true\",\"anyhost\":\"true\"},\"canonicalName\":\"com.william.dubbodemo.api.IHelloService\",\"codeSource\":\"file:/D:/mygit/dubbodemo/api/target/classes/\",\"methods\":[{\"name\":\"sayHello\",\"parameterTypes\":[],\"returnType\":\"java.lang.String\"}],\"types\":[{\"type\":\"int\",\"typeBuilderName\":\"org.apache.dubbo.metadata.definition.builder.DefaultTypeBuilder\"},{\"type\":\"char\",\"typeBuilderName\":\"org.apache.dubbo.metadata.definition.builder.DefaultTypeBuilder\"},{\"type\":\"java.lang.String\",\"typeBuilderName\":\"org.apache.dubbo.metadata.definition.builder.DefaultTypeBuilder\"}]}"