SpringCloud-用nacos做服务注册与调用

步骤1:下载和安装Nacos 首先,你需要从Nacos的官方网站上下载并安装Nacos Server。根据你的操作系统选择合适的版本,并按照官方文档中的说明进行安装和配置。

 步骤2:创建Spring Boot项目 在你喜欢的IDE中创建一个新的Spring Boot项目,命名为"demo-service"。确保将依赖管理方式设置为Maven,并添在父POM加如下的依赖:

<!-- 引入 spring-cloud模块 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!-- Spring Cloud Alibaba --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency>

步骤3:配置Nacos连接信息 打开"application.properties"或"application.yml"文件,添加以下配置,其中,"server-addr"为Nacos Server的地址和端口号,根据你的安装配置进行修改。

spring.application.name=demo-service
server.port=8080spring.cloud.nacos.discovery.server-addr=localhost:8848

步骤4:启用服务注册与发现 在Spring Boot应用程序的入口类(通常是带有@SpringBootApplication注解的类)上添加@EnableDiscoveryClient注解,启用Nacos的服务注册与发现功能。

步骤5:注册服务 对于需要注册到Nacos的服务,你可以在相应的Controller类中添加@RestContoller和@RequestMapping注解,创建REST接口

步骤6:启动应用程序 使用IDE或者命令行启动应用程序。应用程序会自动注册到Nacos Server,并将自己的地址和端口信息注册到服务注册表中。

步骤7:查看服务列表 访问Nacos的控制台,在服务列表中应该能看到你注册的服务信息。你可以查看服务的节点信息、健康状态等。 

至此,你已经成功地使用Nacos实现了服务注册与发现。

步骤8:多个服务之间调用,在需要调用已注册的服务的地方,可以使用RestTemplate来发起HTTP请求并调用服务。在Spring Boot中使用RestTemplate非常方便,以下是一个简单的例子: 

@Autowired
private RestTemplate restTemplate;@GetMapping("/call-demo-service")
public String callDemoService() {String demoServiceUrl = "http://demo-service/api/hello"; // 指向已注册服务的REST接口路径return restTemplate.getForObject(demoServiceUrl, String.class);
}@Bean
public RestTemplate restTemplate() {return new RestTemplate();
}

负载均衡:当在RestTemplate中加上@LoadBalanced注解时,可以实现负载均衡的功能,即在调用多个相同服务提供者的情况下,能够均衡地分配请求到不同的服务实例上。以下是使用@LoadBalanced注解的示例代码:

import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;@SpringBootApplication
@EnableDiscoveryClient
public class ConsumerServiceApplication {@Bean@LoadBalancedpublic RestTemplate restTemplate() {return new RestTemplate();}@Autowiredprivate RestTemplate restTemplate;@GetMapping("/call-demo-service")public String callDemoService() {String demoServiceUrl = "http://demo-service/api/hello";return restTemplate.getForObject(demoServiceUrl, String.class);}public static void main(String[] args) {SpringApplication.run(ConsumerServiceApplication.class, args);}}

在上述代码中,通过在RestTemplate的@Bean方法上添加@LoadBalanced注解,使得RestTemplate具备了负载均衡的能力。这样,在调用"demo-service"服务的REST接口时,RestTemplate将会自动选择一个可用的服务实例进行调用,实现了负载均衡的效果。

即:nacos中同一个服务名可以对应多个端口的应用,在调用的时候加上@LoadBalanced注解,他会自己去分配调用哪个端口的应用

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

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

相关文章

抖音视频评论挖掘工具|视频批量采集软件

抖音视频评论挖掘工具——让你轻松获取大量评论数据 抖音视频评论挖掘工具是一款基于C#开发的高效、便捷的工具&#xff0c;旨在为用户提供全面的数据采集和分析服务。无论你是想了解用户对某个话题或产品的看法&#xff0c;还是想分析评论中的热点和趋势&#xff0c;这款工具都…

Ubuntu下安装Scala

前言 弄了一下终于成功装上了&#xff0c;这里对此进行一下总结 安装虚拟机 VMware虚拟机安装Ubuntu&#xff08;超详细图文教程&#xff09;_vmware安装ubuntu-CSDN博客https://blog.csdn.net/qq_43374681/article/details/129248167Download Ubuntu Desktop | Download | …

第9章:Nginx高级应用场景《Nginx实战:从入门到精通》

随着Web技术的持续演进和业务需求的不断升级&#xff0c;Nginx早已超越了简单的Web服务器角色&#xff0c;成为了处理复杂网络请求和流量管理的多面手。在这一章中&#xff0c;我们将深入挖掘Nginx在高级应用场景中的无限潜力&#xff0c;包括构建坚如磐石的高可用性架构、实施…

【设计模式】(二)设计模式六大设计原则

一、 设计原则概述 设计模式中主要有六大设计原则&#xff0c;简称为SOLID &#xff0c;是由于各个原则的首字母简称合并的来(两个L算一个,solid 稳定的)&#xff0c;六大设计原则分别如下&#xff1a; ​ 1、单一职责原则&#xff08;Single Responsibitity Principle&#…

除了Gamma和tome,还有哪些值得推荐的ai写ppt工具?

如果要说时下职场中最受欢迎的ai工具&#xff0c;那一定非ai写ppt莫属&#xff0c;即使用各类基于AI人工智能技术的软件&#xff0c;来帮我们直接生成ppt&#xff0c;免去制作PPT的各个中间环节&#xff0c;包括&#xff1a;梳理框架、搜集素材、搜集图片、排版美化等&#xff…

