SpringBoot中dubbo+zookeeper实现分布式开发的应用详解

总体实现思路是启动一个生产者项目注册, 将所含服务注册到zookeeper的注册中心, 然后在启动一个消费者项目,将所需服务向zookeeper注册中心进行订阅, 等待注册中心的通知

注册中心基于负载均衡算法给消费者匹配到合适的生产者主机,然后通知消费者可以使用

实现生产者

导入zookeeper依赖包

<!-- Dubbo Spring Boot Starter -->
    <dependency>
      <groupId>org.apache.dubbo</groupId>
      <artifactId>dubbo-spring-boot-starter</artifactId>
      <version>2.7.3</version>
    </dependency>
    <!--zookeeper的包-->
    <!-- https://mvnrepository.com/artifact/com.github.sgroschupf/zkclient -->
    <dependency>
      <groupId>com.github.sgroschupf</groupId>
      <artifactId>zkclient</artifactId>
      <version>0.1</version>
    </dependency>
    <!-- 引入zookeeper -->
    <!--【新版的坑】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>
      <!--排除这个slf4j-log4j12-->
      <exclusions>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

配置服务名字, 注册中心地址, 扫描被注册的包

server.port=8081
#当前应用名字
dubbo.application.name=provider-server
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
#扫描指定包下服务
dubbo.scan.base-packages=com.demo.service

实现一个接口,在接口中完成需求

public interface Translate {

  String translate(String str);
}
public interface Translate {

  String translate(String str);
}

实现一个消费者

导入依赖, 和生产者的依赖是相同的

配置服务名字,注册中心地址

server.port=8082
# 配置zookeeper
# 配置服务名字
dubbo.application.name=consumer.server
# 配置注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181

本来正常步骤是需要将服务提供者的接口打包,然后用pom文件导入,我们这里使用简单的方式,直接将服务的接口拿过来,路径必须保证正确,即和服务提供者相同

现获取翻译服务

package com.demo.service;

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

@Service //使用Spring的Service添加组件
public class Translation {

  @Reference //远程引用指定的服务,他会按照全类名进行匹配,看谁给注册中心注册了这个全类名
  private Translate translate;

  public String getTranslation(String str) {
    return translate.translate(str);
  }

}

实现controller

@RestController
public class TranslateController {

  @Autowired
  Translation translation;

  @RequestMapping("/tran/{str}")
  public String tran(@PathVariable("str")String str) {
    return translation.getTranslation(str);
  }
}

测试

首先启动zookeeper服务器和dubbo进入到监控页面中

切记不要关闭服务器和dubbo开启生产者这个springboot项目

上图显示就是生产者注册成功, 我们可以点击ip查看详情

启动消费者这个springboot项目

访问地址, 但是要注意我们消费者的tomcat启动端口已经换成8082

翻译成功

