Spring MVC + zookeeper + Dubbo 配置

一、首先下载zookeeper注册中心,下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper/ web

二、在conf目录下,有一个zoo_sample.cfg文件,将其命名为zoo.cfg,而且修改配置文件apache

 

 

    如下是对各个参数的说明:浏览器

                        tickTime:这个时间是Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每一个tickTime时间就会发送一个心跳。tomcat

                        dataDic:Zookeeper保存数据的目录,默认状况下,Zookeeper将写数据的日志也保存在这个目录里面。安全

                        dataLogDir:Zookeeper保存日志文件的目录服务器

                        clientPort:客户端链接Zookeeper服务器的端口,Zookeeper会监听这个端口,接受客户端的访问请求。架构

由于Zookeeper须要默认占用8080这个端口,而zookeeper最近的版本中有个内嵌的管理控制台是经过jetty启动,也会占用8080 端口。 并发

            经过查看zookeeper的官方文档,发现有3种解决途径:app

            (1).删除jetty。webapp

            (2)修改端口。

                  修改方法的方法有两种,一种是在启动脚本中增长 -Dzookeeper.admin.serverPort=你的端口号.一种是在zoo.cfg中增长admin.serverPort=没有被占用的端口号

            (3)停用这个服务,在启动脚本中增长"-Dzookeeper.admin.enableServer=false"

    3.双击bin文件夹中的zkServer.cmd启动注册中心服务。

 另外说一下dubbo+Zookeeper与提供者provider、消费者consumer之间的通讯过程、

    Zookeeper做为注册中心,使用单独的服务器,占用2181端口。

     dubbo-admin做为监控中心,与Zookeeper使用相同的服务器,tomcat部署占用8080端口。

     provider做为提供者,使用单位服务器,tomcat部署占用8080端口,使用dubbo协议开放20880端口。

     consumer做为消费者,单独使用服务器,tomcat部署占用8080端口。

 

一、用dubbo协议在20880端口暴露服务

        在提供者的dubbo配置文件中,通常都配置了

<dubbo:protocolname="dubbo"port="20880"/>

 

 

         代表dubbo协议在20880端口暴露服务,固然若是不配置,默认使用20880端口暴露服务,全部消费者都是经过20880端口进行,对于消费者而言,提供者服务8080端口是透明的,也就是说提供者服务器端口号能够任意改变,服务也不会有任何影响,消费者无需关心。

    因此须要提供者开放20880端口给消费者,而不是8080端口给消费者。

二、端口开放状况

    Zookeeper做为注册中心,provider注册服务、consumer订阅服务、dubbo-admin监控服务,因此Zookeeper注册中心的2181端口须要向provider、consumer、dubbo-admin开放;

    一把你状况下,dubbo-admin监控中心与Zookeeper注册中心部署在相同的服务器上,Zookeeper能够不考虑端口开放给dubbo-admin的状况;

    cunsumer订阅服务,即拿到了provider在20880端口暴露的服务,当consumer请求服务是,直接从consumer跳到provider,而不是consumer到Zookeeper再到provider,因此,provider的2080端口无需开放给Zookeeper;

    同理,provider相应服务时,也是直接从provider到consumer,而不是provider到zookeeper再到consumer,因此consumer的8080无需开放 给Zookeeper;

三、总结一下

    Zookeeper的2181开放给provider、 consumer、dubbo-admin

    provider的20880开放给全部consumer,可是8080服务端口能够屏蔽

    consumer的8080开放给全部的provider

    dubbo-admin的8080开放给管理员用户,便于经过浏览器监控注册中心服务的状况。

    注册中心只负责服务注册和目录发布,安全受权,实际的服务访问仍然是两个组件之间的点对点链接完成,这种方式下整个架构获取更高的性能,同事服务管理平台也不容易成为大并发服务访问下的单点瓶颈。

附:Dubbo的管理页面

 

须要下载:dubbo-admin-2.5.3的war

下载地址:http://download.csdn.net/detail/u013286716/7041185

 

操做以下:

 

1,替换掉tomcat/webapps下自带的ROOT文件夹内容(即替换tomcat的启动主页),将下载的war包解压到webapps/ROOT中,直接替换便可

 

   注意:jdk不要使用1.8,本次实验使用的为1.7

 

2,启动tomcat,访问ip:8080便可或者若是是本地的话使用localhost:8080

输入用户名密码,在E:\apache-tomcat-7.0.6-dubbo\webapps\ROOT\WEB-INF下的dubbo.properties文件中便可查看到,如:

 

3,访问 http://localhost:8080/dubbo-admin-2.5.3

 

 

 

 

4,启动咱们的服务提供者和消费者便可查看到

 

 

相关文章
相关标签/搜索