Zookeeper+Dubbo+SpringBoot快速搭建(docker,含有dubbo-admin可视化)

基础概念

什么是分布式?

分布式结构就是将一个完整的系统,按照业务功能,拆分成一个个独立的子系统,在分布式结构中,每个子系统就被称为“服务”。这些子系统能够独立运行在web容器中,它们之间通过RPC方式通信。

Zookeeper充当什么角色

服务注册中心,所有的服务都注册到Zookeeper中,之后各个服务之间的通信便可以通过RPC框架,去调用服务注册中心中的服务进行通信

RPC框架Dubbo

Dubbo是一款高性能、轻量级的开源Java RPC框架,他提供了三大核心能力

  1. 面向接口的远程方法调用
  2. 智能容错和负载均衡
  3. 服务自动注册和发现

远程调用流程

在这里插入图片描述
服务提供者(Provide):暴露服务的提供方,服务提供者在启动时,向注册中心注册自己提供的服务
服务消费者(Consumer):调用远程服务的消费方,服务消费者在启动时,向注册中心订阅自己所需要的服务
注册中心(Registry):注册中心返回服务提供者地址列表给消费者
监控中心(Monitor):对于消费者和提供者的监控

操作

1、下载Zookeeper

docker pull zookeeper
docker run -p 2181:2181 --privileged=true --name zookeeper -d zookeeper

2、导入依赖(Zookeeper和Dubbo的)

		<!--Dubbo-->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.3</version>
        </dependency>

        <!--Zookeeper客户端-->
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>

        <!--Zookeeper服务端-->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.5.6</version>
        </dependency>

        <!--Zk服务端依赖-->
        <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>

3、服务提供者

3.1、yml配置

dubbo:
  application:
    name: service-provide # 服务应用名字
  registry:
    address: zookeeper://ip:2181   #注册中心地址(ip为能访问到Zookeeper的ip)
  scan:
    base-packages: com.itcast.dubboservice	# 提供的服务,需要扫描的包

3.2、提供服务

接口类:
注意: 没有接口类或报错,服务消费者需要利用这个接口去调用

package com.itcast.feign;

public interface TestService {
    void test01();
}

Impl实现类:
注意: 该service 导入的包为dubbo的包,不是spring的(用Component代替)

package com.itcast.feign.Impl;

import com.itcast.dubboservice.TestService;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;

@Component
@Service
public class TestServiceImpl implements TestService {

    @Override
    public void test01(){
		System.out.println(11111);
    }
}

4、服务消费者

4.1、yml配置

dubbo:
  application:
    name: service-comsumer # 服务应用名字
  registry:
    address: zookeeper://ip:2181   #注册中心地址(ip为能访问到Zookeeper的ip)
  scan:
    base-packages: com.itcast.dubboservice	# 提供的服务,需要扫描的包

4.2、将服务提供者的接口类复制一份(注意包名保持一致)

package com.itcast.feign;

public interface TestService {
    void test01();
}

4.3、注入调用服务(利用@Reference注解)

注意:包名与服务提供的包名一致

package com.itcast.dubboservice;

import org.springframework.stereotype.Component;
import org.apache.dubbo.config.annotation.Reference;

@Component
public class Test02 {
	
	@Reference
	TestService testService;

    @Override
    public void test02(){
		testService.test01();
    }
}

5、docker下载Dubbo-admin并使用

# 拉取镜像
docker pull chenchuxin/dubbo-admin

# 新建文件夹
mkdir /XXX/dubbo-admin

# 启动容器
docker run -it -d --name dubbo-admin \
-v /XXX/dubbo-admin:/data \				# XXX为新创的文件夹挂载目录
-p 8080:8080 \
-e dubbo.registry.address=zookeeper://ip:2181 \			#此处ip为zookeeper容器ip
chenchuxin/dubbo-admin

