Nacos配置

news/2025/3/17 9:31:28/文章来源:https://www.cnblogs.com/linzepro/p/18233436

Nacos注册中心

目前开源的注册中心框架有很多,国内比较常见的有:
  • Eureka:Netflix公司出品,目前被集成在SpringCloud当中,一般用于Java应用
  • Nacos:Alibaba公司出品,目前被集成在SpringCloudAlibaba中,一般用于Java应用
  • Consul:HashiCorp公司出品,目前集成在SpringCloud中,不限制微服务语言
 
以上几种注册中心都遵循SpringCloud中的API规范,因此在业务开发使用上没有太大差异。由于Nacos是国内产品,中文文档比较丰富,而且同时具备配置管理功能(后面会学习),因此在国内使用较多,课堂中我们会Nacos为例来学习。
 
官方网站如下:
暂时无法在飞书文档外展示此内容
 
我们基于Docker来部署Nacos的注册中心,首先我们要准备MySQL数据库表,用来存储Nacos的数据。由于是Docker部署,所以大家需要将资料中的SQL文件导入到你Docker中的MySQL容器中:
最终表结构如下:
然后,找到课前资料下的nacos文件夹:
其中的nacos/custom.env文件中,有一个MYSQL_SERVICE_HOST也就是mysql地址,需要修改为你自己的虚拟机IP地址:
然后,将课前资料中的nacos目录上传至虚拟机的/root目录。
上传资料中的nacos.tar到root目录下,执行命令加载镜像:docker load -i nacos.tar
进入root目录,然后执行下面的docker命令:
docker run -d \
--name nacos \
--env-file ./nacos/custom.env \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--restart=always \
nacos/nacos-server:v2.1.0-slim
云服务器注意:需要开放 8848 9848 9849 端口!!!
 
 
启动完成后,访问下面地址:http://192.168.150.101:8848/nacos/,注意将192.168.150.101替换为你自己的虚拟机IP地址。
首次访问会跳转到登录页,账号密码都是nacos
 
 

服务注册

接下来,我们把item-service注册到Nacos,步骤如下:
  • 引入依赖
  • 配置Nacos地址
  • 重启
 

添加依赖

item-servicepom.xml中添加依赖:
<!--nacos 服务注册发现-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
 

配置Nacos

item-serviceapplication.yml中添加nacos地址配置:
spring:application:name: item-service # 服务名称cloud:nacos:server-addr: 192.168.150.101:8848 # nacos地址
 

启动服务实例

注意:Nacos需要调用8848和9848两个端口,如果是云服务需要去安全组开放两个端口

为了测试一个服务多个实例的情况,我们再配置一个item-service的部署实例:
然后配置启动项,注意重命名并且配置新的端口,避免冲突:
 
重启item-service的两个实例:
 
访问nacos控制台,可以发现服务注册成功:
点击详情,可以查看到item-service服务的两个实例信息:
 

服务发现

服务的消费者要去nacos订阅服务,这个过程就是服务发现,步骤如下:
  • 引入依赖
  • 配置Nacos地址
  • 发现并调用服务
 

引入依赖

服务发现除了要引入nacos依赖以外,由于还需要负载均衡,因此要引入SpringCloud提供的LoadBalancer依赖。
我们在cart-service中的pom.xml中添加下面的依赖:
<!--nacos 服务注册发现-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
可以发现,这里Nacos的依赖于服务注册时一致,这个依赖中同时包含了服务注册和发现的功能。因为任何一个微服务都可以调用别人,也可以被别人调用,即可以是调用者,也可以是提供者。
因此,等一会儿cart-service启动,同样会注册到Nacos

配置Nacos地址

cart-serviceapplication.yml中添加nacos地址配置:
spring:cloud:nacos:server-addr: 192.168.150.101:8848
 

发现并调用服务

接下来,服务调用者cart-service就可以去订阅item-service服务了。不过item-service有多个实例,而真正发起调用时只需要知道一个实例的地址。
因此,服务调用者必须利用负载均衡的算法,从多个实例中挑选一个去访问。常见的负载均衡算法有:
  • 随机
  • 轮询
  • IP的hash
  • 最近最少访问
  • ...
这里我们可以选择最简单的随机负载均衡。
 
另外,服务发现需要用到一个工具,DiscoveryClient,SpringCloud已经帮我们自动装配,我们可以直接注入使用:

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

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

相关文章

RK3308B WIFI