到此这篇关于SpringBoot中dubbo+zookeeper实现分布式开发的应用详解的文章就介绍到这了,更多相关SpringBoot dubbo zookeeper分布式内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot系列教程之dubbo和Zookeeper集成方法

    今日学习新的内容:dubbo   dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,一款高性能.轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现. zookeeper   zooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式同步.组服务等. SpringBoot整合dubbo和Zookeeper 1.了解Dubbo基本

  • SpringBoot整合Dubbo zookeeper过程解析

    这篇文章主要介绍了SpringBoot整合Dubbo zookeeper过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 docker pull zookeeper docker run --name zk01 -p 2181:2181 --restart always -d 2e30cac00aca 表明zookeeper已成功启动 Zookeeper和Dubbo• ZooKeeperZooKeeper 是一个分布式的,开放源码的分布式

  • 2020最新IDEA SpringBoot整合Dubbo的实现(zookeeper版)

    首先,要在电脑上安装配置好zookeeper哦~ 这是我云服务器上的zookeeper状态 接下来,开始整合 1. 准备一个dubbo-api的SpringBoot项目 用来存储Entity类和Server接口的项目,配置文件无须改动. entity – User // Lombok注解 相当于Setter Getter toString() @Data public class User implements Serializable { // 序列化很重要!!! private static

  • Springboot 整合 Dubbo/ZooKeeper 实现 SOA 案例解析

    一.为啥整合 Dubbo 实现 SOA Dubbo 不单单只是高性能的 RPC 调用框架,更是 SOA 服务治理的一种方案. 核心: 远程通信,向本地调用一样调用远程方法. 集群容错 服务自动发现和注册,可平滑添加或者删除服务提供者. 我们常常使用 Springboot 暴露 HTTP 服务,并走 JSON 模式.但慢慢量大了,一种 SOA 的治理方案.这样可以暴露出 Dubbo 服务接口,提供给 Dubbo 消费者进行 RPC 调用.下面我们详解下如何集成 Dubbo. 二.运行 spring

  • springboot使用dubbo和zookeeper代码实例

    这篇文章主要介绍了springboot使用dubbo和zookeeper代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建服务接口模块 接口工程只提供接口,不提供实现,在后面的提供者和消费者中使用 在使用接口的模块中只需要写具体实现类,避免了在每个模块中重复编写接口 在接口中引入依赖包 <dependency> <groupId>org.projectlombok</groupId> <artifact

  • SpringBoot中dubbo+zookeeper实现分布式开发的应用详解

    总体实现思路是启动一个生产者项目注册, 将所含服务注册到zookeeper的注册中心, 然后在启动一个消费者项目,将所需服务向zookeeper注册中心进行订阅, 等待注册中心的通知 注册中心基于负载均衡算法给消费者匹配到合适的生产者主机,然后通知消费者可以使用 实现生产者 导入zookeeper依赖包 <!-- Dubbo Spring Boot Starter --> <dependency> <groupId>org.apache.dubbo</groupI

  • Dubbo+zookeeper搭配分布式服务的过程详解

    目录 分布式架构: Dubbo 是什么 Dubbo: 思想: 依赖: 分布式架构: 1.当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,前端应用能更快速的响应多变的市场需求. 2.此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键. Dubbo 是什么 一款分布式服务框架 高性能和透明化的RPC远程服务调用方案 SOA服务治理方案 Dubbo: 作为分布式架构比较后的框架,同时也是比较容易入手的框架,适合作为分布式的入手框架,下

  • SpringBoot+Dubbo+Zookeeper实现简单分布式开发的应用详解

    开始接触分布式概念,学习之前要准备搭建Dubbo和Zookeeper环境的简单搭建. Window下安装Zookeeper和Dubbo-admin 1.Apache官网下载Zookeeper 点击官网地址下载最新版 下载完成后,打开apache-zookeeper-3.6.2-bin\bin下zkServer.cmd,正常第一次都会闪退的,因为没有配置好zoo.cfg配置文件. 将conf目录下的zoo_sample.cfg文件,复制一份,重命名为zoo.cfg 在apache-zookeepe

  • SpingBoot+Dubbo+Zookeeper实现简单分布式开发的应用详解

    开始接触分布式概念,学习之前要准备搭建Dubbo和Zookeeper环境的简单搭建. Window下安装Zookeeper和Dubbo-admin 1.Apache官网下载Zookeeper 点击官网地址下载最新版 下载完成后,打开apache-zookeeper-3.6.2-bin\bin下zkServer.cmd,正常第一次都会闪退的,因为没有配置好zoo.cfg配置文件. 将conf目录下的zoo_sample.cfg文件,复制一份,重命名为zoo.cfg 在apache-zookeepe

  • SpringBoot中如何统一接口返回与全局异常处理详解

    目录 背景 统一接口返回 定义API返回码枚举类 定义正常响应的API统一返回体 定义异常响应的API统一返回体 编写包装返回结果的自定义注解 定义返回结果拦截器 WebMvc配置类拦截器注册者添加返回结果拦截器 编写响应体处理器 接口调用 测试结果 全局异常处理 编写自定义异常基类 编写自定义业务异常类 定义全局异常处理类 接口调用 测试结果 总结 背景 在分布式.微服务盛行的今天,绝大部分项目都采用的微服务框架,前后端分离方式.前端和后端进行交互,前端按照约定请求URL路径,并传入相关参数,

  • SpringBoot中web模版数据渲染展示的案例详解

    在第一节我们演示通过接口返回数据,数据没有渲染展示在页面上 .在这里我们演示一下从后台返回数据渲 染到前端页面的项目案例. 模板引擎 SpringBoot是通过模版引擎进行页面结果渲染的,官方提供预设配置的模版引擎主要有 Thymeleaf FreeMarker Velocity Groovy Mustache 我们在这里演示使用Thymeleaf和FreeMarker模板引擎. Thymeleaf Thymeleaf是适用于 Web 和独立环境的现代服务器端 Java 模板引擎. Thymel

  • Springboot中整合knife4j接口文档的过程详解

    目录 什么是knife4j 界面欣赏 主页 接口文档 调试界面 参数实体 整合 knife4j 引入 maven 依赖 knife4j 配置文件 配置API接口 knife4j 常用特性 全局参数 离线文档 在项目开发过程中,web项目的前后端分离开发,APP开发,需要由前端后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发. 什么是knife4j 简单说knife4j就swagger的升级版API文档的一个框架,但是用起来比swagger方便多了,UI更加丰富. 界面欣赏

  • 如何在SpringBoot中使用logback优化异常堆栈的输出详解

    目录 一.背景 二.需求 三.使用的技术 四.技术实现 1.引入依赖 2.代码实现 3.使用 ShortenedThrowableConverter 来优化异常堆栈 4.查看运行结果 五.完整代码 六.参考文档 总结 一.背景 在我们在编写程序的过程中,无法保证自己的代码不抛出异常.当我们抛出异常的时候,通常会将整个异常堆栈的信息使用日志记录下来.通常一整个异常堆栈的信息是比较多的,而且存在一些没用的信息.那么我们如何优化一些异常堆栈的信息打印,过滤掉不必要的信息呢? 二.需求 1.现有的异常堆

  • springBoot+dubbo+zookeeper实现分布式开发应用的项目实践

    目录 环境搭建 1.我们首先做好服务端 2.启动服务端 3.我们再来做客户端 4.总结 环境搭建 项目结构图: 1.我们首先做好服务端 pom.xml <dependencies> <!--导入依赖:Dubbo + zookeeper--> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifac

随机推荐