Springboot集成Dubbo系列三:搭建dubbo admin控制台

搭建Zookeeper

0.软件版本

CentOS:CentOS Linux release 7.3.1611 (Core)

Zookeeper:apache-zookeeper-3.6.2

1.下载Zookeeper安装包

到https://zookeeper.apache.org/releases.html下载

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ECp4o5gk-1611548673856)(C:\Users\Thunisoft\AppData\Roaming\Typora\typora-user-images\image-20210125102337513.png)]

点进去有多种下载方式

https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QZq85TrN-1611548673858)(C:\Users\Thunisoft\AppData\Roaming\Typora\typora-user-images\image-20210125102411076.png)]

我选择下到本地,再通过MobaXterm拖到Linux 里,你也可以在Linux系统使用以下命令下载:

wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz

2.解压Zookeeper压缩包

登录linux系统,创建一个目录,将上一步放到linux的tar.gz解压

tar zxvf apache-zookeeper-3.6.2-bin.tar.gz

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SnsVkO0x-1611548673860)(C:\Users\Thunisoft\AppData\Roaming\Typora\typora-user-images\image-20210125102748088.png)]

3.修改配置文件

进入解压文件的conf目录

cd apache-zookeeper-3.6.2-bin/conf

修改文件名,将zoo_sample.cfg改为zoo.cfg

mv zoo_sample.cfg zoo.cfg

修改zoo.cfg内容

vi zoo.cfg

简单配置如下,本地开发可只配一个机器,

tickTime=2000
initLimit=5
syncLimit=2
# 需要配置此路径
dataDir=/tmp/zookeeper
# 配置端口
clientPort=2181
# server.id=host:port:port
# server固定,id标识机器序号,此id需要到dataDir,配置到myid文件中
server.1=127.0.0.1:2888:3888
#server.2=127.0.0.1:2888:3888
#server.3=127.0.0.1:2888:3888

还需要到配置的dataDir路径下,创建文件名为myid,将机器序号写进入,例如根据配置文件,写入1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3rt0mScp-1611548673868)(C:\Users\Thunisoft\AppData\Roaming\Typora\typora-user-images\image-20210125104552452.png)]

4.启动服务端

进入apache-zookeeper-3.6.2-bin/bin目录,启动服务端

sh zkServer.sh start

使用telnet验证,出现下图证明启动成功

telnet ip port

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xLZwntsz-1611548673870)(C:\Users\Thunisoft\AppData\Roaming\Typora\typora-user-images\image-20210125104939990.png)]

启动成功,可以看到,我们开一台机器,模式就是standalone单机

如果要操作客户端,可在bin目录下使用sh zkCli.sh查看

使用 ls /可以看到根目录下节点,我的已经搭好连上dubbo了,如果第一次查看,应该只有zookeeper一个ZNode

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B73Roq1g-1611548673871)(C:\Users\Thunisoft\AppData\Roaming\Typora\typora-user-images\image-20210125105902210.png)]

各模块配置Dubbo

0.版本

已有项目的Springboot版本:2.2.6.RELEASE

Dubbo版本:maven配置是0.2.0,源码版本是2.6.2

1.Maven整合已有或新建项目

将多个项目整合成功一个项目多模块,多模块直接需要互相调用,所以都是平级的,既是生产者也是消费者

2.添加依赖

因为各模块已在pom配置了parent为主项目,所以再主项目的pom添加相关依赖即可

<properties>		
	<curator-framework.version>4.0.1</curator-framework.version>
	<zookeeper.version>3.4.13</zookeeper.version>
	<dubbo.starter.version>0.2.0</dubbo.starter.version>
</properties>

		<dependency>
			<groupId>com.alibaba.boot</groupId>
			<artifactId>dubbo-spring-boot-starter</artifactId>
			<version>${dubbo.starter.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.curator</groupId>
			<artifactId>curator-framework</artifactId>
			<version>${curator-framework.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.zookeeper</groupId>
			<artifactId>zookeeper</artifactId>
			<version>${zookeeper.version}</version>
		</dependency>

3.yml配置

dubbo:
  application:
    name: 应用名
  protocol:
    name: dubbo
# port端口每个项目配成不一样的
    port: 20880
  registry:
    address: zookeeper://zk的IP:2181
  provider:
    timeout: 1000
# 如果多项目互为生产者消费者,此项需设为false,不然启动时会检查生产者是否启动,先启动的消费者就连不上后启动的生产者
  consumer:
    check: false
# 自定义dubbo version,用于区分service版本
dv:
  service:
    version: 1.0.0

4.注解

在启动类添加注解

@EnableDubbo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FJwromwX-1611548673873)(C:\Users\Thunisoft\AppData\Roaming\Typora\typora-user-images\image-20210125111815851.png)]

5.新建公共接口项目

新建一个项目,定义两系统需要交互的接口,我就叫它对外Service吧

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-opfFdGrr-1611548673874)(C:\Users\Thunisoft\AppData\Roaming\Typora\typora-user-images\image-20210125112501558.png)]

接口内容如下,就一个简单的接口

public interface DwService {
    
    
    String hello(String name);
}

6.生产者者实现类

1.此@Service要用dubbo的,version取了yml中的配置

2.实现类继承公共接口,将接口方法实现

import com.alibaba.dubbo.config.annotation.Service;
import com.***.***api.service.DwService;

@Service(version = "${dv.service.version}")
public class ***DwServiceImpl implements DwService {
    
    

    @Override
    public String hello(String name) {
    
    
        return "I'm provider ,hello, " + name;
    }
}

7.消费者调用类

在消费者端实现调用

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.alibaba.dubbo.config.annotation.Reference;
import com.***.***api.service.DwService;

@RestController
public class ***DwController {
    
    

    @Reference(version = "${dv.service.version}")
    private DwService dwService;

    @RequestMapping("/hello/{name}")
    public String zwcxHello(@PathVariable("name") String name) {
    
    
        return dwService.hello(name);
    }
}

8.测试

启动两个项目,在生产者页面,修改浏览器地址栏url

http://127.0.0.1:8888/ffhj/hello/生产者

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Eq1YXxyv-1611548673875)(C:\Users\Thunisoft\AppData\Roaming\Typora\typora-user-images\image-20210125115057187.png)]

搭建Dubbo Admin控制台

1.下载dubbo admin源码

到https://github.com/apache/dubbo-admin下载源码,解压到本地

在这里插入图片描述

2.启动dubbo-admin-server

IDEA打开dubbo-admin-server项目,修改配置文件application.properties的Zookeeper配置地址为自己搭建的地址

在这里插入图片描述

直接启动,端口为8080,但是因为前后端分离,还不能直接访问页面,需要再启动dubbo-admin-ui

在这里插入图片描述

3.启动dubbo-admin-ui

通过DOS启动dubbo-admin-ui

进入dubbo-admin-ui目录,运行

npm install

运行完后,运行

npm run dev

可以看到,前端访问接口为8082

在这里插入图片描述

4.访问dubbo admin

登录页面(就这?九折?),默认账号密码是root/root
在这里插入图片描述

登录后进入首页也没什么内容,点击左侧服务查询,可以看到已注册的服务

在这里插入图片描述

点击列表项的详情,可以看到更多信息

在这里插入图片描述

服务关系中可以看到各系统对接情况,现在只适配了两个系统,可以增加更多系统

颜色代表系统角色

  1. 红色 consumer
  2. 黑色 provider
  3. 墨绿(墨蓝?)色 consumer and provider

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43859729/article/details/113107721
今日推荐