dubbo入门案例!!!
入门案例之前我们先介绍一下:zookeeper。
Zookeeper是Apacahe Hadoop的子项目,可以为分布式应用程序协调服务,适合作为Dubbo服务的注册中心,负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互。

就不用安装了,我会上传一个安装包。
总结:
1、什么是zookeeper?
zookeeper:负责管理ip和port,是服务提供者和服务消费者的注册中心
2、zookeeper的安装和启动
安装:
解压即安装
启动:
双击bin/zkServer.cmd
开始入门案例:(项目结构)

父工程的pom.xml
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.2.RELEASE</version></parent>
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Dubbo Spring Boot Starter --><dependency><groupId>com.alibaba.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>0.1.0</version></dependency><!-- 由于使⽤了zookeeper作为注册中⼼,则需要加⼊zookeeper的客户端jar包: --><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.10</version></dependency></dependencies>
1、dobbo_interface模块
这个模块中我们就只写一个接口模拟一下就可以.
在com.by.service中写一个HelloService接口
/** Copyright (c) 2020, 2024, All rights reserved.**/
package com.by.service;/*** <p>Project: dubbo_parent - HelloService</p>* <p>Powered by scl On 2024-01-17 13:56:01</p>* <p>描述:<p>** @author 孙臣龙 [1846080280@qq.com]* @version 1.0* @since 17*/
public interface HelloService {String hello();
}
2、dobbo_provider模块
在这个模块中我们需要做:实现上个模块的接口,创建spring boot的启动类,创建配置类
pom.xml:
<dependencies><dependency><groupId>com.by</groupId><artifactId>dubbo_interface</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>
HelloServiceImpl:(注意这个@Service注解是dubbo下的)
/** Copyright (c) 2020, 2024, All rights reserved.**/
package com.by.service;import com.alibaba.dubbo.config.annotation.Service;/*** <p>Project: dubbo_parent - HelloServiceImpl</p>* <p>Powered by scl On 2024-01-17 13:57:42</p>* <p>描述:<p>** @author 孙臣龙 [1846080280@qq.com]* @version 1.0* @since 17*/
@Service
public class HelloServiceImpl implements HelloService{@Overridepublic String hello() {return "你好啊!!!";}
}
启动类:DubboProviderApp:
/** Copyright (c) 2020, 2024, All rights reserved.**/
package com.by;import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** <p>Project: dubbo_parent - DubboProviderApp</p>* <p>Powered by scl On 2024-01-17 13:59:35</p>* <p>描述:<p>** @author 孙臣龙 [1846080280@qq.com]* @version 1.0* @since 17*/
@SpringBootApplication
@EnableDubbo //让dubbo去扫描dubbo的注解
public class DubboProviderApp {public static void main(String[] args) {SpringApplication.run(DubboProviderApp.class,args);}
}
application.properties:
#zookeeper\u7684\u5730\u5740
dubbo.registry.address=zookeeper://127.0.0.1:2181
#\u901A\u8BAF\u534F\u8BAE\uFF1Armi\u3001http\u3001dubbo
dubbo.protocol.name=dubbo
#\u5F53\u524D\u670D\u52A1\u7684\u540D\u79F0
dubbo.application.name=dubbo-provider
3、dobbo_consumer模块
在这个模块中我们需要测试一下我们的功能。实现上个模块的接口,创建spring boot的启动类,创建配置类。
pom.xml:
<dependencies><dependency><groupId>com.by</groupId><artifactId>dubbo_interface</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>
HelloController:(注意:@Reference也是dubbo下的)
/** Copyright (c) 2020, 2024, All rights reserved.**/
package com.by.controller;import com.alibaba.dubbo.config.annotation.Reference;
import com.by.service.HelloService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/*** <p>Project: dubbo_parent - HelloController</p>* <p>Powered by scl On 2024-01-17 15:02:44</p>* <p>描述:<p>** @author 孙臣龙 [1846080280@qq.com]* @version 1.0* @since 17*/
@Controller
public class HelloController {@Referenceprivate HelloService helloService;@RequestMapping("/hello")@ResponseBodypublic String hello(){return helloService.hello();}
}
启动类:DubboConsumerApplication:
/** Copyright (c) 2020, 2024, All rights reserved.**/
package com.by;import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** <p>Project: dubbo_parent - DubboConsumerApplication</p>* <p>Powered by scl On 2024-01-17 15:00:04</p>* <p>描述:<p>** @author 孙臣龙 [1846080280@qq.com]* @version 1.0* @since 17*/
@SpringBootApplication
@EnableDubbo
public class DubboConsumerApplication {public static void main(String[] args) {SpringApplication.run(DubboConsumerApplication.class,args);}
}
配置文件:application.porperties
#zookeeper\u7684\u5730\u5740
dubbo.registry.address=zookeeper://127.0.0.1:2181
#\u901A\u8BAF\u534F\u8BAE\uFF1Armi\u3001http\u3001dubbo
dubbo.protocol.name=dubbo
#\u5F53\u524D\u670D\u52A1\u7684\u540D\u79F0
dubbo.application.name=dubbo-consumer
server.port=80
注意:
1、zookeeper必须启动
2、 @Reference 和 @Service必须到dubbo的包
3、必须先启动provider再起consumer
4、模块provider和consumer的端口号要区分开
结果展示:


