net6 core 接入nacos 实现服务注册入门使用,心跳检测和负载均衡

news2024/11/15 17:41:55

net6 core 接入nacos 实现服务注册入门使用,心跳检测和负载均衡

配置中心比较Apollo与Nacos_appollo 和 nacos-CSDN博客

一:安装nacos 

Release 2.2.3 (May 25th, 2023) · alibaba/nacos · GitHub

二、配置Nacos

注*Nacos 是使用的mysql 数据库,需要先自行安装好数据库

1.在mysql中创建数据库:库名一定要是:nacos_config  字符集跟排序规则默认为空,没有特殊要求

2.解压出上面下载的压缩包,nacos下conf文件夹,在nacos_config数据库中执行数据库脚本:derby-schema.sql 
mysql-schema.sql

数据库脚本执行完成刷新表,看到如下时,就成功啦!

三.配置连接

打开conf文件夹下的 application.properties 文件  修改如下配置,其余的不要动,修改完成保存。

回到上一级,进入bin目录,在bin目录下cmd 执行 startup -m standalone  命令即可启动nacos。

如果提示没有安装java包,请自行按下面的java安装。

如上图,启动成功,默认端口是8848  我们打开浏览器访问: http://192.168.56.1:8848/nacos/index.html

四:安装java 环境

windows 安装jdk 相关坑 java jdk1.8.0_221 安装步骤_this version of the jdk-CSDN博客

五、NETCORE对接nacos 实现服务注册与发现以及负载均衡

1、配置Nacos

       服务对接之前,先在nacos上添加配置文件   打开nacos的web网页

1.1 配置命名空间

1.2 对命名空间配置参数

    选择 配置列表  选中刚才添加的命名空间   点击最左侧  +  号

填入参数  点击发布,json串可以直接填入   注意填入的时候把注释去掉

把localhost 改成实际你的nacos页面访问的ip地址

Namespace:命名空间ID  可以从左侧 命名空间菜单查看

ServiceName:服务名,自己定义  不要重复哦

Namespace

{

"nacos": {

"ServerAddresses": [ "http://192.168.56.1:8848/" ],

"DefaultTimeOut": 15000,

"Namespace": "23b63b57-c762-4778-b141-4d16db969984",

"ListenInterval": 1000,

"ServiceName": "UserService",

"GroupName": "DEFAULT_GROUP",

"ClusterName": "DEFAULT",

"RegisterEnabled": true,

"InstanceEnabled": true,

"Ephemeral": true,

"ConfigUseRpc": true,

"NamingUseRpc": true,

"LBStrategy": "WeightRoundRobin"

}
}

六:code net6 代码

6.netcore  接入nacos  实现服务注册与心跳检测

6.1 创建一个netcore webapi项目

引入两个nuget  nacos-sdk-csharp.Extensions.Configuration   nacos-sdk-csharp.AspNetCore

注册 nacos :

  // 注册服务到Nacos
  builder.Services.AddNacosAspNet(builder.Configuration); //默认节点Nacos
                                                          // 添加配置中心
  builder.Host.ConfigureAppConfiguration((context, builder) =>
  {
      var config = builder.Build();
      builder.AddNacosV2Configuration(config.GetSection("NacosConfig"));
  });

配置配置文件:

在appsettings.json 文件中贴入下面配置
 

  "NacosConfig": {
    "Listeners": [
      {
        "Optional": false,
        "DataId": "test01serviceconfig", //Data Id 配置列表查看 命名空间ID
        "Group": "DEFAULT_GROUP"
      }
    ],
    "Optional": false,
    "Namespace": "23b63b57-c762-4778-b141-4d16db969984", //命名空间查看
    "ServerAddresses": [ "http://192.168.56.1:8848/" ] //你的nacos 实际访问地址
  }, 

将下图端口设置注释  因为该配置文件优于命令行参数

完事。。。。。。

2.2  启动多个项目

右键项目  在文件资源管理器中打开文件夹   在当前文件下打开cmd窗口   你要开几个服务 就打开几个窗口  在窗口中执行  dotnet run --urls=http://*:8003 --port=8003    端口你自己定义

如下图 我开启了三个窗口 分别开启了三个服务  端口分别是  8001   8002  8003

//dotnet run --urls=http://*:8001 --port=8001
//dotnet run --urls=http://*:8002 --port=8002
//dotnet run --urls=http://*:8003 --port=8003
//http://localhost:8001/WeatherForecast
 

此时 我们从nacos 查看  我们启动的三个服务已经显示了   你关掉对应的服务 这里也会减少或者增加  至此 服务注册与发现 心跳检测配置完成。

六:nacos net6 实现负载均衡

{

    "nacos": {

        "ServerAddresses": ["http://192.168.56.1:8848"],

        "DefaultTimeOut": 15000,

        "Namespace": "23b63b57-c762-4778-b141-4d16db969984",

        "ListenInterval": 1000,

        "ServiceName": "LoadBalanceConfig",

        "GroupName": "DEFAULT_GROUP",

        "ClusterName": "DEFAULT",

        "RegisterEnabled": true,

        "InstanceEnabled": true,

        "Ephemeral": true,

        "ConfigUseRpc": true,

        "NamingUseRpc": true,

        "LBStrategy": "WeightRoundRobin"

    }

} 

