nacos的服务注册与调用

news2024/11/29 20:43:44

        此篇博客进行一个简单实例进行展示服务注册和服务的调用,以订单与库存模块为例,其结构图如下:

 

目  录

1、创建订单模块与库存模块

1.1、编写stock模块

1.2、编写order模块

2、访问地址进行测试

3、总结


1、创建订单模块与库存模块

        创建两个模块,其结构如下

 

1.1、编写stock模块

        pom文件引入相关依赖

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

        <!-- 配置中心    -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <!--   服务注册/发现     -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>

        application.yml配置文件

server:
  port: 8092
  servlet:
    context-path: /

spring:
  application:
    name: nacos-stock
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
NacosStockApplication类(其中注解@EnableDiscoveryClient 作用为:在nacos中进行注册,并且让其他服务能够被发现,进而能够被调用)
package com.ljy;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * @Author 不要有情绪的  ljy
 * @Date 2023/1/10 14:13
 * @Description:
 */
@SpringBootApplication
@EnableDiscoveryClient
public class NacosStockApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosStockApplication.class, args);
    }

}
StockController类
package com.ljy.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author 不要有情绪的  ljy
 * @Date 2023/1/10 14:26
 * @Description:
 */
@RestController
@RequestMapping("/stock")
public class StockController {

    @RequestMapping("/test")
    public String test(String info) {
        return "库存模块接收到的信息:" + info;
    }
}

1.2、编写order模块

        pom文件引入相关依赖(其中依赖openfeign是为了能够调用stock模块而引入)

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

        <!-- 配置中心    -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <!--   服务注册/发现     -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!--  openfeign   -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    </dependencies>

application.yml配置文件

server:
  port: 8091
  servlet:
    context-path: /

spring:
  application:
    name: nacos-order
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
NacosOrderApplication类(不要忘记@EnableFeignClients(basePackages = "com.ljy.feign"),不然不会扫描到feign包)
package com.ljy;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

/**
 * @Author 不要有情绪的  ljy
 * @Date 2023/1/10 10:39
 * @Description:
 */
@EnableDiscoveryClient
@SpringBootApplication
@EnableFeignClients(basePackages = "com.ljy.feign")
public class NacosOrderApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosOrderApplication.class, args);
    }
}
OrderController类
package com.ljy.controller;

import com.ljy.feign.StockFeignService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author 不要有情绪的  ljy
 * @Date 2023/1/10 14:34
 * @Description:
 */
@RestController
@RequestMapping("/order")
public class OrderController {

    @Autowired
    private StockFeignService stockFeignService;

    @RequestMapping("/test")
    public String test(){
        return stockFeignService.test("我是订单模块,我给库存模块发消息!!!");
    }
}

在feign包下编写StockFeignService接口(其作用为:能够调用到库存模块)

package com.ljy.feign;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @Author 不要有情绪的  ljy
 * @Date 2023/1/10 14:30
 * @Description:
 */
@FeignClient("nacos-stock")
public interface StockFeignService {

    @RequestMapping("/stock/test")
    public String test(@RequestParam("info") String info);
}

2、访问地址进行测试

http://localhost:8091/order/test

3、总结

        以上就是nacos的服务注册与调用的简单实例展示过程,其过程为引入相关依赖,在nacos中进行服务注册,其目的是让其他服务能够发现,再引入openfeign依赖,为了能够让相关模块调用到。希望我的书写能够帮助到你。

学习之所以会想睡觉,是因为那是梦开始的地方。
ଘ(੭ˊᵕˋ)੭ (开心) ଘ(੭ˊᵕˋ)੭ (开心)ଘ(੭ˊᵕˋ)੭ (开心)ଘ(੭ˊᵕˋ)੭ (开心)ଘ(੭ˊᵕˋ)੭ (开心)
                                                                                                        ------不写代码不会凸的小刘

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

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

相关文章

论文投稿指南——中文核心期刊推荐(生物科学 2)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

