使用Dubbo分布式框架,结合SpringBoot框架+Zookeeper,实现生产者消费者的maven父子级结构项目。

IDEA搭建springBoot+Dubbo+zookeeper+Mybatis微服务框架 IDEA搭建springBoot+Dubbo+zookeeper+Mybatis微服务框架 文章参考地址:https://www.cnblogs.com/gaopengfirst/ 先准备zookeeper。下载解压后进入bin目录点击zkServer.cmd启动。这里不多说了,百度一大堆。 新建一个Maven项目 下面是父工程的pom.xml <?xml version="1.0" en... 阅读详情

1.首先创建maven项目,删除src文件夹

2.pom.xml文件中加入标签,声明打包类型,管理项目依赖关系,不作为项目使用

<packaging>pom</packaging>

3.创建dubbo生产者,选择Spring Init...

选择你要的服务,我选择自己的MySql数据库

4.shop_my项目pom.xml文件引入依赖关系,父项目和子项目产生关系

    <modules>
        <module>dubbo_provider</module>
    </modules>

5.provider项目pom.xml引入核心jar包

        <!--zookeeper 包-->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>
        <!--dubbo 和 springboot 整合包-->
        <dependency>
            <groupId>com.alibaba.spring.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

6.provider创建包结构,生产者不需要controller层,实体Bean需要序列化,并且@Service注意导阿里巴巴的包

7.service层写一个根据id查询信息的方法连接数据库创建mapper.xml写入Sql查询


    /**
     * 根据Id查询图书信息
     * @param id
     * @return
     */
    BookBean queryBookById(Integer id);

serviceImpl层

package com.jk.service;

import com.alibaba.dubbo.config.annotation.Service;
import com.jk.mapper.BookMapper;
import com.jk.model.BookBean;
import org.springframework.beans.factory.annotation.Autowired;


@Service(interfaceClass = BookService.class)  //导alibaba的包,对外开放dubbo接口
@Component //替代原有service注解 注入Service bean 防止与dubbo的@Service注解冲突
public class BookServiceImpl implements BookService{
    @Autowired
    private BookMapper bookMapper;

    @Override
    public BookBean queryBookById(Integer id) {
        return bookMapper.queryBookById(id);
    }
}

mapper层

    BookBean queryBookById(Integer id);

xml sql:

     <!--根据id查询图书信息-->
    <select id="queryBookById" parameterType="int" resultType="com.jk.model.BookBean">
        select id,name,anthor,context from a_book where id = #{value}
    </select>