EasyRecovery数据恢复软件2024免费试用版下载

EasyRecovery数据恢复软件有免费试用版。用户可以免费下载并扫描丢失的文件&#xff0c;通过免费的扫描功能查看需要恢复的文件是否可以进行恢复。但是&#xff0c;当需要进行文件恢复操作时&#xff0c;需要付费购买相应的版本才可解锁全部功能。 此外&#xff0c;EasyRecove…

Python处理表格数据库之Agate使用详解

概要 您是否有时觉得在处理表格数据时感到不知所措? 也许你在处理一个大型 CSV 文件,遇到了各种数据不一致的问题,或者需要验证数据,确保其准确无误才能进行下一步分析。 传统的数据分析库或许功能强大,但学习曲线陡峭,用起来有点杀鸡用牛刀的感觉。 这时,有一个更…

steam搬砖项目,“一个月赚8K+”真的假的?

Steam搬砖项目相对轻资产&#xff0c;可以在居家和兼职的情况下进行&#xff0c;适合上班族等有限时间的人群。 然而&#xff0c;即使Steam搬砖项目具有较高的收益率和稳定性&#xff0c;也需要投入一定的时间和努力来学习和理解其中的规则和技巧。有些游戏或道具的价格会随着时…

【AI视野·今日Sound 声学论文速览 第五十一期】Mon, 4 Mar 2024

AI视野今日CS.Sound 声学论文速览 Mon, 4 Mar 2024 Totally 6 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers VoxGenesis: Unsupervised Discovery of Latent Speaker Manifold for Speech Synthesis Authors Weiwei Lin, Chenhang He, Man Wai Mak, …

倍增算法C++

倍增 倍增算法是一种优化算法&#xff0c;通常用于某些需要高效计算指数幂的场景。它基于分治的思想&#xff0c;通过反复求平方来实现快速计算指数幂的目的。在实际应用中&#xff0c;倍增算法经常用于解决最近公共祖先问题、二分查找等。 1、快速幂详解 ksm核心代码 倍增就是…

day04-SpringBootWeb入门

一、SpringBootWeb快速入门 1 需求 需求&#xff1a;基于 SpringBoot 的方式开发一个 web 应用&#xff0c;浏览器发起请求 /hello后&#xff0c;给浏览器返回字符串“Hello World ~”。 2 开发步骤 第1步&#xff1a;创建 SpringBoot 工程项目 第2步&#xff1a;定义 HelloC…

【Python】3. 基础语法(2)

顺序语句 默认情况下, Python 的代码执行顺序是按照从上到下的顺序, 依次执行的. print("1") print("2") print("3")执行结果一定为 “123”, 而不会出现 “321” 或者 “132” 等. 这种按照顺序执行的代码, 我们称为 顺序语句. 这个顺序是很关…

redis主从架构

Redis主从架构 单节点Redis的并发能力是有上限的&#xff0c;要进一步提高redis的并发能力&#xff0c;就需要搭建主从集群&#xff0c;实现读写分离。 修改每个文件夹内的配置文件&#xff0c;将端口分别修改为7001、7002、7003&#xff0c;将rdb文件保存位置都修改为自己所在…

go 程序被意外kill后出现僵尸进程解决方案

go 管理自身子进程(防止僵尸进程出现) 写这篇文章是因为最近有同事竟然会知道异步启动子进程&#xff0c;不会关闭&#xff0c;最后导致导致僵尸进程出现&#xff0c;而且由于子进程会随着业务的使用越开越多&#xff0c;主进程一旦被kill掉就会不得不手动一个一个kill。 大概…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:多态样式)

设置组件不同状态下的样式。 说明&#xff1a; 从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 从API Version 11开始支持另一种写法attributeModifier&#xff0c;可根据开发者需要动态设置属性。 stateStyles stateStyl…

16:00面试,16:06就出来了,问的问题过于变态了。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到2月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

微信报修小程序源码

源码获取方式&#xff1a; 1、搜一搜 万能工具箱合集 然后点击资料库&#xff0c;即可获取资源 一、先看Demo&#xff08;已更新至4.0.0&#xff09; 想看界面图片的&#xff0c;辛苦你爬一下楼&#xff0c;点击下方查看资源&#xff0c;进入官方demo 二、功能介绍 1、当前版…

什么是AJAX?它的运用场景有哪些?

文章目录 前言一、什么是AJAX二、AJAX原理是什么三、为什么需要AJAX四、AJAX的使用五、AJAX的应用场景 前言 AJAX 即 Asynchronous Javascript And XML&#xff08;异步JavaScript和XML&#xff09;&#xff0c;是指一种创建交互式网页应用的网页开发技术。 AJAX 是一种用于创…

LLM(十一)| Claude 3:Anthropic发布最新超越GPT-4大模型

2024年3月4日&#xff0c;Anthropic发布最新多模态大模型&#xff1a;Claude 3系列&#xff0c;共有Haiku、Sonnet和Opus三个版本。 Opus在研究生水平专家推理、基础数学、本科水平专家知识、代码等10个维度&#xff0c;超过OpenAI的GPT-4。 Haiku模型更注重效率&#xff0c;能…

稀碎从零算法笔记Day7-LeetCode:罗马数字转整数

题型&#xff1a;字符串转化、找规律 链接&#xff1a;13. 罗马数字转整数 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 …