假设zookeeper安装在172.16.22.2这台服务器上,现在我们通过命令行查看dubbo在zookeeper注册服务的生产者和消费者信息
首先通过命令切换到/zookeeper-3.4.11/bin目录,然后输入
(2182为zookeeper在服务器上提供服务的端口)会看到如下截图:
然后在命令行再输入:
查看目录信息,就能看到注册的dubbo服务,截图如下:
在命令行依次输入:
会看到dubbo服务提供的对外接口,截图如下:
查看消费者命令:
会看到消费者的信息,截图如下:
查看生产者命令:
会看到生产者的信息,截图如下:
查看Zookeeper下Dubbo的服务提供者与服务消费者信息:有些场景下我们需要查看ZK下dubbo的注册和消费信息,但是在没有安装dubbo admin等可视化管理插件时我们需要通过命令的方式查看。(如:收到provider不存在之类的报错信息)
引用: http://www.wangqi94.com
直连加不发布服务DUBBO的配置属性里面对消费端提供了不从注册中心发现服务的机制,直接配置远程接口的地址,这样可以保证消费端连接到制定的环境接口。这样消费端是解决了问题,但是服务提供端呢?如上图的B1它即是消费端也是服务提供端,它提供A1所依赖的接口,那么如果B1将它的服务发布到注册中心里面(这里需要提醒,STABLE环境机制里面所有子环境公用一个注册中心),那么势必会导致stable环境里面的A会发现B1提供的服务?势必会导致stable环境的不稳定(stable环境的机制是stable环境只能进不能出,就是不能调用外部其他子环境的服务)?所以B1不能发布服务到注册中心,dubbo也提供了相关的配置属性来支持这一点。下面我例举出通过哪些配置可以实现这种方案:
服务消费端:
DUBBO在消费端提供了一个url的属性来指定某个服务端的地址
<!--lang:xml-->
<dubbo:reference interface="com.alibaba.dubbo.demo.HelloWorldService" check="false" id="helloWorldService"/>
默认的方式是从注册中心发现接口为com.alibaba.dubbo.demo.HelloWorldService的服务,但是如果需要直连,可以在dubbo.properties下面配置dubbo.reference.helloWorldService.url=dubbo://ip:port/com.alibaba.dubbo.demo.HelloWorldService可以通过配置dubbo.reference.url=dubbo://ip:port/来让某个消费者系统的服务都指向制定的服务器地址(关于配置信息可以参考《DUBBO配置规则详解》)
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)