项目实战Dubbo Spring Cloud 并使用Nacos实现注册中心

2023-05-16

搞了大半天,终于趟平了。

本文中主要是基于Dubbo实现了服务提供和调用的demo,并接入Nacos注册中心。

Dubbo Spring Cloud 是Spring Cloud Alibaba 的核心组件,它构建在原生的Spring Cloud 标准之上,不仅覆盖了Spring Cloud原生特性,还提供了更加稳定和成熟的实现。接下来,就让我们一步一步揭开它的神秘面纱。

话不多说直接上代码。

版本选择

Spring Cloud Version : Hoxton.SR9

Spring Cloud Alibaba Version : 2.2.6.RELEASE

Spring Boot Version : 2.3.2.RELEASE

(重要)版本一定要匹配,不然一堆报错搞的烦死了

实现Dubbo服务提供方

1、创建一个父工程 dubbo-demo

图片

pom.xml中增加 <packaging>pom</packaging>

删除src文件夹

2、创建provider-api模块

这是一个普通的maven工程,在其中创建接口,并执行mvn install 将jar包安装到本地仓库

/** * 服务提供者接口 */public interface HelloService {    /**     * 定义接口,传入名字,打招呼     * @param name     * @return     */    String hello(String name);}

3、创建provider模块

第一步,这是一个spring boot工程,添加依赖​​​​​​​

<dependencies>        <dependency>            <groupId>cn.guoxiaolong</groupId>            <artifactId>provider-api</artifactId>            <version>1.0-SNAPSHOT</version>        </dependency>        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-starter</artifactId>            <version>${spring.cloud.alibaba.version}</version>        </dependency>        <dependency>            <groupId>com.alibaba.cloud</groupId>            <artifactId>spring-cloud-starter-dubbo</artifactId>            <version>${spring.cloud.alibaba.version}</version>        </dependency>        <dependency>            <groupId>com.alibaba.cloud</groupId>            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>            <version>${spring.cloud.alibaba.version}</version>        </dependency>    </dependencies>

依赖说明如下:

provider-api :api接口声明

spring-cloud-starter:Spring Cloud核心包

spring-cloud-starter-dubbo:引入Spring Cloud Alibaba Dubbo

spring-cloud-starter-alibaba-nacos-discovery:基于nacos实现服务注册发现的artifactId

第二步,创建接口的实现类HelloServiceImpl,其中@DubboService是Dubbo服务的注解,表示当前服务会发布为一个远程服务​​​​​​​

@DubboServicepublic class HelloServiceImpl implements HelloService {
    private static final Logger logger = LoggerFactory.getLogger(HelloServiceImpl.class);
    @Override    public String hello(String name) {        logger.info("service impl param:{}",name);        return "Hello," + name + " welcome to AlwaysBeCoding!";    }}

第三步,在application.properties中配置dubbo相关信息​​​​​​​

spring.application.name=providerdubbo.scan.base-packages=cn.guoxiaolong.dubbodubbo.protocol.name=dubbodubbo.protocol.port=20882dubbo.protocol.host=100.149.40.112dubbo.registry.address=spring-cloud://localhostspring.cloud.nacos.discovery.server-addr=100.149.40.112:8848

其中spring.cloud.nacos.discovery.server-addr 为注册中心地址,这里我单机启动的注册中心(参考:Nacos快速开始安装使用),也可以采用高可用部署(基于Nacos实现高可用服务注册中心部署)

第四步,创建启动类并启动服务​​​​​​​

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

查看注册中心,服务已经注册上去了

图片

实现Dubbo服务调用方

1、创建一个consumer的spring boot项目

第一步,增加web依赖,其他与服务提供方一致​​​​​​​

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId>    <version>${spring.boot.version}</version></dependency>

第二步,创建HelloController类,暴露一个hello服务,来消费Dubbo服务提供者的HelloService服务。​​​​​​​

@RestControllerpublic class HelloController {
    private static final Logger logger = LoggerFactory.getLogger(HelloController.class);
    @DubboReference    private HelloService helloService;
    @GetMapping("/hello")    public String hello(String name){        logger.info("controller param:{}"+name);        String result = helloService.hello(name);        logger.info("controller result:{}",result);        return result;    }}

第三步,创建启动类

@SpringBootApplication

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

第四步,在application.properties中配置dubbo相关信息​​​​​​​

