项目最近做成了分布式的 。用zookeeper 注册管理服务,使用dubbo做分布式开发。
1、使用zookeeper和dubbo需要引入的包
<!-- Zookeeper 用于分布式服务管理 -->
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
</dependency>
<!-- dubbo -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
<exclusions>
<exclusion>
<artifactId>spring</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
2、提供者
<!-- 服务注册名称 -->
<dubbo:application name="userCenter-service" />
<!-- 使用multicast广播注册中心暴露服务地址 服务注册地址和端口号-->
<dubbo:registry address="zookeeper://172.19.6.237:2181" />
<!-- 分布式使用的协议(这里是dubbo)、端口号 -->
<dubbo:protocol name="dubbo" port="20880" />
<!--- 配置服务等待超时时间()-->
<dubbo:provider delay="-1" timeout="60000" retries="0"/>
<!-- 声明需要 引用的服务接口 -->
<!-- usersSericeImpl -->
<dubbo:service interface="com.trusdom.backstage.service.user.person.IUserService" ref="usersSericeImpl" />
3、消费者
<!-- 消费方应用信息,用于计算依赖关系 -->
<dubbo:application name="backState-service-use" />
<!-- 使用multicast广播注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://172.19.6.237:2181" />
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
<!-- usersSericeImpl 需要引入的服务-->
<dubbo:reference id="usersSericeImpl" interface="com.trusdom.backstage.service.user.person.IUserService"/>
4、zookeeper 的日志输出
zookeeper 在控制台(console)里面的日志输出过于频繁,影响开发。找到 zookeeper/conf/zoo.cfg
修改 tickTime=2000参数,这类配置的是2秒。我们配置的时间值大一些就好了。