8.application.properties配置需要配置

 #配置dubbo服务提供者
  #服务名称 服务名称不能重复 用来标明不同的业务模块
  spring.dubbo.application.name=bookprovider
  #是否为服务提供端
  spring.dubbo.server=true
  #注册中心地址  zookeeper默认端口号
  spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
  #dubbo 协议 dubbo的使用协议 默认 dubbo协议
  spring.dubbo.protocol.name=dubbo
  #dubbo接口端口号 默认20880 同一台电脑端口号不能重复
  spring.dubbo.protocol.port=20880
  # server.servlet.application-display-name=
  spring.datasource.driverClassName=com.mysql.jdbc.Driver
  spring.datasource.url=jdbc:mysql://localhost:3306/math?serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf-8
  spring.datasource.username=root
  spring.datasource.password=root
  #设置页面编码为UTF-8
  spring.thymeleaf.encoding=UTF-8
  #设置转换格式为HTML格式
  spring.thymeleaf.servlet.content-type=text/html
  mybatis.mapper-locations=classpath:mapper/*.xml

9.DubboProviderApplication配置类需要启动dubbo注解

@SpringBootApplication
@EnableDubboConfiguration//启用dubbo注解
@MapperScan("com.jk.mapper")  //扫描mapper层
public class DubboProviderApplication {

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

}

10.启动zookeeper

11.启动项目,启动成功如下图

方法名已经打印出来了

12.在shop_my下新建消费者项目,dubbo_consumer

13.同样pom.xml文件引入核心jar包

<!--zookeeper 包-->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>
        <!--dubbo 和 springboot 整合包-->
        <dependency>
            <groupId>com.alibaba.spring.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
    </dependencies>

14.shop_my项目下pom.xml文件下加入依赖

    <modules>
        <module>dubbo_provider</module>
        <module>dubbo_consumer</module>
    </modules>

15.在consumer项目下的application配置类配置

server.port=8082
#配置dubbo服务提供者
#服务名称 服务名称不能重复 用来标明不同的业务模块
spring.dubbo.application.name=bookconsumer
#注册中心地址  zookeeper默认端口号
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#消费者启动检测生产者是否已启动,当值为true时才会检测,默认为true
spring.dubbo.consumer.check=false
#roundrobin轮询机制
#random #随机机制
#leastactive #最少活跃调用数机制  dubbo负载均衡策略
spring.dubbo.reference.loadbalance=roundrobin

16.创建包结构

17.与生产者不同的是,多一个controller层来调用接口

controller层,注意注入注解!阿里巴巴包

package com.jk.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.jk.model.BookBean;
import com.jk.service.BookService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("book")
public class BookController {
    @Reference
    private BookService bookService;


    @RequestMapping("queryBookById")
    @ResponseBody
    public BookBean queryBookById(Integer id){
        return bookService.queryBookById(id);
    }

}

17.实体bean和生产者的实体bean一致,注意都需要序列化!

18.创建service接口与生产者一致,注意!没有实现类

19.同样的在消费者项目的DubboConsumerApplication配置类同样加入@EnableDubboConfiguration//启用dubbo注解

@SpringBootApplication
@EnableDubboConfiguration//启用dubbo注解
public class DubboConsumerApplication {

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

}

完成接口调用!

20.启动消费者项目,浏览器访问方法

访问成功!

我的Mysql数据库

Dubbo分布式框架,结合SpringBoot框架,实现生产者消费者的maven父子级结构项目搭建完成

Springboot 最简单的整合Dubbo框架实战案例 分布式框架,目前比较热门的是springcloud和dubbo,虽然本人也是用cloud比较多,但是避免不了,有的项目就是需要用dubbo。 那么现在就给大家整一篇,简单清晰的spirngboot从零整合dubbo。 先看看这个简单的整合完毕后,项目结构是这样的: 里面包含的有,公共model模块、公共interface模块; 消费者consumer1服务、消费者consumer2... 阅读详情

相关推荐

maven+springmvc+dubbo+zookeeper的生产消费者模型。

这是一个maven+springmvc+dubbo+zookeeper的模型包括生产者、消费者、接口等。其实现可参考https://blog.youkuaiyun.com/mijichui2153/article/details/81102277。

springBoot zookeeper api 节点操作

springBoot集成zookeeperApi 导入依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.8.RELEASE</version> <relativePa

qq_46859110的博客 531

RM机器人麦轮底盘实战:从零搭建到PID调参全记录(附避坑指南)

本文详细记录了RM机器人麦轮底盘从零搭建到PID调参的全过程,涵盖硬件组装、开发环境搭建、底盘解算和PID调参等关键步骤,并附有实用的避坑指南。特别针对麦轮控制、底盘解算和电机调试等核心问题提供了专业解决方案,帮助开发者快速提升机器人性能。

bush的博客 369

父子工程搭建

1.创建父工程,不使用archetype 2.添加pom.xml依赖,在新建每个父子程时,给每个父工程或者子工程,执行clean,还有install 生成jar pom.xml <!-- 定义依赖的版本号 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.sou

weixin_46405661的博客 211

Python XML 转 JSON,XML 转字典

今天我们将学习如何在 Python 中将 XML 转换为 JSON 和 XML 转换为字典。我们可以使用 Python 的xmltodict模块来读取 XML 文件并将其转换为字典或 JSON 数据。我们还可以在大型 XML 文件上进行流式处理,并将其转换为字典。在进入编码部分之前,让我们首先了解为什么需要进行 XML 转换。

rubys_的专栏 2501

海康威视Web3.0插件实战:快速部署摄像头实时预览方案

本文详细介绍了海康威视Web3.0插件的实战应用,包括快速部署摄像头实时预览方案的完整流程。从插件下载安装到摄像头连接配置,再到浏览器兼容性解决方案,帮助开发者和IT人员高效实现网页端监控功能。特别针对预览功能调优和多摄像头管理等高级应用提供了实用技巧。

weixin_29266679的博客 344

SpringBoot之Dubbo和Zookeeper

Dubbo和Zookeeper Window下安装zookeeper 注册中心 下载zookeeper,官网地址:https://zookeeper.apache.org/ 我选择下载的是apache-zookeeper-3.5.9-bin.tar.gz 步骤: 打开下载的文件(管理员模式打开),运行/bin/zkServer.cmd,初次运行时可能会报错,因为没有zoo.cfg 也有可能遇到闪退的问题! 闪退的解决方案:右键编辑zkServer.cmd文件,在末尾添加pauser(

a10534126的博客 906

【Clickhouse从入门到精通】第60篇:ClickHouse生态总结与未来展望

ClickHouse系列收官总结 本文作为《ClickHouse从入门到精通》系列的第60篇收官之作,系统回顾了整个系列的知识体系。文章从基础概念到高级应用,全面梳理了ClickHouse的核心技术: 知识体系:完整回顾了60篇文章的知识图谱,包括列式存储原理、MergeTree引擎家族、分布式架构等核心内容 生态工具:详细盘点了ClickHouse的企业版工具、运维监控、数据集成和可视化方案 版本演进:分析了从21.x到24.x的主要版本特性升级 未来趋势:展望了向量化引擎、湖仓一体、AI集成等发展方向

xyghehehehe的专栏 438

解决dubbo生产者提供的服务地址显示为[内网IP:20880],导致消费者在使用外网IP连接dubbo服务失败

前置条件:Cent OS系统 查询了许多资料博客,当下方法最简洁实用 解决前: 服务IP显示为内网IP,原因:dubbo消费者向zookeeper注册中心寻找服务时,注册中心默认将生产者所在服务器内网IP发送给消费者,而生产者内网IP地址对于消费者不可达,所以消费者找不到生产者提供的dubbo服务,报出com.alibaba.dubbo.remoting.RemotingExceptio...

qq_39683476的博客 5852

Labview 机器视觉(4)之 图像处理进阶 - 动态ROI与批量保存

本文深入探讨了LabVIEW机器视觉中动态ROI与批量保存两大进阶技术。动态ROI通过模式匹配或粒子分析实现检测区域的自动追踪,解决了产品位置变化带来的挑战。同时,文章详细介绍了如何设计高效的文件命名规则与异步保存机制,以实现海量图像数据的批量保存与管理,从而构建稳定、高效的工业自动化检测系统。

weixin_29234423的博客 218

麒麟服务器操作系统QT系列软件工具手册

对Qt提供的开发工具进行了一系列的优化之后,在日常的修复bug和维护框架的过程中,桌面研发对Qt的基础软件库也进行了部分优化工作,包括qtbase、qtwayland、qtscript、qt4-x11等Qt基础组件,涉及的Qt框架版本主要涉及到5.9和5.12两个版本。qt 的翻译,是由 ts 文件生成 qm 文件然后进行翻译,国产操作系统上qt 的翻译是由单独的qttranslations包中进行维护,其次部分汉化问题也是qt组件维护工作的一部分,qt的翻译机制如图4-7所示。

太极淘的博客 542

基于SpringBoot+Dubbo+Zookeeper+Maven+IDEA搭建分布式项目实战

一、名词解释(来源百度百科): Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一...

群鸿 6138

【25届数字IC秋招总结】面试经验10——紫光同芯

25届数字ic面试记录——紫光同芯

lalala0635的博客 862

springboot + dubbo + zookeeper 注册中心 + maven多模块项目框架搭建具体操作

1. 项目搭建前了解: Maven多模块项目可以解决项目中出现多个相同的jar包和service接口以及实体类对象的问题,可以将相同的提取成一个项目来维护管理,然后其他需要用到则只要引用jar包即可使用。 2. 将springboot + dubbo + zookeeper项目进行拆分: 生产者项目(springboot项目,后台service实现类、mapper层、) 消费者项目(spring...

weixin_43813267的博客 1050

一.镜头知识之焦点,焦距,有效焦距,前焦距,后焦距

由光学系统中镜片的最后一面到像面的距离。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 5572

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

(一) springboot+zookeeper+dubbo搭建简单的分布式框架

(1)简介:       根据springboot快速的web项目搭建方式,用zookeeper+dubbo快速搭建分布式框架。  (2)开发环境        zookeeper-3.4.13直接在官网下载,        dubbo2.6.2直接maven配置   (3) 具体的操作     3.1 下载zookeeper后,zoo_sample.cfg复制一份改名为zoo.cfg...

u010688011的博客 8966

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Spring Boot + Dubbo + Zookeeper 分布式架构

Spring Boot 整合 Dubbo和ZookeeperSpring Boot 整合 Dubbo和Zookeeper 环境介绍 Zookeeper 安装 启动 Dubbo admin 搭建 创建主maven项目 创建子spring boot项目环境介绍 zookeeper 安装 dubbo-admin 查看管理注册中心服务提供者和消费者 Zookeeper 安装http://zookeeper.

加了白糖的老干妈 2万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

zookeeper+dubbo+springboot实现高可用服务治理(集群版)

一.搭建zookeeper集群(必须大于3台服务器,小于三台不能启动) 1.下载安装zookeeper wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz #下载地址 2. 修改配置文件 /home/dubbo/zoo/zookeeper-3.4.13 #...

无与伦比的博客 4057

springboot第七章 结合Dubbo

实现Dubbo分布式框架,需要公共接口maven项目,需要服务提供者springboot项目,需要服务消费者springboot项目。因为公共接口只有数据类和接口,后期提供者和消费者需要根据maven唯一坐标来导入公共接口项目的jar包,因此公共接口项目是java-maven项目。服务提供者需要配置 暴露服务,声明服务,故使用springboot+Dubbo 服务消费者需要配置使用服务,声明服务,故使用springboot+Dubbo。

Wolf__king的博客 771

Intellij IDEA 2018.2 搭建springboot+dubbo+zookeeper简单的分布式框架环境(一)

一、首先确定IDE Version和Runtime Environment: 运行环境:JDK 8,Maven 3.0+ 技术栈:SpringBoot 2.0+、Dubbo 2.6+、ZooKeeper 3.3+ 其中SpringBoot ,Dubbo 只要在Maven中配置就可以自动下载jar了,ZooKeeper 需要独立加载软件并运行才可以。 二、分布式架构Dubbo : 分布式...

分享我的点点滴滴,在成长路上与你同行! 566

Springboot整合Dubbo+Zookeeper

一:什么是Dubbo Dubbo是一款高性能、轻量级的开源Java RPC框架, 它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 即实现了多个独立应用之间的解耦且可以远程调用对方的服务 二、为什么需要 dubbo 很多时候,因为项目需要用到分布式架构,所以就引用了dubbo这项技术,但是至于为什么我们需要用到这个技术 可能自身并不是很了解,但是,其实了解...

未的博客 477

SpringBoot+Dubbo+Zookeeper搭建分布式项目实战,附项目源码已经zookeeper下载地址

项目搭建步骤: 1、安装本地Zookeeper注册中心,下载地址:Apache Downloads 官网下载贼慢 这也有 zookeeper-3.8-Java文档类资源-优快云下载 下载完成后解压,然后打开配置拷贝一份zoo_sample.cfg,修改名称为zoo.cfg,打开zoo_.cfg,修改数据保存路径,如下图修改为本地可用路径,没有就创建对应的文件夹目录: 开启zookeeper服务,如下图: 2、打开IDEA开发工具,创建一个基于maven的SpringBoot...

lililidahaoren的博客 335

SpringBoot整合Dubbo和Zookeeper

以下纯属个人理解,比较俗气不专业大佬勿喷 一、分布式 1、什么是分布式 分布式就是一个项目有多个功能模块,把这些功能模块拆分成若干个子项目,并分别部署在多台服务器上的方式叫做分布式 2、分布式和集群的区别 集群是同一个功能模块部署在多台服务器上,主要是为了实现负载均衡,缓解服务器压力 分布式就是多个不同的功能模块分别部署在...

大造梦家的博客 359

dubbo使用springboot maven多模块项目框架 基于zookeeper注册中心

zookeeper简单理解为分布式文件系统,主要是分布式节点系统(znode),类似电脑上的多层文件夹系统,znode可以存储数据,可以通过监听节点的变化来实现分布式应用,分布式框架,分布式锁,等等 安装完成zookeeper后,建立maven 项目完成dubbo分布式微服务框架 项目:maven项目,两个模块,一个provider提供服务(注意dubbo的@Service使用),一个cons...

老专家的博客 1万+

springboot整合dubbo+zookeeper最新详细

引入 最近和小伙伴做一个比赛,处于开发阶段,因为涉及的服务比较多,且服务需要分开部署在不同的服务器上,讨论之后,打算采用分布式来做,之前学习springboot的时候,部分章节涉及到了springboot集成dubbo,不过demo的学习始终不及实战过程复杂,真正开始去学、去用,才会学到真正有用的东西,当然踩坑过程可想而知。笔者在这里就记录一下自己完全从零开始搭建分布式环境,以及用springboot集成dubbo+zookeeper(配置中心、注册中心、元数据中心)的详细过程。 技术栈 开发工具:I

qq13321123的博客 771

dubbo+zookeeper实现分布式项目,这一篇就够了

目录 项目环境 springboot项目搭建 Linux环境准备 测试 jdk:1.8 springboot:2.3.7 zookeeper:3.6 首先创建一个maven项目,此项目存放接口以及实体类 这里按需导入 项目结构如下,完成后打成jar包放入本地仓库等待调用 ...

weixin_45948218的博客 387
上一篇: 小记Dubbo分布式框架。
下一篇: Maven多模块项目讲解,以及在idea上如何使用SpringBoot框架搭建
听风动
博客等级 码龄8年 63粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听风动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值