• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

目录Nacos什么是Nacos服务发现和服务健康监控动态配置服务动态DNS服务及其元数据管理Nacos映射部署Nacos构建Nacos registry.net6访问NacosNacos添加配置文件添加Nacos依赖项修改appsettings.json文件修改Program.cs文件启动项目集成到O Celot引入依赖项修改配置文件,修改Program.cs文件,Nacos添加配置文件测试是否读取OrderService实例。

Nacos

https://nacos.io/zh-cn/docs/deployment.html,官方网站

什么是 Nacos

Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一套简单易用的特性,帮助你快速实现动态服务发现、服务配置、服务元数据和流量管理。

Nacos帮助您更加敏捷、轻松地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构的服务基础设施(如微服务范式、云原生范式)。

服务发现和服务健康监测

Nacos支持基于DNS和基于RPC的服务发现。在服务提供者使用本机SDK、OpenAPI或独立代理TODO注册服务后,服务消费者可以使用DNS TODO或HTTPAPI来查找和发现服务。

Nacos为服务提供实时健康检查,并防止向不健康的主机或服务实例发送请求。Nacos支持传输层(PING或TCP)和应用层(如HTTP、MySQL和用户自定义)的健康检查。用于复杂云环境和网络拓扑环境(如VPC、边缘网络等)中服务的健康检查。),Nacos提供了两种健康检查模式:代理报告模式和服务器主动检测模式。Nacos还提供统一的健康检查仪表板,帮助您根据您的健康状态管理服务的可用性和流量。

动态配置服务

动态配置服务允许您以集中、外部和动态的方式管理所有环境的应用程序配置和服务配置。

动态配置消除了在配置更改时重新部署应用程序和服务的需要,使配置管理更加高效和灵活。

集中式配置管理更容易实现无状态服务,也更容易让服务按需灵活扩展。

Nacos提供了一个简单易用的UI(演示控制台)来帮助您管理所有服务和应用程序的配置。Nacos还提供了一系列现成的配置管理功能,包括配置版本跟踪、金丝雀发布、一键回滚配置和客户端配置更新状态跟踪,以帮助您在生产环境中更安全地管理配置更改,并降低配置更改带来的风险。

动态 DNS 服务

动态DNS服务支持权重路由,让你更容易实现中间层的负载均衡、更灵活的路由策略、流量控制以及数据中心内网简单的DNS解析服务。动态DNS服务还可以让你更容易实现基于DNS协议的服务发现,从而帮助你消除耦合到厂商私有服务发现API的风险。

Nacos提供了一些简单的DNS APIs TODO来帮助您管理服务的相关域名和可用IP:PORT端口的列表。

服务及其元数据管理

Nacos让你从微服务平台建设的角度来管理数据中心的所有服务和元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由和安全策略、服务的SLA以及最重要的度量统计。

Nacos 地图

nacos

特征图:从功能特征和非功能特征两个方面全面介绍我们要解决的问题域的特征需求。

建筑大图:通过清晰的建筑,可以快速进入Nacos的世界。

大图:当前特性可以支持的业务场景,以及它们的最佳实践。

生态大图:系统梳理Nacos与主流技术生态的关系

优势大图:展现Nacos的核心竞争力

战略大局观:要从战略到战术层面来讲Nacos的宏观优势。

li>

部署Nacos

搭建Nacos注册中心

  1. 下载Nacos[https://github.com/alibaba/nacos/releases]
  2. 解压后配置持久化

nacos持久化

  1. 创建一个数据库nacos_config,并执行红色框内的2个Sql脚本
    1. 修改配置文件application.properties,主要配置连接db
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=PRC
db.user.0=nacos
db.password.0=nacos
  1. 进入nacos/bin目录下,输入cmd,执行startup -m standalone启动
  2. 通过http://localhost:8848/nacos验证,输入账号:nacos和密码:nacos登录后界面如下:

img

.NET6接入Nacos

Nacos添加配置文件

{
    "nacos": {
    "ServerAddresses": [ "http://localhost:8848" ],
    "DefaultTimeOut": 15000,
    "Namespace": "01786d05-61ed-4d81-9a31-698faf51aa96", // Please set the value of Namespace ID !!!!!!!!
    "ListenInterval": 1000,
    "ServiceName": "UserService",
    "GroupName": "DEFAULT_GROUP",
    "ClusterName": "DEFAULT",
    "RegisterEnabled": true,
    "InstanceEnabled": true,
    "Ephemeral": true,
    "ConfigUseRpc": true,
    "NamingUseRpc": true,
    "LBStrategy": "WeightRoundRobin" //WeightRandom WeightRoundRobin
  }
}

img

添加Nacos依赖

<PackageReference Include="nacos-sdk-csharp.AspNetCore" Version="1.3.1" />
<PackageReference Include="nacos-sdk-csharp.Extensions.Configuration" Version="1.3.1" />

修改appsettings.json文件

{
  "NacosConfig": {
    "Listeners": [
      {
        "Optional": false,
        "DataId": "nacos-config",
        "Group": "DEFAULT_GROUP"
      }
    ],
    "Optional": false,
    "Namespace": "01786d05-61ed-4d81-9a31-698faf51aa96",
    "ServerAddresses": [ "http://localhost:8848/" ]
  }
}

修改Program.cs文件

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

启动项目

dotnet run --urls=http://*:8888 --ip 192.168.3.102 --port=8888

img

整合到Ocelot

引入依赖

<PackageReference Include="nacos-sdk-csharp.AspNetCore" Version="1.3.1" />
<PackageReference Include="nacos-sdk-csharp.Extensions.Configuration" Version="1.3.1" />
<PackageReference Include="Ocelot.Provider.Nacos" Version="1.2.2" />

修改配置文件

{
  "NacosConfig": {
    "Listeners": [
      {
        "Optional": false,
        "DataId": "GatewayConfig",
        "Group": "DEFAULT_GROUP"
      }
    ],
    "Optional": false,
    "Namespace": "MiscroService",
    "ServerAddresses": [ "http://192.168.3.102:8848/" ]
  }
}

修改Program.cs文件

// 添加Ocelot对应Nacos扩展
builder.Services.AddOcelot().AddNacosDiscovery();
// 添加配置中心
builder.Host.ConfigureAppConfiguration((context, builder) =>
{
    var config = builder.Build();
    builder.AddNacosV2Configuration(config.GetSection("NacosConfig"));
});

Nacos添加配置文件

{
  "Routes": [
    {
      "UpstreamPathTemplate": "/microservice/{url}",
      "UpstreamHttpMethod": [ "Get", "Post" ],
      "DownstreamPathTemplate": "/api/{url}",
      "DownstreamScheme": "http",
      "UseServiceDiscovery": true,
      "ServiceName": "OrderService",
      "LoadBalancerOptions": {
        "Type": "RoundRobin"
      }
    }
  ],
  "GlobalConfiguration": {
    "ServiceDiscoveryProvider": {
      "Type": "Nacos"
    }
  },
  "nacos": {
    "ServerAddresses": [ "http://192.168.3.102:8848" ],
    "DefaultTimeOut": 15000,
    "Namespace": "MiscroService",
    "ListenInterval": 1500,
    "ServiceName": "Gateway",
    "GroupName": "DEFAULT_GROUP",
    "ClusterName": "DEFAULT",
    "RegisterEnabled": true,
    "InstanceEnabled": true,
    "ConfigUseRpc": true,
    "NamingUseRpc": true,
    "Ephemeral": true,
    "LBStrategy": "WeightRoundRobin"
  }
}

img

测试是否读取OrderService实例

img

Link to comment
Share on other sites