springboot+dubbo+zookeeper
一、dubbo-admin,dubbo-monitor安装
dubbo-admin
- 下载 [https://github.com/apache/dubbo/tags]
- 编译dubbo-admin工程,打成war包。dubbo-admin-2.6.0.war
- 解压到tomcat目录下/webapps/ROOT
unzip dubbo-admin-2.6.0.war -d apache-tomcat-7.0.108/webapps/ROOT/
- 进入/webapps/ROOT/WEB-INF 目录修改文件 dubbo.properties
dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.admin.root.password=root dubbo.admin.guest.password=guest
- 启动tomcat
dubbo-monitor
- 解压
tar -zxvf dubbo-2.6.0.tar.gz
- 进入dubbo monitor目录
cd incubator-dubbo-dubbo-2.6.0/dubbo-simple/dubbo-monitor-simple
- mvn打包
mvn clean package
- 打包后找到dubbo-simple\dubbo-monitor-simple\target\dubbo-monitor-simple-2.6.0-assembly.tar.gz,这就是dubbo monitor监控中心程序
- 修改配置
解压dubbo-monitor-simple-2.6.0-assembly.tar.gz
修改配置文件tar -zxf dubbo-monitor-simple-2.6.0-assembly.tar.gz
cd dubbo-monitor-simple-2.6.0/conf vi dubbo.properties
6. 启动测试
/bin目录下启动 ./start.sh
7. dubbo monitor Out of Memory Error 启动bug:
start.sh 文件中默认启动需要的的JVM内存大小设置为2G,导致内存不足
改为-Xmx512m -Xms512m -Xmn256m 即可
二、springboot+dubbo+zookeeper
-
新建dubbo-api,dubbo-provider,dubbo-consumer模块
-
编写dubbo-api接口
public interface IUserService { public String hello(); }
-
dubbo-provider导入依赖
<dependencies> <dependency> <groupId>com.lzj</groupId> <artifactId>dubbo-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <!--引入dubbo --> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>0.2.0</version> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> </dependencies>
-
编写配置文件
server: port: 8087 dubbo: application: name: provider-boot-an registry: protocol: zookeeper address: 127.0.0.1:2181 protocol: port: 28803
-
实现接口,此处@Service用的是dubbo包的
@Component //表明这是一个spring组件,归spring管理 @Service //发布组件 public class UserServiceImpl implements IUserService { @Override public String hello() { System.out.println("hello"); return "hello,dubbo!"; } }
-
dubbo-consumer导入依赖
<dependencies> <dependency> <groupId>com.lzj</groupId> <artifactId>dubbo-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <!--引入dubbo --> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>0.2.0</version> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> </dependencies>
-
编写配置文件
server: port: 8089 dubbo: application: name: consumer-boot registry: protocol: zookeeper address: zookeeper://127.0.0.0:2181
-
@Reference远程调用
@RestController public class ConsumerController { @Reference private IUserService iUserService; @GetMapping("/hello") public String test() { return iUserService.hello(); } }
-
启动测试