Spring Boot 整合Dubbo + Zookeeper 实现分布式 消费者与服务者的业务调用

本文详细介绍了ApacheDubbo的核心功能,如高性能RPC调用、服务注册与发现、Zookeeper的角色及其在搭建Dubbo管理控制台中的应用,以及如何在SpringBoot项目中整合Dubbo和Zookeeper。
摘要由CSDN通过智能技术生成

Apache Dubbo |ˈdʌbəʊ| 提供了六大核心能力:面向接口代理的高性能RPC调用,智能容错和负载均衡,服务自动注册和发现,高度可扩展能力,运行期流量调度,可视化的服务治理与运维。

在这里插入图片描述

Dubbo的注册中心

Dubbo的注册中心有很多种,但官方推荐使用Zookeeper,其余有Redis、Multicast、Simple注册中心。

Dubbo网络通信框架

Dubbo 默认使用 Netty 框架,也是推荐的选择,另外内容还集成有Mina、Grizzly。

四、Zookeeper是什么?

==================================================================================

顾名思义 zookeeper 就是动物园管理员,他是用来管 hadoop(大象)、Hive(蜜蜂)、pig(小 猪)的管理员, Apache Hbase 和 Apache Solr 的分布式集群都用到了 zookeeper;Zookeeper: 是一个分布式的、开源的程序协调服务,是 hadoop 项目下的一个子项目。他提供的主要功 能包括:配置管理、名字服务、分布式锁、集群管理。

五、搭建Zookeeper注册中心

====================================================================================

♻️安装Zookeeper


访问Zookeeper官网下载

下载Zookeeper

在这里插入图片描述

下载 压缩包格式的zookeeper

将下载的文件解压缩

在这里插入图片描述

✅启动Zookeeper


从cmd窗口进入Zookeeper文件夹下的bin目录,执行zkServer.cmd启动

在这里插入图片描述

如果报错提示 zoo.cfg缺失,那就进入zookeeper的conf文件夹下将zoo_sample.cfg复制一份改名为zoo.cfg即可

再次重启则成功

六、搭建Dubbo管理控制台

=================================================================================

✒️克隆dubbo-admin 项目


从 github打开项目 dubbo-admin

dubbo-admin

从GitHub爬取项目教程如下:

使用 Git爬取 GitEE、GitLab、GitHub项目的教程

✅运行dubbo-admin


dubbo-admin采用前后端分离的形式管理项目

爬取文件如下

在这里插入图片描述

♨️部署dubbo-admin-server

运行后端项目必须启动 zookeeper,否则启动失败

cmd窗口进入dubbo-admin-server,执行以下命令

mvn clean package

打包部署项目

在这里等大概5分钟左右即可部署完成

部署完成后生成target目录

在这里插入图片描述

cmd窗口进入target目录执行以下命令

java -jar dubbo-admin-server-0.4.0.jar

后端项目运行成功~

♨️部署dubbo-admin-ui

在这里需要有 node 环境

教程如下

GitHub爬取项目并部署前端工程

cmd窗口进入dubbo-admin-ui,执行以下命令下载依赖

npm install

下载完毕后,执行启动命令

npm run dev

启动成功

在这里插入图片描述

Ⓜ️进入Dubbo管理控制台


访问前端生成的本地地址

在这里插入图片描述

默认用户名密码均为root

输入即可登录成功

在这里插入图片描述

✈️踩坑记录


后端的地址必须和前端工程vue.config.js下的target路径一样,否则404!

在这里插入图片描述

七、SpringBoot 整合Dubbo + Zookeeper

===================================================================================================

✉️项目简介


基于SpringBoot项目整合Dubbo + Zookeeper 实现消费者消费服务提供者的服务

消费者为订单模块,传入用户id去查询用户模块的用户信息,实现远程RPC调用服务,分布式调用,而不是单体架构

服务提供者为用户模块,返回用户信息

♻️项目结构图


在这里插入图片描述

  1. 父工程:dubbo-boot

  2. 公共API(接口及实体类):GmallPublicInterafce

  3. 服务提供者:UserServiceProvider

  4. 服务消费者:OrderServiceConsumer

⏰效果图


在这里插入图片描述

✴️核心源码


🚃父级工程 dubbo-boot

pom.xml

<?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”>

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.5.5

org.example

