Dubbo+ZooKeeper 微服务开发

搭建分布式微服务架构:Zookeeper、Dubbo、Eclipse与Maven实践指南 Maven 插件是一组可以添加到 Maven 构建生命周期中的可执行目标。在企业级开发中,可能会有许多自定义的构建逻辑,此时可以编写自定义插件来满足这些需求。通过自定义插件,可以将重复的构建任务自动化,并且确保所有项目都遵循相同的构建标准。要创建自定义插件,需要实现接口,并使用@goal注解来定义插件目标。 阅读详情

Dubbo+ZooKeeper 微服务开发

1. 准备

  • 相关框架的版本,版本号推荐按下表配置,否则会出现dubbo和zk通信协议报错等各种异常情况
name version 类型
Zookeeper 3.9.2 软件
Dubbo-Admin 20240824 软件
spring-boot 3.3.2 依赖库
spring-cloud 2023.0.3 依赖库
spring-cloud-alibaba 2023.0.1.2 依赖库
dubbo-spring-boot-starter 3.3.0-beta.2 依赖库
cubator-framework 5.7.0 依赖库
cubator-recipes 5.7.0 依赖库
curator-x-discovery-server 5.7.0 依赖库

1.1 Zookeeper搭建

本案例中Zookeeper仅作为服务发现组件使用,此处只部署单机zk

  • 基于Docker部署ZK服务
docker run -itd --name zk_server1 --network zk_net -p 2181:2181 -p 2888:2888 -p 3888:3888 zookeeper

1.2 Dubbo-Admin搭建

Dubbo-Admin是一个基于Zookeeper的服务监控项目,主要用于实时查看微服务的注册状态

  • 在Github上下载dubbo-admin项目

  • 启动dubbo-admin server服务

    • CMD下进入dubbo-admin根目录,执行mvn clean package生成各模块的jar包
    • 打包成功后进入dubbo-admin-distribution/target目录,运行dubbo-admin-x.x.x-SNAPSHOT.jar
  • 启动dubbo-admin-ui服务

    • 执行npm install
    • 执行npm run serve
    • 成功后访问 npm run serve打印的访问地址信息
  • 至此,dubbo-admin启动成功,如下图Dubbo-Admin-UI

1.3 基于Dubbo开发可通信的Order/User微服务

1.3.1 common-interface 公共接口模块开发

Dubbo推荐将RPC调用的接口统一放在一个interface模块以供服务提供者和服务消费者使用

  • common-interface模块 pom配置
	<properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.skymaple</groupId>
            <artifactId>dsd-common</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
  • RPC接口定义
public interface UserService {
    //该接口用于获取用户的发货地址信息,Address是实现了序列化接口的数据实体类
    public List<Address> getUserAddress();
}
1.3.2 User微服务开发(服务提供者)

该服务主要用于被Order服务调用

  • user-service模块 pom配置
	<properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>
    <dependencies>
        <!-- dubbo -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.skymaple</groupId>
            <artifactId>dsd-interface</artifactId>
            <v
构建基于Zookeeper、Dubbo和Spring的微服务架构 Dubbo 支持通过 SPI(Service Provider Interface)机制进行扩展点的自定义。用户可以实现 Dubbo 的接口,或者修改默认的实现,来添加新的功能。// 自定义扩展点的实现示例@Override// 在方法调用前后添加自定义的逻辑同时,Dubbo 还支持插件机制,用户可以使用 @SPI 注解来标记插件接口,并在 dubbo.properties 文件中配置来启用该插件。# dubbo.properties 中配置插件启用。 阅读详情

相关推荐

微服务架构实践:Spring + Dubbo + Zookeeper综合应用

Zookeeper的数据模型类似于一个文件系统的目录树结构。其中,每个节点称为Znode,Znodes是Zookeeper中数据的最小单元。Zookeeper的树状结构是一种分层的命名空间,其中每个节点的路径是由斜线(/)分隔的一系列路径元素。

weixin_35677363的博客 1213

构建微服务架构:SpringBoot、Dubbo与Zookeeper实战

分布式系统在IT行业已经非常普遍,它的核心挑战之一是如何有效地协调不同组件间的工作以保持整个系统的稳定运行。在分布式系统中,组件或服务可能分布在不同的服务器上,且彼此之间需要相互通信和同步状态。Zookeeper正是为了解决这类问题而生的协调服务。Zookeeper提供了一种集中式的服务,它主要负责在分布式环境中维护配置信息、命名空间和同步状态等。通过它,应用程序可以实现高可用性的关键特性,比如Leader选举、配置管理、分布式锁和同步等。

