dubbo-helloworld示例

news2024/9/20 14:30:35

1、工程架构

在这里插入图片描述

2、创建模块

(1)创建父工程,引入公共依赖
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

pom.xml依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>com.alibaba.boot</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>0.2.0</version>
    </dependency>
</dependencies>

(2)创建common:公共接口模块(model,service,exception…)
在这里插入图片描述
在这里插入图片描述

作用:定义公共接口,也可以导入公共依赖

public interface UserService {
    public String sayHello(String name);
}

(3)创建dubbo_provider子模块:生产者模块(对用户接口的实现)
在这里插入图片描述
在这里插入图片描述

1)pom.xml

<dependencies>
    <dependency>
        <groupId>com.atguigu</groupId>
        <artifactId>common</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
</dependencies>

2)Service

import com.alibaba.dubbo.config.annotation.Service;
import com.atguigu.common.UserService;
import org.springframework.stereotype.Component;

@Service //这个注解是dubbo的注解,表示对外暴露可以调用的接口
public class UserServiceImpl implements UserService {

    public String sayHello(String name) {
        return "hello:"+name;
    }
}

3)创建启动类

@EnableDubbo  //这个注解表示开启dubbo的注解扫描
@SpringBootApplication
public class ProApplication {

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

4)创建application.properties

dubbo.application.name=service-provide
dubbo.registry.address=192.168.200.130:2181
#dubbo.registry.address=zookeeper://192.168.200.130:2191?backup=192.168.200.130:2192,192.168.200.130:2193

dubbo.registry.protocol=zookeeper

dubbo.protocol.name=dubbo
dubbo.protocol.port=20881

(4)创建dubbo_consumer子模块:消费者模块(调用生产者模块)
在这里插入图片描述

1)pom.xml

<dependencies>
    <dependency>
        <groupId>com.atguigu</groupId>
        <artifactId>common</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
</dependencies>

2)创建controller,调用生产者

@RestController
@RequestMapping("/user")
public class UserController {

    @Reference  //这个注解表示远程调用dubbo
    private UserService userService;

    @GetMapping("{name}")
    public String getData(@PathVariable String name) {
        String value = userService.sayHello(name);
        return value;
    }
}

3)创建启动类

@EnableDubbo
@SpringBootApplication
public class ConApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConApplication.class, args);
    }
}

4)创建application.properties配置文件

server.port=8081
dubbo.application.name=boot-order-service-consumer
dubbo.registry.address=zookeeper://192.168.200.130:2181
#dubbo.registry.address=zookeeper://192.168.200.129:2191?backup=192.168.200.129:2192,192.168.200.129:2193

(5)测试
1)启动注册中心
2)启动生产者服务
3)启动消费者服务
4)服务消费者服务中的controller看结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/821984.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MultipartFile 获取文件名、文件前缀、文件后缀、文件类型