spring.application.name=consumerdubbo.scan.base-packages=cn.guoxiaolong.dubbodubbo.protocol.name=dubbodubbo.protocol.port=20883dubbo.protocol.host=100.149.40.112dubbo.registry.address=spring-cloud://localhostspring.cloud.nacos.discovery.server-addr=100.149.40.112:8848

第五步,启动服务并测试调用

图片

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

项目实战Dubbo Spring Cloud 并使用Nacos实现注册中心 的相关文章

  • batch norm、relu、dropout 等的相对顺序和BN、dropout的几个问题和思考

    总结 xff1a BN和dropout一般不同时使用 xff0c 如果一定要同时使用 xff0c 可以将dropout放置于BN后面 1 batch norm relu dropout 等的相对顺序 Ordering of batch no
  • 推荐系统之ESMM算法精读和实战

    目录 一 背景 二 ESMM模型 2 1 ESMM 模型结构 2 2 ESMM模型特点 2 3 ESMM模型适用场景 三 实验效果 lt
  • 远程桌面连接 提示用户名密码错误的解决办法

    提示 用户名或者密码错误 xff0c 有两种可能 xff1a 1是 用户名 密码可能输入错误 2是 可能你这个用户名暂不支持远程访问 首先解决用户名 密码的问题 xff1a 计算机的命名规则为 计算机 43 账户 的形式 如果您的账户不是A
  • 金融时间序列模型整理

    GARCH模型 https www math pku edu cn teachers lidf course fts ftsnotes html ftsnotes fts garch html 金融时间序列入门 完结篇 ARCH GARCH
  • 工具学习——ubuntu轻量桌面对比

    因为最近要做一些ubuntu上的开发 xff0c 然后使用ssh问题是经常会出现中断 xff0c 虽然可以使用等tmux方法来挂起进程 xff0c 但是感觉不如界面方便 xff0c 然后现在问题来了 xff0c 我的ubuntu服务器是一个
  • JPA自定义VO接受返回结果集(unwrap)

    JPA跟mybitis比较 xff0c 简单的业务搜索是方便的 xff0c 但是设计到复杂的SQL搜索时 xff0c 我们需要自定义SQL 1 64 Query直接写SQL 缺点是无法动态的组装条件 2 JPA的Specification对
  • 快速排序详解-java实现

    一 快速排序 整体过程 xff1a 1 先从数组中找一个数作为基准数 xff0c 2 进行分区 xff0c 分区时大于这个数得全部放到右边 xff0c 小于这个数得全部放到左边 xff0c 等于这个数得全部放到中间 xff08 核心过程 x
  • 应届生应该如何准备校招

    大家好 xff0c 我是羽峰 xff0c 今天要和大家分享的是应届生应该如何准备校招 xff0c 希望该文章对一些今年要找工作的朋友有一些帮助 还是老话 xff0c 我是羽峰 xff0c 希望我所分享的文章能为您及更多的朋友带来帮助 欢迎转
  • mysql提示Can‘t connect to MySQL server on localhost (10061)解决方法

    本文mysql的安装环境为win10 64位 xff0c mysql版本为MySQL5 7 我遇到的问题是 电脑原先安装过mysql xff0c 卸载不干净 xff0c 重装默认以前的用户名和密码 xff0c 然鹅 我不知道用户名和密码 以
  • 哈希表与一致性哈希表

    哈希表定义 散列表 xff08 Hash table xff0c 也叫哈希表 xff09 xff0c 是根据关键码值 Key value 而直接进行访问的数据结构 它通过把关键码映射到表中一个位置来访问记录 xff0c 以加快查找的速度 这
  • 【AI欣赏】将火影忍者推向新高度:StableDiffusion的神奇效果

    AI欣赏 将火影忍者推向新高度 xff1a StableDiffusion的神奇效果 x1f525 你是否曾经梦想过将自己的绘画水平提升到一个新的高度 xff0c 让你的艺术作品能够轻松地与官方制作相媲美呢 xff1f StableDiff
  • 2023-03-06 debian11 最小安装记录

    1 镜像准备 xff0c 根据个人需求下载debian 版本 Debian 获取 Debian 2 上传到VSAN 内容库 我这边是在vm里面安装的 xff0c 就直接上传到内容库备用 xff08 根据个人需求存放 xff09 3 分配虚拟
  • Vue 项目启动报错:http://eslint.org/docs/rules/no-unused-vars

    Vue项目启动时报 xff1a http eslint org docs rules no unused vars 39 vm 39 is assigned a value but never used src navigation nav
  • Android解决相机预览拉伸问题

    拉伸的原因 1 主要是由于surfaceview的尺寸和 相机预览尺寸不一致造成的 64 Override span class token keyword public span span class token keyword void
  • Linux技巧

    0001 修改主机名 bjchenxu vi etc sysconfig network xff0c 修改HOSTNAME一行为 34 HOSTNAME 61 主机名 34 没有这行 xff1f 那就添加这一行吧 xff0c 然后运行命令
  • 8.消抖技术

    简介 开关的金属触点在断开闭合的过程中产生了多个信号 xff0c 消抖就是保证只有一个信号起到作用 这样的小抖动不像快脉冲一样造成市电上的其他设备出现故障 但是会导致模拟电路快速翻转的数字信号电路出现故障 便宜的电脑键盘通常使用导电橡胶制成
  • 1.7-1.8动态库加载失败的原因和解决办法

    目录 1 动态库和静态库的原理 2 动态库加载失败的原因 3 解决方法 3 1 DT RPATH段 3 2将libcalc so的路径加入到环境变量LD LIBRARY PATH中 3 3将libcalc so的路径加入到 etc ld s
  • Spring中Bean创建完成后执行指定代码的几种实现方式

    Spring中Bean创建完成后执行指定代码的几种实现方式 1 实现ApplicationListener接口2 实现InitializingBean接口3 使用 64 PostConstruct注解 在实际开发中经常会遇到在spring容
  • archlinux fcitx5 在浏览器中不能使用中文输入法

    archlinux系统升级后 xff0c fcitx5 在浏览器中不能使用中文输入法 xff0c 解决办法 xff1a 编辑 etc environment 并添加以下几行 xff0c 然后重新登录 1 xff1a GTK IM MODUL
  • ANR问题了解新思路

    众所周知 xff0c ANR问题一般不太容易解决 它是一种比较综合性的问题 往往涉及系统事件分发逻辑 xff0c ANR产生机制 xff0c BINDER机制 xff0c 线程同步 xff0c CPU和内存使用等各方面 意思就是说 xff0