.net开发安卓入门-文件操作与配置操作

.net开发安卓入门-文件操作与配置操作文件操作内部存储代码运行效果System.Environment.SpecialFolder枚举类型对应路径表格外部存储&#xff08;代码和效果见上图&#xff09;区别缓存SharedPreferences获取SharedPreferences对象方法列表读取配置信息写配置信息AssetsNlog配置…

【Linux项目自动化构建工具 make/Makefile】

目录 1 背景 2 原理 3 Linux第一个小程序&#xff0d;进度条 3.1 行缓冲区概念 3.2 进度条代码 4 总结 1 背景 在VS中我们知道当我们想要运行程序时直接按f5程序就会自动运行起来&#xff0c;但是在Linux中如果有多个文件好像并不能这样快速进行&#xff0c;那么这时候就…

远程接入(远程办公)解决方案 OpenText™ Exceed™ TurboX (ETX)

OpenText™ Exceed™ TurboX 安全快速的虚拟应用程序和桌面解决方案&#xff0c;适用于混合工作环境&#xff0c;只需低带宽互联网连接即可为办公桌面和图形要求苛刻的软件提供卓越的用户体验。 突出优势&#xff1a; 支持混合云环境使用任何设备随时随地远程工作为用户提供类…

SpringCloud之Zuul路由网关

Zuul路由网关1. Zuul的概念2. Zuul的作用3. 案例1. Zuul的概念 Zuul包含了对请求的路由&#xff08;用来跳转的&#xff09;和过滤两个最主要功能&#xff1a; 其中路由功能负责将外部请求转发到具体的微服务实例上&#xff0c;是实现外部访问统一入口的基础&#xff0c;而过滤…

新年新故事 | Nice 兔 Meet U

各位伙伴新年好哇 比特熊又回来啦【比特熊故事汇2.0】23年开年第一场与大家一起认识“印象中”的不寻常开发人产品创新实践、工作 Mix 生活、反差感2023年1月12日19:00-20:00【比特熊故事汇2.0】新年想见你第一面Nice 兔 Meet U 比特熊兔年特别限定手办2023年兔年来到&#xff…

Ubuntu10.04编译libevent记录

目前有一个旧的程序 基于很老的ubuntu1004的系统做开发 很多新的C11什么的都用不了 之前 很多在ubuntu1804 上编译的so库 直接拿到1004上来用 提示报错 如下 没办法 只能重新在ubuntu 1004 上面编译了 记录下 下载libevent之后解压 直接执行./configure 提示报错如下图 …

kettle简单的ETL抽取同步两个库之间的数据

kettle下载安装 kettle下载&#xff0c;提取码为 1qyd 安装后&#xff0c;把连接数据库需要的jar包放到 data-integration\lib 目录下&#xff0c;到时候kettle才能正确连接数据库。 sqlserver需要的jar包&#xff0c;提取码为 6a6qmysql需要的jar包&#xff0c;提取码为 n8…

深入理解CAS

目录深入理解CASCAS中的引入什么是CAS&#xff1f;CAS原理——Unsafe类CAS优点CAS缺点ABA问题解决ABA问题深入理解CAS CAS中的引入 我们知道我们使用Volatile可以保证可见性&#xff0c;但不保证原子性&#xff0c;那么&#xff0c;如果我们不使用Lock锁和synchronized&#x…

机器学习之XGBoost模型学习

1.划分数据集函数train_test_split以及数据的加载&#xff1a; python机器学习 train_test_split()函数用法解析及示例 划分训练集和测试集 以鸢尾数据为例 入门级讲解_侯小啾的博客-CSDN博客_train_test_split 还有这篇文章&#xff0c;解析的清除&#xff1a; https://com…

2022 年度中国时序数据应用创新奖公布,涉及工业互联网、车联网等多个行业

