springboot集成dubbo、zookeeper
来源:互联网 发布:mac上编程软件 编辑:程序博客网 时间:2024/06/05 11:50
代码地址:
spirngboot_dubbo_base:https://github.com/kevindai007/springboot_dubbo_base
spirngboot_dubbo_server:https://github.com/kevindai007/springboot_dubbo_Server
spirngboot_dubbo_consumer:https://github.com/kevindai007/springboot_dubbo_Consumer
前段时间在springboot中继承了dubbo、zookeeper,期间遇到了不少坑,下面一起来看看怎么集成,怎么避免坑
- 首先简单介绍一下dubbo,dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案;zookeeper是dubbo推荐的注册中心(这两个在此不做展开讲解,有兴趣的朋友可以自己了解一下)
- 安装zookeeper:从官网上下载zookeeper的安装包:http://mirror.bit.edu.cn/apache/zookeeper/;下载后放到Linux服务器上,然后进入conf文件夹,复制zoo_sample.cfg文件命名为zoo.cfg,然后到bin文件夹输入命令zkServer.sh start启动zookeeper,如图
新建dubbo_base工程(dubbo_base工程主要是为了给dubbo_consumer、dubbo_seerver提供依赖),免得写重复代码;新建一个工程,如下图
工程很简单,只定义了一个MsgService的接口,然后把工程打成jar包以提供给其他工程依赖注意这里可能会产生第一个坑:自己的工程打成的jar包如何被其他maven工程依赖?
拿我这个工程举例,当我打好jar包之后,找到maven仓库地址
然后在maven仓库中,按照工程的groupId、artifactId、version新建路径存放jar包,如下图
新建springboot_dubbo_server工程,工程结构如下
其中DubboServerApplication.java为springboot的启动类,MsgServiceImpl为服务的实现类,application.properties为springboot的配置文件,dubbo-server.xml为dubbo的配置文件
dubbo-server.xml如下(这里列出主要配置,详细的见github工程):<!-- 提供方应用名称信息,这个相当于起一个名字,可以从dubbo管理页面比较清晰看出是哪个应用暴露出来的 --><dubbo:application name="dubboServer"></dubbo:application><dubbo:annotation package="com.kevindai.*" /><!-- 使用zookeeper注册中心暴露服务地址 --><dubbo:registry address="zookeeper://192.168.17.107:2181" check="false" subscribe="false" register=""></dubbo:registry><!-- 要暴露的服务接口 --><dubbo:service interface="com.kevindai.service.MsgService" ref="msgService" />
pom文件在此不列出,可参考github上的内容
这里又会有几个坑:- dubbo与springboot的spring冲突,因此需要移除dubbo中的spring引用,代码如下
<dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> </exclusions></dependency>
- zookeeper与springboot的日志文件冲突,需要移除zookeeper的日志引用
<dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency>
- zk客户端依赖问题
<!-- zk客户端,不加的话启动会报 java.lang.NoClassDefFoundError: org/I0Itec/zkclient/exception/ZkNoNodeException --> <!--一开始我依赖的是这个包,但启动时总是报错,后来发现是包的问题,换了依赖包之后一切正常 --> <!--<dependency>--> <!--<groupId>com.101tec</groupId>--> <!--<artifactId>zkclient</artifactId>--> <!--<version>0.10</version>--> <!--</dependency>--> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency>
新建springboot_dubbo_consumer工程
dubbo-consumer.xml主要配置如下
<dubbo:annotation package="com.kevindai.*" /><dubbo:application name="dubboConsumer"></dubbo:application><!-- 使用zookeeper注册中心暴露服务地址 --><dubbo:registry address="zookeeper://192.168.17.107:2181" check="false"></dubbo:registry><!-- 要引用的服务 --><dubbo:reference interface="com.kevindai.service.MsgService" id="msgService"></dubbo:reference>
在使用时,直接使用即可(能够使用MsgService是因为依赖了springboot_dubbo_base,能够注入成功则要感谢dubbo),
到这里已经完成了,网上搜了搜好像还没有这么通俗详细的文章,自己也踩了不少坑,特此记录下来,希望能帮助各位同学
- springboot集成dubbo、zookeeper
- Springboot Dubbo ZooKeeper整合
- dubbo+springboot+zookeeper
- springboot集成dubbo
- springboot集成dubbo
- Springboot集成dubbo
- springboot 集成dubbo
- springboot+dubbo+mybatis集成
- springboot 集成dubbo
- SpringBoot集成dubbo
- SSH+Dubbo+zookeeper集成
- Dubbo+Zookeeper集成SSM
- zookeeper与dubbo集成
- SpringBoot Dubbo ZooKeeper项目(一)
- springMvc dubbo zookeeper 集成demo
- Dubbo是如何集成Zookeeper
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
- SpringBoot项目中整合dubbo/zookeeper实战
- 圈点生活......
- Linux crontab
- Servlet的基本架构
- 自定义view进度条
- 人工智能发展史-从图灵测试到大数据
- springboot集成dubbo、zookeeper
- [笔记]: 区间dp
- [一天几个linux命令] 有效与初始用户组:group, newgrp
- Park Visit(树型DP)
- mysql---过滤数据
- [Virtualization]ESXi体系结构与内存管理(一)体系结构
- 【Redis进阶】Redis伪集群搭建与简单应用
- Kotlin学习——基本语法
- 描述Jsp页面的运行过程