dubbo-boot

pom

1.0-SNAPSHOT

GmallPublicInterface

UserServiceProvider

OrderServiceConsumer

<maven.compiler.source>8</maven.compiler.source>

<maven.compiler.target>8</maven.compiler.target>

🚃公共API模块 GmallPublicInterface

pom.xml

<?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”>

dubbo-boot

org.example

1.0-SNAPSHOT

4.0.0

GmallPublicInterface

<maven.compiler.source>8</maven.compiler.source>

<maven.compiler.target>8</maven.compiler.target>

com.alibaba

dubbo

2.6.2

org.apache.curator

curator-framework

2.12.0

com.alibaba.boot

dubbo-spring-boot-starter

0.2.0

还有一些核心的接口及实体类

🚃服务提供者模块 UserServiceProvider

pom.xml

<?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”>

dubbo-boot

org.example

1.0-SNAPSHOT

4.0.0

UserServiceProvider

<maven.compiler.source>8</maven.compiler.source>

<maven.compiler.target>8</maven.compiler.target>

org.example

GmallPublicInterface

1.0-SNAPSHOT

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-maven-plugin

src/main/java

**/*.xml

false

src/main/resources

libs/

libs

**/*.jar

application.yml

配置端口号

server:

port: 8084

配置Dubbo

dubbo:

application:

name: UserServiceProvider

registry:

address: zookeeper://127.0.0.1:2181

protocol:

name: dubbo

port: 20881

monitor:

protocol: registry

consumer:

timeout: 2000

UserServiceImpl

package com.wanshi.service.impl;

import com.alibaba.dubbo.config.annotation.Service;

import com.wanshi.bean.UserAddress;

import com.wanshi.service.UserService;

import java.util.Arrays;

import java.util.List;

@Service

public class UserServiceImpl implements UserService {

@Override

public List getUserAddressList(String userId) {

System.out.println(“UserServiceImpl…old…”);

// TODO Auto-generated method stub

UserAddress address1 = new UserAddress(1, “北京市朝阳区”, “1”, “Bug 终结者”, “010-5625321”, “Y”);

UserAddress address2 = new UserAddress(2, “北京市海淀区”, “1”, “小王”, “010-66253834”, “N”);

return Arrays.asList(address1,address2);

}

}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

结局:总结+分享

看完美团、字节、腾讯这三家的一二三面试问题,是不是感觉问的特别多,可能咱们真的又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。

开篇有提及我可是足足背下了Java互联网工程师面试1000题,多少还是有点用的呢,换汤不换药,不管面试官怎么问你,抓住本质即可!能读到此处的都是真爱

  • Java互联网工程师面试1000题

image.png

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的 《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题。

  • 程序员代码面试指南–IT名企算法与数据结构题目最优解

image.png

  • 其余像设计模式,建议可以看看下面这4份PDF(已经整理)

image.png

  • 更多的Java面试学习笔记如下,关于面试这一块,我额外细分出Java基础-中级-高级开发的面试+解析,以及调优笔记等等等。。。

image.png

以上所提及的全部Java面试学习的PDF及笔记,如若皆是你所需要的,那么都可发送给你!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
img" style=“zoom: 33%;” />

结局:总结+分享

看完美团、字节、腾讯这三家的一二三面试问题,是不是感觉问的特别多,可能咱们真的又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。

开篇有提及我可是足足背下了Java互联网工程师面试1000题,多少还是有点用的呢,换汤不换药,不管面试官怎么问你,抓住本质即可!能读到此处的都是真爱

  • Java互联网工程师面试1000题

[外链图片转存中…(img-ha4Xzh56-1712671965261)]

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的 《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题。

  • 程序员代码面试指南–IT名企算法与数据结构题目最优解

[外链图片转存中…(img-QbeqgMMX-1712671965261)]

  • 其余像设计模式,建议可以看看下面这4份PDF(已经整理)

[外链图片转存中…(img-7D6wKzVU-1712671965261)]

  • 更多的Java面试学习笔记如下,关于面试这一块,我额外细分出Java基础-中级-高级开发的面试+解析,以及调优笔记等等等。。。

[外链图片转存中…(img-83HifAcZ-1712671965261)]

以上所提及的全部Java面试学习的PDF及笔记,如若皆是你所需要的,那么都可发送给你!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值