测试 debug 方法 RequestMapping(value "/test",method RequestMethod.POST)public void fileUpload(MultipartFile file){// 文件名String originalFilename file.getOriginalFilename();// 文件名前缀String fileName file.getOriginalFilename().substring(0,…

第5讲:VBA中OFFSET函数的利用

【分享成果&#xff0c;随喜正能量】幸福从来不是跟别人比来的&#xff0c;追求不同&#xff0c;各有活法&#xff0c;开心了就笑&#xff0c;累了就休息&#xff0c;日子安稳踏实就是最大的幸福。做人就怕尊严扫地&#xff0c;保留一点做人的尊严&#xff0c;是人生最大的本钱…

C语言每日一题

今天分享的是一道牛客网上面的题目&#xff0c;链接在下面 有序序列合并 这道题做法有很多&#xff0c;最简单的是合并一起&#xff0c;然后用排序就行了&#xff0c;今天将一个最高效的办法&#xff0c;思路是两个数组第一项进行比较&#xff0c;小的先输出&#xff0c;输出的…

Mac上命令

1. block端口&#xff1a; sudo cp /etc/pf.conf /etc/pf443.conf 编辑pf443.conf&#xff0c;vim /etc/pf443.conf&#xff0c;如 block on en0 proto udp from any to any port 9000 # block UDP port 9000 block on en0 proto tcp from any to any port 5004 # bloc…

InnoDB引擎底层逻辑讲解——后台线程

1.后台线程 后台线程的作用就是将innodb存储引擎缓冲池中的数据&#xff0c;在合适的时机刷新到磁盘文件当中。innodb存储引擎后台的线程主要分为四类&#xff1a;

Golang之路---02 基础语法——函数

函数 函数定义 func function_name( [parameter list] ) [return_types] {函数体 }参数解释&#xff1a; func&#xff1a;函数由 func 开始声明function_name&#xff1a;函数名称&#xff0c;函数名和参数列表一起构成了函数签名。[parameter list]&#xff1a;参数列表&a…

Istio 安全 mTLS认证 PeerAuthentication

这里定义了访问www.ck8s.com可以使用http也可以使用https访问&#xff0c;两种方式都可以访问。 那么是否可以强制使用mtls方式去访问&#xff1f; mTLS认证 PeerAuthentication PeerAuthentication的主要作用是别人在和网格里的pod进行通信的时候&#xff0c;是否要求mTLS mTL…

信息学奥赛一本通——1258:【例9.2】数字金字塔

文章目录 题目【题目描述】【输入】【输出】【输入样例】【输出样例】 AC代码 题目 【题目描述】 观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径&#xff0c;使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。 在上面…

web前端开发工程师岗位的主要职责八篇

web前端开发工程师岗位的主要职责1 职责&#xff1a; 1、负责web前端系统和功能的开发、调试和维护&#xff0c;前端技术框架和js等互动效果开发; 2、负责公司现有项目和新项目的前端修改调试和开发工作; 3、根据工作安排高效、高质地完成代码编写&#xff0c;确保符合规范…

计算机视觉(六)图像分类

文章目录 常见的CNNAlexnet1乘1的卷积 VGG网络Googlenet&#xff08;Inception V1、V2、V3&#xff09;全局平均池化总结 Resnet、ResnextResNet残差网络ResNeXt网络 应用案例VGGResnet 常见的CNN Alexnet DNN深度学习革命的开始 沿着窗口进行归一化。 1乘1的卷积 VGG网络…

45.ubuntu Linux系统安装教程

目录 一、安装Vmware 二、Linux系统的安装 今天开始了新的学习&#xff0c;Linux,下面是今天学习的内容。 一、安装Vmware 这里是在 Vmware 虚拟机中安装 linux 系统&#xff0c;所以需要先安装 vmware 软件&#xff0c;然 后再安装 Linux 系统。 所需安装文件&#xff1a;…

Blueprint —— 蓝图通信

在使用蓝图时&#xff0c;如需在不同蓝图间传递或共享信息&#xff0c;此时就需要使用蓝图通信&#xff08;Blueprint Communication&#xff09;&#xff1b; 一&#xff0c;变量引用 创建变量&#xff0c;类型为指定对象的引用&#xff0c;默认值设置为指定对象的实例&#x…

多线程(JavaEE初阶系列7)

目录 前言&#xff1a; 1.常见的锁策略 1.1乐观锁和悲观锁 1.2轻量级锁和重量级锁 1.3自旋锁和挂起等待锁 1.4互斥锁与读写锁 1.5可重入锁与不可重入锁 1.6公平锁与非公平锁 2.CAS 2.1什么是CAS 2.2自旋锁的实现 2.3原子类 3.synchronized 3.1synchronized的原理以…

探秘二叉树后序遍历:从叶子到根的深度之旅

本篇博客会讲解力扣“145. 二叉树的后序遍历”的解题思路&#xff0c;这是题目链接。 本题的思路是&#xff1a; 先创建一个数组&#xff0c;用来存储二叉树后序遍历的结果。数组的大小跟树的结点个数有关。树的结点个数可以使用递归实现&#xff0c;即总个数左子树结点个数右…

踩坑(5)整合kafka 报错 java.net.UnknownHostException: 不知道这样的主机

java.net.UnknownHostException: 不知道这样的主机。 (5c0c3c629db9)at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) ~[na:na]at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:933) ~[na:na]at java.ba…

windows如何上架ios应用到app store

Application Uploader iOS App上架工具是一款非常好用的针对iOS苹果应用程序软件开发的实用编程工具&#xff0c;它的主要作用是帮助用户进行快速的程序应用设计和程序应用调试&#xff0c;节省用户进行软件开发耗费的不必要时间&#xff01; ​ 编辑切换为居中 添加图片注释&…

【宝藏系列】Curl 用法指南大全

【宝藏系列】Curl 用法指南大全 简介 curl 是常用的命令行工具&#xff0c;用来请求 Web 服务器。它的名字就是客户端&#xff08;client&#xff09;的 URL 工具的意思。 它的功能非常强大&#xff0c;命令行参数多达几十种。如果熟练的话&#xff0c;完全可以取代 Postman 这…

基于STM32CubeMX和keil采用通用定时器中断实现固定PWM可调PWM波输出分别实现LED闪烁与呼吸灯

文章目录 前言1. PWM波阐述2. 通用定时器2.1 为什么用TIM142.2 TIM14功能介绍2.3 一些配置参数解释2.4 PWM实现流程&中断2.4.1 非中断PWM输出(LED闪烁)2.4.2 中断PWM输出(LED呼吸灯) 3. STM32CubeMX配置3.1 GPIO配置3.2 时钟配置3.3 定时器相关参数配置3.4 Debug配置3.5 中…

JDK17和JDK8完美卸载方法及新版JDK安装教程

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

Altova MissionKit 2023Crack

Altova MissionKit 2023Crack MissionKit是一套面向信息架构师和应用程序开发人员的企业级XML、JSON、SQL和UML工具的软件开发套件。MissionKit包括Altova XMLSpy、MapForce、StyleVision和其他市场领先的产品&#xff0c;用于构建当今的真实世界软件解决方案。 使用MissionKit…