修改项目appsettings.json文件

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "NacosConfig": {
    "Listeners": [
      {
        "Optional": false,
        "DataId": "LoadBalanceConfig", //Data Id 配置列表查看 命名空间ID
        "Group": "DEFAULT_GROUP"
      }
    ],
    "Optional": false,
    "Namespace": "23b63b57-c762-4778-b141-4d16db969984", //命名空间查看
    "ServerAddresses": [ "http://192.168.56.1:8848/" ] //你的nacos 实际访问地址
  },
  "AllowedHosts": "*"
}


 修改 默认控制器为  

 //private static readonly string[] Summaries = new[]
 //{
 //    "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
 //};

 private readonly ILogger<WeatherForecastController> _logger;
 private readonly INacosNamingService _nacosNaming;
 public WeatherForecastController(ILogger<WeatherForecastController> logger, Nacos.V2.INacosNamingService nacosNaming)  
 {
     _logger = logger;
     _nacosNaming = nacosNaming;
 }

 [HttpGet]
 public string Get()
 { 
     var nacosConfig=_nacosNaming.SelectOneHealthyInstance("UserService", "DEFAULT_GROUP").GetAwaiter().GetResult();
     return nacosConfig.Ip+":"+nacosConfig.Port;
 }

总体来说  第一步 我们写了一个服务项目 启动了三个接口 分别为8001  8002  8003  注册到了nacos 

现在我们又创建了一个新的i项目 用来请求之前的服务  如果服务能自动切换端口则 负责均衡成功。

启动当前服务   快速发起请求   实现负载均衡

配置中心比较Apollo与Nacos_appollo 和 nacos-CSDN博客

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

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

相关文章

谷粒商城实战笔记-282~283-商城业务-订单服务-提交订单的问题

文章目录 一&#xff0c;282-商城业务-订单服务-提交订单的问题调试过程中出现的问题services面板介绍什么是 Services Panel&#xff1f;主要作用解决的痛点使用方法 二&#xff0c;283-商城业务-分布式事务-本地事务在分布式下的问题分布式事务问题解决方案分布式事务处理流程…

Hubspot AI 工具| 使用 6 款 HubSpot AI 工具,提升初创团队海外营销与销售效率

看看 HubSpot AI 工具如何完美助力中国出海与外贸企业加速落地全球 GTM 策略吧~ 在日益竞争激烈的全球市场中&#xff0c;初创企业想要获得成功&#xff0c;必须有效将产品推向市场&#xff0c;并建立客户基础&#xff0c;与竞争对手一较高下。 这需要精心策划的进入市场&…

常用于单北斗多频定位导航模块资料:ATGM332D-F8N

单北斗多频定位导航模块的高精度定位优点描述&#xff1a; 1、多频信号融合&#xff1a;单北斗多频定位导航模块能够接收和处理来自北斗卫星系统的多个频段信号。通过多频信号的融合处理&#xff0c;可以显著提高定位的精度。因为不同频段的信号在传播过程中受到的影响不同&…

力扣134-加油站(java题解)

题目链接&#xff1a;134. 加油站 - 力扣&#xff08;LeetCode&#xff09; 前情提要&#xff1a; 因为本人最近都来刷贪心类的题目所以该题就默认用贪心方法来做。 贪心方法&#xff1a;局部最优推出全局最优。 如果一个题你觉得可以用局部最优推出全局最优&#xff0c;并…

IO进程day06(进程间通信、信号、共享内存)

目录 【1】进程间通信 IPC 1》 进程间通信方式 2》 无名管道 1> 特点 2> 函数接口 3> 注意事项 练习&#xff1a;父子进程实现通信&#xff0c;父进程循环从终端输入数据&#xff0c;子进程循环打印数据&#xff0c;当输入quit结束。 3》有名管道 1> 特点 …

24数学建模国赛准备!!!!(10——马氏链模型)

详细获取资料方式在文章末尾&#xff01;&#xff01;&#xff01;&#xff01; 点击链接加入群聊获取资料以及国赛助力https://qm.qq.com/q/NGl6WD0Bky &#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&…

多场景建模: STAR(Star Topology Adaptive Recommender)

之前&#xff0c;分享了一篇关于多任务学习的文章&#xff1a;多任务学习MTL模型&#xff1a;MMoE、PLE&#xff0c;同样的还有关于多任务学习中的多目标loss优化策略。 这篇文章则开始一个与多任务学习有着紧密联系的系列&#xff1a;多场景建模学习。 前言 首先&#xff0…

[Raspberry Pi]如何利用docker執行motioneye,並利用Line Notify取得即時通知和照片?

[Motioneye]How to setup motion detection and send message/image for Line Notify 無意間&#xff0c;翻了一本關於樹莓派的書籍&#xff0c;除了樹莓派的簡介和應用外&#xff0c;也包含初階和高階的Linux運作邏輯&#xff0c;書籍結構相當完整&#xff0c;也因此需要花時間…

