我也是一个新手,也是刚刚接触dubbo
学习的视频:10-dubbo快速入门-服务消费者_哔哩哔哩_bilibili
中间出现一个报错参照博客:阿里云centos8安装zookeeper及启动失败解决_胡乐天的博客-CSDN博客https://blog.csdn.net/weixin_44613100/article/details/106844749
首先dubbo需要一个注册中心,官网里面推荐的也是用zookeeper
我用的腾讯云搭建的zookeeper
搭建zookeeper:
1.下载压缩包:阿帕奇下载 (apache.org)
2.放到/opt下面
3.解压压缩包,上面蓝色的就是解压好的
4.进到conf,然后把zoo_sample.cfg拷贝一份为zoo.cfg放到同目录下面
5.编辑zoo.cfg
(1)需要建一个dataDir的目录,我建的是/opt/zookeeper/zkdata
(2)admin.serverPort=18080(这行就是我zookpper启动报错之后解决问题写的,参照的也是上面那个解决报错的博客)
(3)保存退出
6.进到bin目录下面
这里看到有很多命令,zkServer.sh就是启动
7.启动zookeeper
如果是这样(有个started)说明启动成功
查看zookpper状态
8.如果出现下面图就是启动有问题
出现这种情况就是上面那个配置文件的问题,可以参照上面我解决问题的博客
到这里zookpper就是搭建完成
--------------------------------------------------------------------------------------------------------------------------------
接下来就是写一些boot的小demo,我这里用的是springboot,视频里面用的spring,我感觉boot的配置简单一点,这个可以参照上面我参照的博客,比较详细,这里我只能简单的介绍一下
1.
maven模块写公共接口
2.服务方boot模块
启动类加的
@Component //标注一个类为Spring容器的Bean
@DubboService//service服务层(注入dao)
public class HelloServiceImpl implements HelloService {
@Override
public String sayHello(String name) {
return "Hello " + name;
}
}
启动服务代码,然后在zookpper里面是可以的看见注册的接口的
到zookpper的bin的目录下
执行./zkCli.sh
接着执行ls /
然后执行ls /dubbo就看到了
pom依赖
<!--引入dubbo的依赖-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.8</version>
</dependency>
<!-- 引入zookeeper的依赖 -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.12.0</version>
</dependency>
3.消费方boot模块
@RestController
public class HelloController {
@DubboReference
private HelloService helloService;
@RequestMapping("/hello")
public String hello() {
String hello = helloService.sayHello("world");
System.out.println(helloService.sayHello("liang"));
return hello;
}
}
启动类上要加的
pom:
<!--引入dubbo的依赖-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.8</version>
</dependency>
<!-- 引入zookeeper的依赖 -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.12.0</version>
</dependency>
接下来浏览器访问
到这就完事了