纪录下最近玩的这个方案。

1、AspnetCore(框架NetCore3.1)服务部署2个docker,作为负载均衡的2个节点,通过Nacos自行分配

2、网关Ocelot(框架Net5.0,因Ocelot.Provider.Nacos对接Nacos2.0,低版本访问2.0的Nacos会报错)做转发,配置采用Nacos负载均衡

以下列出部分代码以及配置

A、创建微服务,主要代码如下:

1、注册Nacos(引用Nuget:nacos-sdk-csharp-unofficial.aspnetcore)

public void ConfigureServices(IServiceCollection services)
{services.AddNacosAspNetCore(Configuration);
}

2、appsetting.json配置Nacos如下:

 "nacos": {"ServerAddresses": [ "" ],//服务器地址"DefaultTimeOut": 15,"Namespace": "",//Nacos的命名空间"ListenInterval": 1000,"ServiceName": "",//服务名"Weight": 100}

3、注册成功后,可以在Nacos 页面找到,如下图:

有个需要注意的地方是 配置docker 启动的时候需要指定IP地址跟Port端口(不然Nacos自动配置了docker容器的内部IP地址,会导致转发后访问不了),所以在配置docker 容器Run 的时候 需要增加ASPNETCORE_URLS参数,具体如下:

docker run --name=umsspc1 --restart=always -d -p 85:9002 -e "ASPNETCORE_URLS=http://xxxxx:85" --link umsreports:nameasreporttest -v /usr/pm/umsspccollect/plug:/spccore/plug -v /usr/pm/umsspccollect/jsonConfig:/spccore/jsonConfig umsspcapi

B 、Ocelot网关项目(Net5.0框架),主要代码以及配置如下:

1、引用的Nuget有如下:

nacos-sdk-csharp.Extensions.Configuration

Ocelot.Provider.Nacos

Ocelot.Provider.Polly

2、配置文件appsettings.json如下:

"GlobalConfiguration": {"ServiceDiscoveryProvider": {"Type": "Nacos"//这句话是重要的}},"nacos": {"Listeners": [{"Optional": false,"DataId": "spcreceive-ocelot.json",//配置中心的DataId,配置信息写的是路由跳转"Group": "DEFAULT_GROUP"}],"ServerAddresses": [ "http://xxxxx:8848" ],//nacos地址"ServiceName": "apigateway",//服务名"DefaultTimeOut": 5000,    "Namespace": "",//自定义Namespace的Id"GroupName": "DEFAULT_GROUP","ClusterName": "DEFAULT","ListenInterval": 1000,"RegisterEnabled": true,"InstanceEnabled": true,"LBStrategy": "WeightRoundRobin", //WeightRoundRobin WeightRandom "NamingUseRpc": true}

3、主要代码:

public void ConfigureServices(IServiceCollection services)
{//注册服务发现services.AddOcelot().AddNacosDiscovery();
}public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{app.UseOcelot().Wait();//使用Ocelot服务
}

Program.cs文件

public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureAppConfiguration((hostingContext, builder) =>{var c = builder.Build();builder.AddNacosV2Configuration(c.GetSection("nacos"));}).ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();});

4、Nacos的配置中心配置项spcreceive-ocelot.json 如下:

{"Routes": [  {"DownstreamPathTemplate": "/api/xxxxxbe","DownstreamScheme": "http","UpstreamPathTemplate": "/spc/Cxxxxxxiable","UpstreamHttpMethod": [ "Get", "Post" ],"ServiceName": "SPCService","LoadBalancerOptions": {"Type": "RoundRobin"},     // 使用服务发现"UseServiceDiscovery": true      }]
}

Nacos+AspnetCore+Ocelot实战编码相关推荐

  1. springboot+openFeign+nacos+gateway开发实战

    前面说了openFeign整合nacos进行服务之间的调用,本文来说下springboot+openFeign+nacos+gateway开发实战.说下服务网关gateway实战相关的内容. 文章目录 ...

  2. Nacos配置中心实战,盘古开发框架标配组件

    配置中心作为分布式微服务开发的标配组件,业界已有很多成功的典型应用,如:携程 Apollo 分布式配置中心.百度 Disconf 分布式配置中心等.盘古开发框架配置中心基于阿里的 Nacos 提供动态 ...

  3. 【Spring Cloud Alibaba】(一)微服务介绍 及 Nacos注册中心实战

    文章目录 前言 I.微服务与Spring Cloud II.Nacos 注册中心 III.Spring Cloud Alibaba Nacos 实战 1.新建父工程 2.新建demo-a 服务 3.新 ...

  4. springboot+openFeign+nacos+seata开发实战

    本文来编写一个程序实例说下seata的使用,使用的分布式环境是openFeign整合nacos.如何想要使用dubbo整合nacos也是同样的道理,只要注意openFeign和dubbo在使用上的细微 ...

  5. .net5+nacos+ocelot 配置中心和服务发现实现

    相关文章:手动造轮子--为Ocelot集成Nacos注册中心 出处:https://www.cnblogs.com/buruainiaaaa/p/14121176.html 作者:唐@ 最近一段时间 ...

  6. springboot+dubbo+nacos开发实战

    本文来写个详细的例子来说下dubbo+nacos+springboot开发实战.本文不会讲述太多的理论的知识,会写一个最简单的例子来说明dubbo如何与nacos整合.快速搭建开发环境. 文章目录 环 ...

  7. 【nacos系列】nacos配置中心管理实战

    学习nacos注册中心之前,表示本地环境或者服务器上已经搭建完成nacos服务: 今天趁空余时间总结一下nacos注册中心实战相关的东西: 中文官方文档:https://nacos.io/zh-cn/ ...

  8. SpringBoot+Dubbo+Nacos 开发实战教程

    本文来写个详细的例子来说下dubbo+nacos+springboot开发实战.本文不会讲述太多的理论的知识,会写一个最简单的例子来说明dubbo如何与nacos整合,快速搭建开发环境. 文章目录 环 ...

  9. Nacos 权限控制介绍及实战

    方案背景 Nacos自开源依赖,权限控制一直需求比较强烈,这也反应了用户需求将Nacos部署到生产环境的需求.最新发布的Nacos 1.2.0版本已经支持了服务发现和配置管理的权限控制,保障用户安全上 ...

最新文章

  1. Maven自动FTP远程部署
  2. 用Linux构建高效FTP服务器(2)
  3. 数据库优化案例——————某市中心医院HIS系统
  4. C语言树形打印二叉树
  5. 数据结构及算法学习——写在前面的话
  6. 动物克隆技术应用价值_虽然有了克隆技术为什么要进行克隆呢
  7. 写一个简单控制台启动的mcv服务
  8. 两台邮件服务器共用一个公网地址,两个不同域邮件服务器的互通
  9. 普通技术人员如何快速成长为合格的CTO
  10. 月老办事处月云开发微信小程序源码
  11. 漫步数理统计二十九——函数期望
  12. 十荟团创始人发表内部信,公布下半场业务的全面升级规划
  13. adaptec SCSI卡管理和配置选项
  14. Cinema 4D Mac(C4D)常用快捷键与自定义快捷键
  15. 使用Intel NCS算力棒 安装部署记录 VirtualBox With Ubuntu16.04 Source Aliyun
  16. Ubuntu20.04禁用触摸屏键盘
  17. imx6ull ccm时钟体系
  18. 基于StockRanker的AI量化选股策略
  19. PHP实现地址自动识别的功能实例
  20. dw cs5 html,dreamweaver cs5网页制作图文教程

热门文章

  1. Datenlord |保持奇迹:达坦科技CTO荣登「X·36Under36」榜单
  2. 电动车跷跷板制作心得
  3. 计算机网络知识框架图---物理层
  4. A - Smallest Sub-Array
  5. xy苹果助手未受信任_全网难找的iOS苹果版百度网盘SVP来了
  6. triz矛盾矩阵_基于TRIZ理论的飞机蜂窝芯零件数控加工固持方法研究
  7. Mapv 地图可视化工具的使用
  8. 使用selenium将网页保存为MHTML格式
  9. 阿里巴巴“高并发秒杀”系统架构到底多牛逼?看完这篇够你吹一年
  10. 【DRF+Django】微信小程序入门到实战_day03(下)