DAC: High-Fidelity Audio Compression with Improved RVQGAN

Rithesh KumarDescript, Inc.2023NIPS code 文章目录 abstratmethod abstrat 44.1k音频编码为8k bps&#xff0c;接近90x压缩比&#xff1b;可以处理speech, musiccodebook collapse: 部分码本没有利用到。----quantizer dropout &#xff1a;允许单个模型支持可变比特率&…

HarmonyOS NEXT实战:“相机分段式拍照”性能提升实践

概述 相机拍照性能依赖算法处理的速度&#xff0c;而处理效果依赖算法的复杂度&#xff0c;算法复杂度越高的情况下会导致处理时间就越长。目前系统相机开发有两种相机拍照方案&#xff0c;分别是相机分段式拍照和相机单段式拍照&#xff1a; 分段式拍照是系统相机开发的重要…

几款最新好用的图纸加密软件

在现代数字化办公环境中&#xff0c;图纸的保护变得尤为重要。无论是建筑设计图纸、工程图纸&#xff0c;还是机械制造图纸&#xff0c;如何有效地加密并保护这些机密文件&#xff0c;避免信息泄露&#xff0c;是每个企业都需要重视的问题。今天&#xff0c;我们就来推荐几款最…

从开题到答辩:ChatGPT超全提示词分享!(下)【建议收藏】

数据收集 1. "请帮我找出关于如何收集【研究领域】社交媒体数据进行消费者行为研究的五篇指导性文章&#xff0c;并概述它们的主要方法论摘要。" 2. "我需要对【特定领域】市场的消费者偏好进行调查。能否提供一份包含调查问卷设计原则和示例的草稿&#xff1f;…

react vant 在使用dialog.confirm取消报错 Uncaught (in promise) undefined

项目场景&#xff1a; 在使用react做移动端开发时&#xff0c;需要使用Dialog.confirm确认框来做弹框选项&#xff0c;这是在操作中非常常用的一种场景。 问题描述 在列表中&#xff0c;使用弹框时&#xff0c;点击取消时&#xff0c;语法报错&#xff1b;导致后面再触发弹框…

养老小程序源码家政服务小程序开发方案

预约上门养老小程序&#xff0c;是php开发预约&#xff0c;前端是uniapp&#xff0c;有开发好的小程序案例&#xff0c;可源码&#xff0c;也可以二开&#xff0c;也可以定制开发。 一 用户端&#xff1a;服务分类、服务内容详情介绍、在线下单支付&#xff0c;管理我的订单。…

认知杂谈42

今天分享 有人说的一段争议性的话 I I 《摆脱自负自卑&#xff0c;找准自我定位》 I 在咱的生活里啊&#xff0c;有时候咱会在自负和自卑这两个地方来回晃悠&#xff0c;根本就找不着真正属于自己的那个位置。你想想看&#xff0c;自负的时候呢&#xff0c;就好像给自己戴了…

Unity(2022.3.41LTS) - 地形

目录 一、地形的创建 二.页面详解 1.创建相邻的 Terrain 瓦片。 2.雕刻和绘制地形。 3.添加树。 4.添加细节&#xff0c;如草地、花朵和岩石。 5.更改所选 Terrain 的常规设置 三、地形编辑工具 四、地形的属性设置 五、地形的优化 六、地形的应用场景 一、地形的创…

校园牛奶订购配送小程序开发制作方案

校园牛奶订购配送小程序系统的开发方案&#xff0c;包括对用户需求的分析、目标用户的界定、使用场景的设定以及开发功能模块的规划。校园牛奶订购配送小程序系统主要是为校园内学生和教职工提供牛奶订购与配送服务。 目标用户 主要面向在校学生、教职工以及其他有牛奶订购需求…

Mac GIF录制神器LICEcap

GIF录制软件的优点先看下 mac gif制作win gif录制完全免费界面简洁软件大小不到1M 今天就来介绍一款录屏并能生成 GIF 的软件&#xff1a;LICEcap。 背景 希望小巧免费的GIF录制的话LICEcap非常适合&#xff0c;网上很多能轻松录制屏幕的工具&#xff0c;基本都是录制之后带…

操作系统:实验四进程调度实验

一、实验目的 1、了解操作系统CPU管理的主要内容。 2、加深理解操作系统管理控制进程的数据结构--PCB。 3、掌握几种常见的CPU调度算法&#xff08;FCFS、SJF、HRRF、RR&#xff09;的基本思想和实现过程。 4、用C语言模拟实现CPU调度算法。 5、掌握CPU调度算法性能评价指…

基于python文案转语音并输出-自媒体等职业副业均可使用,不受他人限制

开发背景: 目前自媒体比较火爆,有很多书单、视频等推广方式可以作为副业盈利,之前每次搞的时候都需要不停的网上找一些在线文字转语音的平台将文案复制上去然后生成下载,好多还是付费的,挺无奈的,然后就想着自己能不能搞,然后的然后就有了下面的东西, 如果大家有此类需要…