Springboot 整合dubbo、zookeeper

1 篇文章 0 订阅
1 篇文章 0 订阅


在这里插入图片描述
服务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。
服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心

1. dubbo 环境安装

1.1 Windows下zookeeper安装使用

  1. 下载zookeeper 链接
  2. 解压zookeeper
  3. 运行zkServer.cmd ,初次运行会报错,没有zoo.cfg配置文件
  4. 修改zoo.cfg配置文件
  5. 将conf下的zoo_sample.cfg复制一份改名为zoo.cfg即可。
    注意几个重要位置:
    dataDir=./ 临时数据存储的目录(可写相对路径)
    clientPort=2181 zookeeper的端口号
    修改完成后再次启动zookeeper
  6. 使用zkCli.cmd测试
    ls /:列出zookeeper根下保存的所有节点
    create –e /atguigu 123:创建一个atguigu节点,值为123
    get /atguigu:获取/atguigu节点的值

1.2 Windos下安装dubbo-admin管理控制台

  1. 下载dubbo-admin 链接
  2. 进入目录,修改dubbo-admin
  3. 配置修改 src\main\resources\application.properties 指定zookeeper地址
    在这里插入图片描述
  4. 打包dubbo-admin
 mvn clean package -Dmaven.test.skip=true 
  1. 运行dubbo-admin
java -jar dubbo-admin-0.0.1-SNAPSHOT.jar
  1. 在这里插入图片描述

2. springboot的配置

2.1 创建两个modul,分别是provider和consumer,如下(可以先创建Empty项目,再创建两个modul,因为只是简单测试,只需勾选web模块就行)

在这里插入图片描述

2.2 provider的配置

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>2.7.12</version>
</dependency>

<dependency>
    <groupId>com.github.sgroschupf</groupId>
    <artifactId>zkclient</artifactId>
    <version>0.1</version>
</dependency>
<!-- 引入zookeeper -->
<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>

<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.4.14</version>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
    </exclusions>
</dependency>

2.3 创建需要提供服务的包

在这里插入图片描述

2.3.1 TickService接口代码

package com.muluo.service;

/**
 * @author Muluo
 * @create 2022-04-06 16:52
 */
public interface TickService {
    String printInfo();
}

2.3.2 TickServiceImpl实现类代码

package com.muluo.service;

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

/**
 * @author Muluo
 * @create 2022-04-06 16:52
 */
@DubboService
@Component
public class TickServiceImpl implements TickService {

    @Override
    public String printInfo() {
        return "Hello World";
    }
}

2.3.3 启动类加注解

package com.muluo;

import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@EnableDubbo(scanBasePackages = {"com.muluo.service"})
@SpringBootApplication
public class ProviderApplication {

    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class, args);
    }

}

2.4 配置文件

server.port=9090
dubbo.application.name=provider-server
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.scan.base-packages=com.muluo.service
#dubbo.protocol.port=2022

2.5 consumer配置

  1. 导入依赖(与provider导入的依赖一样)
  2. 创建相应的包
    在这里插入图片描述

2.6 配置consumer的配置文件

server.port=9091
#服务的名称
dubbo.application.name=consume-server
#服务注册地址
dubbo.registry.address=zookeeper://127.0.0.1:2181

2.7 创建个测试类

@Component
public class UserService {

    @DubboReference//引用provider提供的服务
    TickService tickService;

    public void info(){
        System.out.println(tickService.printInfo());
    }

}

3 测试过程

3.1 打开zookeeper

在这里插入图片描述

3.2 打开dubbo监控中心

在这里插入图片描述

3.3 启动provider

在这里插入图片描述

3.4 启动consumer

在这里插入图片描述

3.5 测试结果

在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值