SpringBoot整合Dubbo+zookeeper(小白必看)

这里写自定义目录标题


一、背景
以前用spring单独整合过Dubbo+zookeeper,因为用springboot已经好长时间,而且配置也方便,想着重新用springboot整合下Dubbo+zookeeper;各种心酸,因为一个注解的问题导致消费者无法注册到Dubbo中,心累!后面会提到的。

二、前期准备
1.zookeeper安装

下载地址:

链接:https://pan.baidu.com/s/10eqWES0LBR3YLKhrnJXUuw
提取码:dpvn

a)下载完了后,解压出来,到\apache-zookeeper-3.6.0-bin\conf目录下,将zoo_sample.cfg文件复制一份改一个名字:zoo.cfg

在这里插入图片描述

b)修改zoo.cfg文件,主要修改的是下面两个目录,需要到对应的路径下创建目录哦

在这里插入图片描述

c)启动。切换到apache-zookeeper-3.6.0-bin\bin目录下,双击zkServer.cmd启动就Ok了

在这里插入图片描述

2.dubbo安装

下载地址:

链接:https://pan.baidu.com/s/10eqWES0LBR3YLKhrnJXUuw
提取码:dpvn

a)下载完后了之后解压,然后切换到dubbo-admin目录下,打开命令行,输入:mvn clean install,然后会在target目录产生一个war包,将产生的war包放入tomcat的webapps目录下,然后到tomcat的bin目录下执行startup.bat启动tomcat(我的tomcat默认端口为8080,启动时一直提示端口本占用,可以把tomcat的端口号换一个,我换的8081)

在这里插入图片描述

在这里插入图片描述

b)启动成功后就可以在浏览器访问dubbo可是页面了,登录用户和密码:root/root

在这里插入图片描述

三、项目搭建
1.先创建一个父项目dubbo-parent,然后引入依赖

org.springframework.boot spring-boot-starter-web 2.0.0.RELEASE com.alibaba.boot dubbo-spring-boot-starter 0.2.0 org.apache.zookeeper zookeeper 3.4.8 com.101tec zkclient 0.10 2.创建一个公共的api接口工程:common-api,然后创建一个HelloService接口

在这里插入图片描述

public interface HelloService {

public String sayHello(String message);

}
3.创建一个服务提供者工程:server-provider,然后引入common-api工程,实现common-api的中HelloService接口

@Service(interfaceClass = HelloService.class)
public class HelloServiceImpl implements HelloService {

public String sayHello(String message) {
    return "hello:"+message;
}

}
这个地方的@Service是Dubbo框架中的注解,然后需要指明接口

配置文件的配置如下:

server:
port: 9001
dubbo:
application:
# 服务名称,保持唯一
name: server-provider
# zookeeper地址,用于向其注册服务
registry:
protocal: zookeeper
address: zookeeper://127.0.0.1:2181
#address: zookeeper://127.0.0.1:2181?backup=127.0.0.1:2182,127.0.0.1:2183
protocol:
name: dubbo
port: 20880
scan: com.pyh.provider.service

启动类:

@EnableDubbo
@SpringBootApplication
public class MainApplication {

public static void main(String[] args) {
    System.out.println("=============start============");
    SpringApplication.run(MainApplication.class,args);
    System.out.println("=============end============");
}

}
4.创建一个服务消费者工程:server-consumer,然后引入commin-api工程,然后创建一个控制器

在这里插入图片描述

@RestController
public class HelloController {

@com.alibaba.dubbo.config.annotation.Reference
private HelloService helloService;

@RequestMapping("sayHello")
public String sayHello(String message){
    return helloService.sayHello(message);
}

}
这个地方需要注意下,一定要使用dubbo的@reference注解,不然消费者就不能注册到dubbo中,我在这个地方折腾了好久,人都快崩溃了,切记,切记,切记!

配置文件:

server:
port: 9002
dubbo:
application:
name: server-consumer
registry:
protocol: zookeeper
address: zookeeper://127.0.0.1:2181
#address: zookeeper://127.0.0.1:2181?backup=127.0.0.1:2182,127.0.0.1:2183
scan:
base-packages: com.pyh.consumer

启动类:

@SpringBootApplication
@EnableDubboConfig
public class MainApplication {

public static void main(String[] args) {
    System.out.println("=============start===============");
    SpringApplication.run(MainApplication.class,args);
    System.out.println("=============end===============");
}

}
5.启动server-provider和server-consumer服务

启动完成后就会在dubbo的页面看到服务的提供者和消费者,到此就搭建完成了

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值