随着新兴技术的快速发展&#xff0c;越来越多的企业开始以技术的融合创新来推动业务的数字化智能化转型&#xff0c;其中也诞生了很多成功的应用实践案例。2023 年 1 月 9 日&#xff0c;北京涛思数据科技有限公司(TAOS Data) 正式公布「2022 年度中国时序数据应用创新奖」获奖…

【路径规划】基于D星算法实现栅格地图机器人路径规划

目录算法介绍栅格地图代码运行效果算法介绍 A* 在静态路网中非常有效&#xff08;very efficient for static worlds&#xff09;&#xff0c;但不适于在动态路网&#xff0c;环境如权重等不断变化的动态环境下。 D是动态A&#xff08;D-Star,Dynamic A Star&#xff09; 卡内…

nodejs 如何实现自动化部署?

什么是自动化部署 我接触到的自动化部署概念最早是在 Vercel 上提供的&#xff0c;Vercel 可以提供和 github 联动的功能&#xff0c;通过和你自己的 github 上的某个库建立‘链接’&#xff0c;当你 commit 到 github 远程库时就可以自动部署&#xff0c;Vercel 会帮你完成以…

腾龙健康冲刺A股上市:计划募资10亿元,彭学文家族色彩浓厚

近日&#xff0c;广州腾龙健康实业股份有限公司&#xff08;下称“腾龙健康”&#xff09;预披露招股书&#xff0c;准备在深圳证券交易所主板上市。 本次冲刺上市&#xff0c;腾龙健康计划募资10.13亿元&#xff0c;其中4.09亿元用于水疗按摩池配件生产基地升级项目&#xff0…

数据可视化做出的个人年终总结报告,高颜值更高更具说服力

年终总结与个人业绩、晋升、加薪、离职或留任密切相关。聪明人利用年终报告来总结自己的成就和获得资源&#xff0c;领导者也可以从年终报告看出员工的成长和变化。例如我用可视化互动平台&#xff0c;智能分析做出的公司年终总结报告&#xff0c;高颜值高说服力&#xff0c;领…

Java异常的分类和注意点

异常体系结构 Error与Exception Error是程序无法处理的错误&#xff0c;它是由JVM产生和抛出的&#xff0c;比如OutOfMemoryError、ThreadDeath等。这些异常发生时&#xff0c;Java虚拟机&#xff08;JVM&#xff09;一般会选择线程终止。 Exception是程序本身可以处理的异常…

国内外BI数据分析工具做报表有多大区别?

有什么样的土壤就会早就什么样的产品。国内外企业对报表的不同需求导致了国内外BI数据分析工具做表格时的巨大差异&#xff0c;这也是很多时候国外BI数据分析工具在中国水土不服&#xff0c;遭遇口碑体验两极化的一大原因。下面就来简单看看国内外BI数据分析工具做表格时的不同…

【前端】Vue项目:旅游App-(10)city:以indexBar的形式显示数据

文章目录目标过程与代码分析数据并展示封装到一个组件添加indexBar样式修改优化tab栏的切换效果总代码修改或新增的文件common.csscity.vuecurrentGroupCity.vuemain.js目标 上一篇显示了服务器中的数据&#xff1a;【前端】Vue项目&#xff1a;旅游App-&#xff08;9&#xf…

(九)devops持续集成开发——jenkins流水线发布一个docker版的前端vue项目

前言 本节内容主要介绍如何使用jenkins的流水线发布一个docker版的前端项目。关于本节内容中使用到的jenkins的组件&#xff0c;请参考往期博客内容&#xff0c;自行安装。我们使用NodeJS完成前端项目的编译安装&#xff0c;使用ssh组件完成编译后工程的传输&#xff0c;以及d…

Allegro如何快速复制铜皮到其它层面的两种方法详细操作指导

Allegro如何快速复制铜皮到其它层面的两种方法详细操作指导 在做PCB设计的时候,通常需要复制一个做好的铜皮到其它层面,如下图 需要把L3层的铜皮复制到其它的内层 Allegro支持快速将铜皮拷贝到其它层,下面介绍两种方法,具体操作如下 方法一 选择Edit