本篇为继上一篇的续篇,主要内容分为以下几点:
1、zookeeper集群
2、web管理平台
3、dubbo配置说明
接下来我们开始继续吧。
一、zookeeper集群
顾名思义也就是多台zookeeper服务以及多台服务器共同协作。
在上一篇中我们已经把dubbo-consumer工程实现了,我们能够看出来zookeeper默认监听的端口号为 2181, 相对来说这只是一台zookeeper服务,在这种情况下我们也能实现多台zookeeper服务。
1、首先启动zookeeper服务,那么此时端口号为2181的zookeeper服务已经启动了,接着修改zoo.cfg配置文件,将其属性clientPort=2181改为clientPort=2182或者2183等其他端口,然后再启动zookeeper服务,那么端口为2182的zookeeper的服务便启动了。(注意:刚才启动的端口号为2181的zookeeper服务并未关闭)多次修改端口号并且启动zookeeper服务,此时已经形成了多台zookeeper服务了。
2、编写多个类似于dubbo-provider工程的实例,并且分别他们的spring-dubbo-provider.xml文件中配置注册中心:
<dubbo:registry address="zookeeper://localhost:2182"/>
或者
<dubbo:registry address="zookeeper://localhost:2183"/>
3、在名为dubbo-consumer的maven工程中,修改其spring-dubbo-consumer.xml文件。添加多个注册中心的配置如下:
<dubbo:registry address="zookeeper://localhost:2182"/>
<dubbo:registry address="zookeeper://localhost:2183"/>
....
并且添加多个暴露的接口配置如下:
<dubbo:reference id="testService2" interface="com.dubbo.test.inter.service.TestService2"/>
<dubbo:reference id="testService3" interface="com.dubbo.test.inter.service.TestService3"/>
这样便可以从多个zookeeper服务中获取暴露的远程接口,并且作为自己的业务开发使用
4、测试,跟之前测试一致
①启动多个zookeeper服务
②启动各个provider
③启动各个consumer
说到这里,多台zookeeper的集群完成,然后对于多台服务来说也没有多大区别,也只不过是把同一个项目分别放到多个服务器中。
二、web管理平台
下载dubbo-admin-2.5.3.war 文件,把改文件放到tomcat的webapps目录下,然后启动zookeeper和Tomcat,在浏览器中输入http://localhost:8080/dubbo-admin便可以查看
注意:如果JDK是1.8版本的,需要切换成1.7,因为dubbo-admin-2.5.3.war文件对1.8版本的JDK存在兼容性问题,否则Tomcat启动会失败报错。
以下有两种修改JDK版本的方式:
①方式一:
修改为:
rem Set standard command for invoking Java. rem Note that NT requires a window name argument when using start. rem Also note the quoting as JAVA_HOME may contain spaces. set _RUNJAVA="D:\Java\jdk1.7.0_79\bin\java.exe"<dubbo:reference/> 引用服务配置,用于创建一个远程服务代理,一个引用可以指向多个注册中心。
<dubbo:protocol/> 协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
<dubbo:application/> 应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
<dubbo:module/> 模块配置,用于配置当前模块信息,可选。
<dubbo:registry/> 注册中心配置,用于配置连接注册中心相关信息。<dubbo:monitor/> 监控中心配置,用于配置连接监控中心相关信息,可选。
<dubbo:provider/> 提供方的缺省值,当ProtocolConfig和ServiceConfig某属性没有配置时,采用此缺省值,可选。<dubbo:consumer/> 消费方缺省配置,当ReferenceConfig某属性没有配置时,采用此缺省值,可选。<dubbo:method/> 方法配置,用于ServiceConfig和ReferenceConfig指定方法级的配置信息。<dubbo:argument/> 用于指定方法参数配置。