相关文章:
dubbo入门案例!!!
入门案例之前我们先介绍一下:zookeeper。 Zookeeper是Apacahe Hadoop的子项目,可以为分布式应用程序协调服务,适合作为Dubbo服务的注册中心,负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只…...
sm2和aes加解密
引用maven包 <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk18on</artifactId><version>1.72</version></dependency>2.对报文进行加密后生成签名 {// oristr报文 SECRET_KEY加密密钥String encrypt…...
cv2.findContours报错解决
问题引入 原代码: binary, contours, hierarchy cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE) 发生了报错,这是因为我们这里返回了binary, contours, hierarchy三个值 这是opencv2里面的写法,在最新版opencv中只返回2个值 修改 contours, hierarchy c…...
RHEL - 更新升级软件或系统
《OpenShift / RHEL / DevSecOps 汇总目录》 文章目录 小版本软件更新yum update 和 yum upgrade 的区别升级软件和升级系统检查软件包是否可升级指定升级软件使用的发行版本方法1方法2方法3方法4 查看软件升级类型更新升级指定的 RHSA/RHBA/RHEA更新升级指定的 CVE更新升级指定…...
JNPF低代码开发平台总体架构介绍
目录 一、JNPF介绍 二、团队能力 三、技术选型 1.后端技术栈 2.前端技术栈 3.数据库支持 四、JNPF界面示意图 五、开发环境 一、JNPF介绍 JNPF是一款企业级低代码开发平台。基于Springboot、Vue技术,采用微服务、前后端分离架构,基于可视化数据建…...
axios的传参方式
目录 1、data传参 2、使用 params 传递查询参数: 3、使用路径参数传递数据: 在使用 Axios 发送 HTTP 请求时,有三种常见的传参方式:data、params 和路径参数 1、data传参 this.$axios({method: "post",url: "h…...
受电端协议芯片是如何让Type-C接口设备实现快充?
随着科技的不断进步,USB Type-C接口在电子产品中越来越普及。而在这个接口中,Type-c受电端协议芯片起着至关重要的作用。那么,什么是Type-c受电端协议芯片?它又是如何工作的呢?本文将为您揭开Type-c受电端协议芯片的神…...
浪花 - 搜索标签前后端联调
前传:浪花 - 根据标签搜索用户-CSDN博客 目录 一、完善后端搜索标签接口 二、前后端搜索标签接口的对接 1. 使用 Axios 发送请求 2. 解决跨域问题 3. Axios 请求传参序列化 4. 接收后端响应数据 5. 处理后端响应数据格式 6. 搜索结果为空的页面展示 附&am…...
GPU与SSD间的P2P DMA访问机制
基于PCIe(Peripheral Component Interconnect Express)总线连接CPU、独立GPU和NVMe SSD的系统架构。 在该架构中,PCIe Swicth支持GPU与SSD之间快速的点对点直接内存访问(peer-to-peer, p2p DMA)。通常情况下࿰…...
未来的NAS:连接您的数字生活
未来的NAS:连接您的数字生活 引言 网络附加存储(Network Attached Storage,简称NAS)是一种通过网络连接的存储设备,用于集中存储和共享数据。传统的NAS设备通常包含一个或多个硬盘驱动器,可以通过局域网连…...
C++ 设计模式之备忘录模式
【声明】本题目来源于卡码网(题目页面 (kamacoder.com)) 【提示:如果不想看文字介绍,可以直接跳转到C编码部分】 【设计模式大纲】 【简介】 -- 什么是备忘录模式 (第17种模式) 备忘录模式(Meme…...
【项目搭建三】SpringBoot引入redis
添加依赖 本文使用spring data redis访问和操作redis,pom文件中加入以下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </depende…...
漫谈广告机制设计 | 听闻RTA要搞二次竞价了?牛啊!
听闻RTA要搞二次竞价了? 读者群里反馈说,某大厂的RTA支持做二次竞价了。笔者听闻后,竖起了大拇指,牛! RTA RTA(Real Time API), 是一种实时的广告程序接口,用于满足广告主实时个性化的投放需…...
第04章_IDEA的安装与使用(下)(IDEA断点调试,IDEA常用插件)
文章目录 第04章_IDEA的安装与使用(下)8. 快捷键的使用8.1 常用快捷键8.2 查看快捷键1、已知快捷键操作名,未知快捷键2、已知快捷键,不知道对应的操作名 8.3 自定义快捷键8.4 使用其它平台快捷键 9. IDEA断点调试(Debug)9.1 为什么…...
HBase鉴权设计以及Kerberos鉴权方法
文章目录 1. HBase鉴权方式整理2. Kerboers鉴权架构整理2.1 kerberos的实现架构2.2 相关核心参数整理 3. 客户端的鉴权设计3.1 安全管控权限3.2 安全管控级别3.3 相关操作3.3.1 用户授权3.3.2 回收权限 4. 疑问和思考6. 参考文章 鉴权,分别由鉴和权组成 鉴…...
【华为GAUSS数据库】IDEA连接GAUSS数据库方法
背景:数据库为华为gauss for opengauss 集中式数据库 IDEA提供了丰富的各类型数据库驱动,但暂未提供Gauss数据库。可以通过以下方法进行连接。 连接后, 可以自动检查xml文件中的sql语句是否准确,表名和字段名是否正确还可以直接在…...
[java基础揉碎]键盘输入语句
介绍 在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取。 需要一个扫描器(对象),就是Scanner 用到的scanner代码例子...
Redis 面试题 | 01.精选Redis高频面试题
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
Crow:实现点击下载功能
Crow:设置网站的index.html-CSDN博客 讲述了如何完成一个最简单的网页的路由 很多网页提供了下载功能,怎么实现呢,其实也很简单。 假设网页的目录结构如图 $ tree static static ├── img │ └── goodday.jpg └── index.html //index.html <html> <body&…...
2024年华为OD机试真题-内存冷热标记-Python-OD统一考试(C卷)
题目描述: 现代计算机系统中通常存在多级的存储设备,针对海量workload的优化的一种思路是将热点内存页优先放到快速存储层级,这就需要对内存页进行冷热标记。 一种典型的方案是基于内存页的访问频次进行标记,如果统计窗口内访问次数大于等于设定阈值,则认为是热内存页,否…...
Seedance2.0内容创作干货!学会这四点教你用 Seedance 2.0 拍出电影感!
Seedance 2.0 之所以能把商业广告、影视制作的质感拉满,核心在于它对“全参调用”的支持。想彻底驯服它,建议你在输入 Prompt 和参数时注意以下四点:1. 结构化你的提示词不要把所有想法堆砌成一句话。Seedance 2.0 对结构化文本的理解极强&am…...
如何彻底禁用iOS过热降频:thermalmonitordDisabler终极指南
如何彻底禁用iOS过热降频:thermalmonitordDisabler终极指南 【免费下载链接】thermalmonitordDisabler A tool used to disable iOS daemons. 项目地址: https://gitcode.com/gh_mirrors/th/thermalmonitordDisabler 你是否曾在游戏激战时遭遇iPhone突然卡顿…...
WSL2网络抽风?能ping通宿主机但上不了网?试试这个一劳永逸的DNS修复脚本
WSL2网络故障终极解决方案:自动化DNS修复脚本实战指南 你是否遇到过这样的场景:在WSL2中能够ping通宿主机,却无法访问任何外网资源?每次重启后手动修改的/etc/resolv.conf配置总是被神秘重置?这种恼人的网络问题已经成…...
Java static 关键字从浅入深
文章目录前言一、static 的基本概念1.1 static 修饰什么1.2 static 的一句话理解二、static 变量2.1 类变量与实例变量2.2 使用场景三、static 方法3.1 静态方法的特点3.2 使用场景四、static 代码块4.1 static 代码块什么时候执行4.2 初始化顺序五、static 内部类5.1 静态内部…...
抢先李飞飞!世界模型能多人联机玩FPS游戏了
Jay 发自 凹非寺量子位 | 公众号 QbitAI我被AI杀了?有视频为证,我被一个不知道是人还是AI的东西,一枪崩了。还是在一个世界模型创造的世界里。嗯,就是这个画质糊成马赛克的网页版FPS。背后没有游戏引擎,没有物理规则&a…...
YOLOv8模型家族全解析:P2、P6、标准版到底该选哪个?一张图帮你搞定选择困难症
YOLOv8模型家族全解析:P2、P6、标准版到底该选哪个? 在计算机视觉项目的初期,模型选型往往是最令人头疼的环节。面对GitHub仓库中琳琅满目的YAML配置文件,即便是经验丰富的工程师也难免陷入选择困难。YOLOv8作为当前最先进的目标检…...
华硕笔记本性能管家G-Helper:告别臃肿控制中心,重获系统掌控权
华硕笔记本性能管家G-Helper:告别臃肿控制中心,重获系统掌控权 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vi…...
别再让API请求拖慢你的Python应用:用cachetools实现LRU缓存,性能提升实测
别再让API请求拖慢你的Python应用:用cachetools实现LRU缓存,性能提升实测 当你的Python应用开始频繁调用外部API或进行重复计算时,性能瓶颈往往悄然而至。想象一下,每次用户请求都需要等待数秒的API响应,或是相同的数据…...
告别Minecraft模组英文界面:MASA全家桶汉化包完全指南
告别Minecraft模组英文界面:MASA全家桶汉化包完全指南 【免费下载链接】masa-mods-chinese 一个masa mods的汉化资源包 项目地址: https://gitcode.com/gh_mirrors/ma/masa-mods-chinese 你是否曾经在Minecraft中面对满屏的英文模组界面感到困惑?…...
智能视觉瞄准系统:基于YOLOv8的高效游戏辅助解决方案
智能视觉瞄准系统:基于YOLOv8的高效游戏辅助解决方案 【免费下载链接】RookieAI_yolov8 基于yolov8实现的AI自瞄项目 AI self-aiming project based on yolov8 项目地址: https://gitcode.com/gh_mirrors/ro/RookieAI_yolov8 RookieAI_yolov8是一个基于先进视…...