随机推荐

  • 2021-01-14

    Design expert教程 单因素实验设计 Part 1 基础简介在这个教程中 xff0c 我们会使用Design Expert创建一个常用的单因素多水平设计 这种类型的设计对分类处理的简单比较非常有用 xff0c 例如 xff1a 谁
  • Statement和PreparedStatement的区别/PreparedStatement和Statement比较的优点

    Statement 和 PreparedStatement之间的关系和区别 关系 xff1a PreparedStatement继承自Statement 都是接口 区别 xff1a PreparedStatement可以使用占位符 xff0
  • MATLAB自适应中值滤波

    span class token operator span 自适应中值滤波 clc span class token punctuation span clear span class token punctuation span clo
  • 操作系统经典问题之生产者消费者问题

    一 生产者消费者问题 生产者和消费者问题是计算机同步互斥的经典问题 xff0c 其意思就是生产者把生产出来的产品放在仓库里 xff0c 消费者把产品从仓库里取出来 仓库属于临界区 xff0c 生产者和消费者一次只能一个进入临界区中 两个进程
  • ctags使用教程

    Ctags ctags在http ctags sourceforge net 下载源码 xff0c 编译后安装 常规的标记命令为 ctags R 34 R 34 表示递归创建 xff0c 也就包括源代码根目录下的所有子目录下的源程序 绝大多
  • 线程池(阻塞队列,生产者消费者模式)

    线程的等待和通知 Object类中有些方法不可随便调用 wait notify notifyAll 这三个方法 xff1a 1 wait 使线程主动释放锁 xff0c 进入等待状态 xff0c 直到他被其他的线程通过 notify 和 no
  • ubuntu18.04开机后无法进入系统问题的解决方法

    解决方法ubuntu18 04开机时无法进入系统的问题 问题描述 xff1a 出现这种错误的原因是安装了nvidia smi安装包 xff0c Ubuntu18 04内核bug导致gdm3和nvidia驱动冲突 xff0c 使得gdm3无法
  • 解决安装软件包时出现E:无法定位的问题

    第一种情况 xff1a 在确定网络连接和质量没问题的情况下 xff0c 任何软件都无法安装 xff0c 出现E 无法定位XXX 解决 xff1a 换源 具体步骤 xff1a 1 备份 etc apt sources list 文件 执行命令
  • 初次入职,git使用教程:如何在idea使用git拉取代码,提交代码,以及在gitlab上发起合并请求

    git的使用相信是很多刚踏入程序员这一行朋友的痛点 xff0c 刚入职的一段时间非常担心git用错 xff0c 把别人的代码覆盖掉 xff0c 下面我详细介绍一下如何在idea上使用git xff0c 拉取 xff0c 提交代码 xff0c
  • nginx配置反向代理

    因为项目会根据生成一个URL 那个URL需要挂在移动端APP上 xff0c 但该项目需要部署在公司内网 xff0c 公司内网不能全外网开放 xff0c 所以需要经过nginx配置反向代理来跳转 文章目录 前言一 pandas是什么 xff1
  • 张筱雨履历

    自出道以来便以清纯可爱风格 席卷全球 幽雅的姿态 迷人的身姿 无不透露出深刻内涵的底蕴 被誉为中国第一 姓名 xff1a 张筱雨 出生日期 xff1a 1985年06月06日 职业 xff1a 模特 性别 xff1a 女性 籍贯 xff1a
  • Hystrix总结

    Hystrix是什么 xff1f Hystrix 能使你的系统在出现依赖服务失效的时候 xff0c 通过隔离系统所依赖的服务 xff0c 防止服务级联失败 xff0c 同时提供失败回退机制 xff0c 更优雅地应对失效 xff0c 并使你的
  • python爬取京东商品信息及评论

    准备 chrome浏览器 和 chromeDriver插件 xff08 其他浏览器步骤类似 xff09 python 环境python selenium模块 代码 span class token triple quoted string
  • 错误:端口被占用解决办法

    1 首先打开cmd xff0c 输入以下命令netstat ano xff0c 这是在查看所有端口 2 会列出以下端口 这里根据你的占用窗口找到他的PID xff0c 我这里占用的是1080 xff0c 可以看到他的PID是10512 3
  • 在RuoYi-Cloud若依系统的环境部署的建议及总结

    RuoYi Cloud若依系统的环境部署 为了开发项目 xff0c 使用了RuoYi Cloud系统 xff0c 在前期需要搭建好相应的环境 xff0c 然后再进行实际开发 下面是综合 RuoYi 官方在线文档的相应介绍及自己在搭建中的步骤
  • (第二版)亿级流量电商详情页系统实战-缓存架构+高可用服务架构+微服务架构+课件

    第1节课程介绍以及高并发高可用复杂系统中的缓存架构有哪些东西 第2节基于大型电商网站中的商品详情页系统贯穿的授课思路介绍 免费观看 7分钟 第3节小型电商网站的商品详情页的页面静态化架构以及其缺陷11分钟 第4节大型电商网站的异步多级缓存构
  • 解决idea报错 “cannot access class“ 同一包下Java代码飘红

    解决idea报错 cannot access class 同一包下Java代码飘红 遇到的问题 xff1a 同一个包下的java代码 xff0c 突然飘红 xff0c 出现红色的波浪下划线 xff0c 错误提示 xff1a cannot a
  • Spring Cloud Alibaba微服务实战笔记之微服务架构篇

    目录 xff1a 一 微服务介绍 二 微服务架构的常见问题 三 微服务架构的常见概念 四 微服务架构的常见解决方案 概述 xff1a 俗话说 xff0c 兵马未动 xff0c 粮草先行 xff0c 只有更好的理解什么是微服务 xff0c 才
  • 主流微服务技术栈Spring Cloud Alibaba

    目录 xff1a 一 国内主流微服务技术栈 二 Spring Cloud Alibaba介绍 三 总结 一 国内主流微服务技术栈 之前有段时间阿里开源的dubbo处于不怎么维护的阶段 xff0c 正好这段时间Spring cloud完善的技
  • 项目实战Dubbo Spring Cloud 并使用Nacos实现注册中心

    搞了大半天 xff0c 终于趟平了 本文中主要是基于Dubbo实现了服务提供和调用的demo xff0c 并接入Nacos注册中心 Dubbo Spring Cloud 是Spring Cloud Alibaba 的核心组件 xff0c 它