Nacos注册中心

embedded/2024/12/30 0:17:20/

1.Nacos下载

我们先在Nacos官网下载Nacos下载好后就可以拖入微服务进行使用就不需要使用镜像, Nacos下载网址:发布历史 | Nacos 官网 ; 到这个网址里下载自己所需要的版本

或者用百度网盘:
链接: https://pan.baidu.com/s/19B_ilADHGYxQuzwX2CWVYw?pwd=eqm4

提取码: eqm4

2.安装Nacos

下载好后将他的安装包和custom.env一同拖入虚拟机的文件管理中执行指令加载安装包 nacos.tar

docker load -i nacos.tar    

3.部署Nacos

 紧接着没报错我们就开始部署使用命令:

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

4.启动Nacos

然后我们在使用以下指令去查看其日志:

docker logs -f nacos 

 

在这我们可以清楚的看到已经启动好了,然后他的端口号是8848(钛金手机)接着我们直接到外部的浏览器去访问他的网址: (自己虚拟机的网络):8848/nacos 

打开后:

因为第一次访问所以需要使用账号和密码 ,他的账号密码都是:nacos,

登录后的页面:

这里就可以用来管理服务提供者所提供的服务了!

5.使用Nacos

5.1 添加Nacos依赖

在您使用的Spring项目中添加以下的依赖

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

5.2 配置地址:

spring:application:name: item-service # 服务名称cloud:nacos:server-addr: 192.168.46.128:8848 # nacos地址

5.3 启动项目:

添加完成后我们就启动项目,我们就可以看到控制台正在向服务注册中心注册服务:

 启动完成后我们回到浏览器 刷新查看一下:这时候就可以在服务列表中查看到我们所注册的服务了;

5.4重开服务

在项目中一个服务挂了你就无法访问,以及太多的请求访问同一根服务会给服务增加压力所以我们需要重开一个服务,重开一个服务如果说在写一个的话会增加开发人员的开发速度所以我们可以这样操作:

1右键你需要重开的服务点击Copy Configuration

2.修改你需要的名称一般都是将 Name (1)改成2,凭自己喜好 , 在点击Modify options

3.选择 Add VM options

4.添加端口号

点击后他会多出一个输入框让你输入,首先你需要先输入 -Dserver.port=(端口号)

输入这个时基本上都会有提示,没有那就不关我的事,自己找原因😎

根据自己的端口输入端口号,避免被使用的端口就好了;

5测试

直接启动就好了然后我们去到 之前打开了的 nacos 网址 

192.168.46.128:8848/nacos

查看就好了

      下方就是我们的服务,点击详情就可以看到服务的端口

 6.服务发现

6.1了解一下服务发现:

服务发现和注册服务差不多,分为三步:

  1. 引入nacos 依赖 
  2. 配置nacos地址
  3. 服务发现

 前面两步我就步展示了;

6.2发现服务

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URL;
import java.util.List;
import java.util.Random;// 假设DiscoveryClient已经注入
private final DiscoveryClient discoveryClient;private void handleCartItems(List<CartVO> vos) {// 1. 根据服务名称,拉取服务的实例列表List<ServiceInstance> instances = discoveryClient.getInstances("item-service");if (instances == null || instances.isEmpty()) {System.out.println("No available instances for item-service");return;}// 2. 负载均衡,挑选一个实例Random random = new Random();ServiceInstance instance = instances.get(random.nextInt(instances.size()));// 3. 获取实例的IP和端口URI uri = instance.getUri();String serviceUrl = uri.toString();try {// 创建URL对象URL url = new URL(serviceUrl);// 打开连接HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("GET");// 设置请求头,如果需要的话connection.setRequestProperty("Accept", "application/json");// 获取响应码int status = connection.getResponseCode();if (status > 299) {System.out.println("Failed : HTTP error code : " + status);return;}// 读取响应内容BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String inputLine;StringBuffer response = new StringBuffer();while ((inputLine = in.readLine()) != null) {response.append(inputLine);}in.close();// 打印结果System.out.println(response.toString());} catch (Exception e) {e.printStackTrace();}
}


http://www.ppmy.cn/embedded/149484.html

相关文章

go多版本管理工具g win安装配置

go多版本管理工具g 基本介绍仓库安装配置配置环境配置系统变量配置path变量测试使用配置完环境变量之后&#xff0c;打开终端进行测试使用查看 g 的环境变量配置&#xff0c;g env 为环境变量配置&#xff0c;g -v为当前版本信息查看可下载列表下载安装指定版本go&#xff0c;并…

实战OpenCV之目标检测

基础入门 目标检测是计算机视觉中的一个重要任务,它旨在识别图像或视频帧中的多个对象,并对每个对象进行定位和分类。目标检测任务通常包括以下几个主要步骤。 输入图像:接收一张或多张图像作为输入。 特征提取:从输入图像中提取有用的特征。 候选区域生成:生成一组可能包…

C# 窗体应用程序嵌套web网页,基于谷歌浏览器内核(含源码)

有一个winform项目&#xff0c;需要借助一个web项目来显示&#xff0c;并且对web做一些操作,web页目是需要用谷歌内核&#xff0c;基于谷歌 Chromium项目的开源Web Browser控件来开发写了一个demo。 安装步骤 第一步&#xff1a;右键项目&#xff0c;点击 管理NuGet程序包 , 输…

kafka的备份策略:从备份到恢复

文章目录 一、全量备份二、增量备份三、全量恢复四、增量恢复 前言&#xff1a;Kafka的备份的单元是partition&#xff0c;也就是每个partition都都会有leader partiton和follow partiton。其中leader partition是用来进行和producer进行写交互&#xff0c;follow从leader副本进…

使用 .NET 6 或 .NET 8 上传大文件

如果您正在使用 .NET 6&#xff0c;并且它拒绝上传大文件&#xff0c;那么本文适合您。 我分享了一些处理大文件时需要牢记的建议&#xff0c;以及如何根据我们的需求配置我们的服务&#xff0c;并提供无限制的服务。 本文与 https://blog.csdn.net/hefeng_aspnet/arti…

洪水灾害多智能体分布式模拟示例代码

1. 环境定义&#xff1a;支持灾害动态、地理数据和分布式架构 import numpy as np import random import matplotlib.pyplot as plt# 新疆主要城市及邻接关系 XINJIANG_CITIES {Urumqi: [Changji, Shihezi],Changji: [Urumqi, Shihezi, Turpan],Shihezi: [Urumqi, Changji, K…

USB免驱全协议IC卡读写器C#小程序开发

USB免驱全协议ic读卡器&#xff1a; 小程序UI界面&#xff1a; UI界面底代码&#xff1a; namespace WindowsFormsApplication1 {partial class Form1{/// <summary>/// 必需的设计器变量。/// </summary>private System.ComponentModel.IContainer components n…

Python与黑客技术

Python与黑客技术&#xff1a;黑入他人电脑的风险与道德 在现代科技快速发展的背景下&#xff0c;Python作为一种功能强大且易于学习的编程语言&#xff0c;受到了许多开发者的青睐。尽管Python可以用来开发各种应用&#xff0c;但也有人好奇其是否能用于黑客行为&#xff0c;尤…