下载地址:http://mirror.bit.edu.cn/apache/zookeeper/
目前zookeeper-3.4.14/ 稳定版;高版本解压后丢失目录无法启动服务
下载后需要先进入conf目录复制一份zoo_sample.cfg为zoo.cfg,否则无法正常启动zookeeper
进入bin目录下找到zkServce.cmd管理员运行,zookeeper服务就启动了,如果没配置上面就会报错。zkCli.cmd为客户端.
下载地址:https://github.com/apache/dubbo-admin
进入dubbo的github托管网站进入dubbo模块,需要在分支下载dubbo-admin
在peoperties配置zookeeper地址127.0.0.1:2821(默认地址)
使用mvn工具打成jar包,或者在idea中打成jar包
使用java -jar 命令运行打好的jar包即可运行dubbo,启动成功后显示版本号以及本机IP
启动后访问localhost:7001端口将提示输入账号密码,默认都是root
进入这里就成功了!
在application.properties中配置如下
server.port=8080
# 服务应用名字
dubbo.application.name=provider-server
# 注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
# 哪些服务要被注册
dubbo.scan.base-packages=com.shiyan.service
<--本项目的pom坐标,提供者的坐标,可供消费者引用,无需创建该提供者的接口-->
<groupId>com.shiyan</groupId>
<artifactId>dubbo-test1-provider</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>dubbo-test1-provider</name>
<!--dubbo+zookeeper-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.3</version>
</dependency>
<!--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>4.0.1</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>
//zookeeper :服务注册与发现
@Service //可以被扫描,项目一启动就注册到zookeeper注册中心
@Component //区别dubbo和spring的service注解
public class TicketServiceImpl implements TicketService {
@Override
public String getTicket() {
return "誓言要努力啊!!!";
}
}
在application.properties中配置如下
server.port=8081
# 服务应用名字
dubbo.application.name=customer-server
# 注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
@Service //放到spring容器中
public class UserService {
//想拿到provider提供的票,要去注册中心拿到相应的服务
@Reference //一般引用Pom坐标,也可以定义路径相同的接口名
TicketService TICKET_SERVICE ;
public void buyTicket(){
String ticket = TICKET_SERVICE.getTicket();
System.out.println("注册中心获得的结果"+ticket);
}
}
@Reference
一般引用Pom坐标,引入坐标后需要取消启动类的@SpringBootApplication注解
/*
<!--引入提供者的坐标-->
<dependency>
<groupId>com.shiyan</groupId>
<artifactId>dubbo-test1-provider</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
也可以定义路径相同的接口名,直接在提供者复制该接口即可不然启动会报错
引入后创建测试类
@SpringBootTest
class DubboTest1ConsumerApplicationTests {
@Autowired
UserService userService;
@Test
void contextLoads() {
userService.buyTicket();
}
}
启动提供者程序入口以及本测试类
进入localhost:7001可以发现有一个服务提供者
点进去可以看到我们配置的详情信息
看看测试类运行结果
到此就完成了基本的入门程序了
原文:https://www.cnblogs.com/zhangshiyan/p/11946359.html