服务器ip(或者域名)+端口(8080)即可进入界面
会弹出一个弹窗,输入账号密码即可(账号密码均为root)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要安装dubbo-admin,需要先安装Docker。然后,可以通过以下步骤安装dubbo-admin: 1. 下载dubbo-adminDocker镜像: ``` docker pull apache/dubbo-admin ``` 2. 运行dubbo-admin容器: ``` docker run -d -p 8080:8080 apache/dubbo-admin ``` 3. 访问dubbo-admin的Web界面: 在浏览器中输入http://localhost:8080即可访问dubbo-admin的Web界面。 注意:在运行dubbo-admin容器之前,需要确保已经启动了ZookeeperDubbo服务提供者。 ### 回答2: Docker安装Dubbo-Admin Docker是一种容器化技术,可以在其上运行多个独立的应用,它的一个优势是可以快速部署和升级应用。Dubbo是一种用于分布式应用的高性能RPC框架,Dubbo-AdminDubbo的管理控制台,用于监控Dubbo服务的运行情况。下面将介绍如何在Docker上安装Dubbo-Admin。 一、准备Dubbo-Admin的镜像 首先,下载并编译Dubbo-Admin源代码 git clone git://github.com/apache/incubator-dubbo-ops.git cd incubator-dubbo-ops mvn clean install -Dmaven.test.skip=true 编译成功后,在incubator-dubbo-ops\dubbo-admin\target目录下生成dubbo-admin-x.x.x-SNAPSHOT.jar文件。 然后,使用Docker-File创建Dubbo-Admin的镜像 FROM java:8 MAINTAINER Wu Sheng "wusheng@apache.org" ADD dubbo-admin-x.x.x-SNAPSHOT.jar /dubbo-admin.jar EXPOSE 8080 CMD [ "java", "-jar", "/dubbo-admin.jar", "--server.port=8080", "--dubbo.registry.address=zookeeper://localhost:2181" ] 将上面的x.x.x替换成实际的版本号,保存为Dockerfile。 二、构建Dubbo-Admin的镜像 在Dockerfile的目录下,执行以下命令 docker build -t dubbo-admin . 其中,dubbo-admin是镜像名,"."表示从当前目录加载Dockerfile。 三、启动Dubbo-Admin的容器 运行以下命令启动Dubbo-Admin的容器 docker run -p 8080:8080 --name dubbo-admin --link zookeeper:zk dubbo-admin 其中,8080是Dubbo-Admin的端口号,zookeeperZookeeper的容器名。 四、访问Dubbo-Admin 在浏览器中输入http://localhost:8080,可以看到Dubbo-Admin的控制台界面。 总结: 通过以上步骤,我们可以在Docker上安装并运行Dubbo-Admin,实现对Dubbo服务进行监控和管理。Docker可以大大简化部署和维护Dubbo-Admin的过程,增加了应用的可靠性和安全性。 ### 回答3: Docker是一个应用程序容器化引擎,用于将应用程序打包成一个完整的文件系统,包括代码、运行时、系统工具、库和设置,从而实现跨平台的应用程序开发和运行。Dubbo-adminDubbo分布式服务框架提供的管理控制台,用于提供Dubbo服务的注册、订阅和管理。在Docker中安装Dubbo-admin的过程如下: 1. 在Docker中安装Dubbo-admin需要先安装Dubbo,首先在Docker中安装DubboZookeeper组件。 2. 执行以下命令在Docker中安装Zookeeper: ```bash docker run -d --name zookeeper -p 2181:2181 zookeeper ``` 3. 然后在Docker中安装Dubbo-admin组件,可以从Github上下载Dubbo-admin的源代码:https://github.com/apache/dubbo-admin 。 4. 克隆Dubbo-admin源代码至本地: ```bash git clone https://github.com/apache/dubbo-admin.git ``` 5. 进入Dubbo-admin源码目录,使用maven编译和打包: ```bash cd dubbo-admin mvn clean package -Dmaven.test.skip=true ``` 6. 编译完成后,在target目录下会生成一个dubbo-admin.war文件。 7. 启动Dubbo-admin服务,执行以下命令: ```bash java -jar dubbo-admin.war --server.port=8080 --dubbo.registry.address=zookeeper://127.0.0.1:2181 ``` 8. 最后,在浏览器中输入http://localhost:8080访问Dubbo-admin控制台,即可使用Dubbo-admin管理Dubbo服务。 以上就是在Docker中安装Dubbo-admin的步骤,需要注意,安装之前需要在Docker中先安装Zookeeper组件。安装完成后,可以使用Dubbo-admin方便地管理Dubbo分布式服务框架。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值