修改 WIFI 型号 ./device/rockchip/rk3308/rockchip_rk3308b_64bit_defconfig修改设备树 根节点 ---> wireless-wlanwireless-wlan {compatible = "wlan-platdata";rockchip,grf = <&grf>;pinctrl-names = "default";pinctrl-0 = <&wi…

WPF初学习(一)

控件模板 控件模板又包括ControlTemplate和ItemsPanelTemplate ControlTemplate(控件模板)不仅是用于来定义控件的外观、样式, 还可通过控件模板的触发器(ControlTemplate.Triggers)修改控件的行为、响应动画等。 样式定义了一些基础的样式, 背景颜色、字体颜色、边框大小、垂直…

一文搞懂Kafka,在项目里面更加得心应手的使用

1. kafka关键概念与术语 1.1 简单的例子说明kafka的使用场景 Apache kafka 是消息中间件的一种,我发现很多人不知道消息中间件是什么,在开始学习之前,我这边就先简单的解释一下什么是消息中间件,只是粗略的讲解,目前kafka已经可以做更多的事情。 举个例子:生产者消费者,…

回归模型的算法性能评价

一、概述 在一般形式的回归问题中,会得到系列的预测值,它们与真实值(ground truth)的比较表征了模型的预测能力,为有效量化这种能力,常见的性能评价指标有可解释方差(EVS)、平均绝对误差(MAE)、均方误差(MSE)、均方根误差(RMSE)、决定系数(R2)等。值得一提的是…

还在拼冗长的WhereIf吗?100行代码解放这个操作

通常我们在做一些数据过滤的操作的时候,经常需要做一些判断再进行是否要对其进行条件过滤。普通做法 最原始的做法我们是先通过If()判断是否需要进行数据过滤,然后再对数据源使用Where来过滤数据。 示例如下: if(!string.IsNullOrWhiteSpace(str)) {query = query.Where(a =…

“粘土风格”轻松拿捏,基于函数计算部署 ComfyUI实现AI生图

阿里云函数计算 FC 一键部署火爆全球工作流 AI 生图平台—— ComfyUI ,实现更高质量的图像生成,三步轻松完成“黏土”创意AI画作,晒图赢眼部按摩器等好礼! 活动地址:https://developer.aliyun.com/topic/june/fc?spm=a2c6h.29234099.J_6985717350.4.65997562KE82EH实验准…

医保“视界”大革新:可视化管理系统重塑就医体验

想象一下,在繁忙的医院里,患者和家属不再需要为了查询医保信息而四处奔波,也不再需要为了报销费用而焦头烂额。智慧医保可视化管理系统通过大数据、云计算等先进技术,将医保信息整合到一个平台上,实现了信息的实时更新和可视化展示在数字化浪潮席卷全球的今天,我们的生活…

数据安全之一 加解密介绍

一、场景信息系统不断发展,要求对于其中的数据安全性必须增加保护机制,否则数据泄露将会给企业带来不可估量的损失。基于此,数据的安全包括如下: 1)数据存储的安全存储包括:文件存储(包括含有敏感信息的图片)、数据库中的敏感数据的存储(比如:密码)、配置文件中的敏…

stm32系列--同一定时器双通道捕获

void TIM3_Cap_Init(u16 arr,u16 psc)//定时器3通道2输入捕获配置 {TIM_ICInitTypeDef TIM_ICInitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Pe…

赛博斗地主——使用大语言模型扮演Agent智能体玩牌类游戏。

通过大模型来实现多个智能体进行游戏对局这个想对已经比较成熟了无论是去年惊艳的斯坦福小镇还是比如metaGPT或者类似的框架都是使用智能体技术让大模型来操控,从而让大模型跳出自身“预测下一个token”的文字功能去探索更多的应用落地可能性。不过一直没有真正操作过,直到前…

Ollama,在centos7宿主机上,curl http://宿主机IP:11434 提示拒绝访问 ,但是curl http://localhost:11434 正常

Ollama,在centos7宿主机上,curl http://宿主机IP:11434 提示拒绝访问 ,但是curl http://localhost:11434 正常1.使用 netstat 或 ss 命令在宿主机上检查 11434 端口的状态[root@localhost ~]# netstat -tulnp | grep 11434 tcp 0 0 127.0.0.1:11434 0.…

NFS,smb和数据库文件

nfs的搭建网上有很多,可自行查看 Windows Server2012 R2搭建NFS服务器 - 知乎 (zhihu.com) 其中Windows10家庭版不支持NFS客户端,目前Windows上的协议是V3版本,防火墙上有NFS的选项,端口2049udp和tcp 在客户端上的访问和smb一样,都可映射网络驱动器,使用\\ip\目录方式访问…