Dubbo+zookepter案例
下载地址
出现的问题
1.点击zkServer.cmd文件启动闪退!
为了查看启动的错误,如下:操作:
这样就不会闪退了,可以查看出错信息
这里的出错信息如下:
解决办法
Dubbo配置
1.dubbo下载地址(这里我使用码云,因为github优点慢)
下载地址:dubbo
2.进入解压目录,进入cmd,输入以下命令,将项目打包
mvn clean package -Dmaven.test.skip=true
然后进入如下所示的jar包目录
进入cmd,使用java命令执行该jar包(启动dubbo服务)。注意:启动之前记得把zookeeper注册中心的服务开启。
dubbo-admin的启动端口为:7001
登录页面:用户名和密码:root
启动成功后如下:
服务注册发现实战
1.导入依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- 邮件任务-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- dubbo的依赖-->
<!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-spring-boot-starter -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<!-- 原来是2.7.5-->
<version>2.7.0</version>
</dependency>
<!-- zookeeper的依赖-->
<!-- https://mvnrepository.com/artifact/com.github.sgroschupf/zkclient -->
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.14</version>
<!-- 需要排除slf4j-log4j12这个依赖,不然会冲突-->
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
2.新建2个module:(一个为provider(提供服务)、一个为customer(消费服务)。
3.配置
provider配置:
#端口
server:
port: 8081
dubbo:
application:
name: provider-hjx_1 # 服务名字
registry:
address: zookeepter://127.0.0.1:2181
scan:
base-packages: com.hjx.service # 注册哪些服务 包扫描
customer配置
#端口
server:
port: 8082
dubbo:
application:
name: customer_server # 服务名字
registry:
address: zookeepter://127.0.0.1:2181 # 从注册中心获取服务
提供服务
package com.hjx.service;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;
@Service //注意这里使用dubbo的@Service注解,这样服务启动才能够被注入到注册中心
@Component
public class MyfaceImpl implements Myface{
@Override
public String hello() {
return "hello world,这时我的第一个zookeeper!";
}
}
客户消费服务
注意:这里的@Service注解是spring提供的
最后,编写测试类,调用buyTicket方法即可。