weixin_30700095的博客 500

FOC项目知识点总结三 | 完全搞懂 Clarke 与 Park 变换(附动图,仿真文件以及详细讲解数学推导过程)

本文目的,最终可以完整推算两种变换 Clarke 变换 首先先看我们需要用到的两种坐标系 1. 自然坐标系 abcabcabc 我们知道,通过三相逆变电路,我们可以画出一个自然坐标系 abcabcabc ,即三相电压的坐标系,通入的电流在这三轴坐标系中变化: 将三个矢量相加合并在一起就如下图所展现: 使用三个坐标轴来表示十分的麻烦与不直观,因为其是非正交的,于是乎我们想要将其转化成使用两个正交的坐标轴来表示,于是乎便有了 Clarke变换。 Clarke 变换的作用: 将基于三轴二维的定子静止坐标系的各

Wilson Huang的博客 3万+

【项目实战】Qt6 录制屏幕、录制声音生成MP4、AVI、MA3等(完整源码,可直接编译使用)

本文将详细介绍如何利用Qt6多媒体模块中的QMediaCaptureSession、QMediaRecorder、QScreenCapture、QAudioInput、QMediaFormat等功能,实现对屏幕和声音的录制,并生成常见的媒体格式文件,如MP4、AVI、MA3等。我们将探讨如何利用这些功能来实现灵活的视频和音频参数设置,以满足不同需求下的录制和生成要求。我们将重点讨论如何配置视频和音频参数,包括分辨率、帧率、编解码器选择、音频采样率、声道设置等。

yegu001的博客 4939

从ADC校准到精准测量:避开PY32F030小信号采样的那些坑

本文深入探讨了PY32F030微控制器进行ADC小信号采样时面临的挑战与解决方案。从硬件设计、软件滤波算法到系统级校准策略,详细分析了如何避开常见陷阱,实现精准测量,特别是在25mV以下小信号场景中的应用实践。

ujm567890的博客 759

docker 安装oracle

本文介绍了使用Docker部署Oracle数据库的实践指南。主要内容包括:常用Oracle镜像的阿里云和华为云拉取地址,11g/12c/19c等不同版本的启动命令示例,以及连接数据库的基本信息。实战部分详细演示了Oracle 11g的安装过程,包括镜像拉取、容器启动、密码修改和数据库连接步骤,并通过Sql Developer和命令行两种方式创建用户。最后提到数据持久化的重要性,建议将数据库文件挂载到宿主机目录以防止容器删除导致数据丢失。文章提供了完整的操作命令和截图说明,适合需要快速部署Oracle测试环境

weixin_39766667的博客 373

STM32控制舵机SG-5010转动,HAL库

首先设置时钟为72Mhz,预分频系数为72-1,自动重装载计数器的值为5000-1,这样的话就可以得到一个5ms的脉冲宽度,5000的计数值可以让舵机的旋转角度变得更加易控且相对精准,计算旋转角度的时候也可以更加精确。所以我们5ms脉宽,period是5000脉宽-------------角度----------pulse0.5ms-------------0度----------500;1.0ms------------45度---------1000;

qq_73783264的博客 1293

CATIA二次开发CAA安装

安装资料在网盘里 Win7 64位 以下软件均已管理员身份运行: 1.安装vs2008->自定义安装->选择要安装的功能->Visual C+±>x64编译器和工具 1.2安装SP1 2.安装CATIA V5 R21->win7_XP->CATIA.P3.V5R21.Win64->setup.exe 2.1安装目录改为D盘 2.2环境目录位置默认 3.安装...

qq_39311458的博客 4632

《Kubernetes部署篇:基于x86_64+aarch64架构CPU+containerd一键离线部署容器版K8S1.33.3高可用集群》

《Kubernetes部署篇:基于x86_64+aarch64架构CPU+containerd一键离线部署容器版K8S1.33.3高可用集群》

东城绝神 1368

手把手入门YOLO到改进优化教程 | 【P5进阶篇】YOLOv8损失函数改进实战-损失函数IoU之KLD Loss

在本节,将从 KLD Loss(Kullback–Leibler Divergence Loss)的理论到实战代码实现,带你把 KLD Loss融合进 YOLOv8 的训练框架中。并通过训练日志与实验结果,验证 KLD Loss 在实际工程中的优势。

嵌入式阿齐Archie 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: 基于Spring Cloud Alibaba快速构建分布式系统基础框架 Step 1
MapleWalker974
博客等级 码龄2年 93粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值