Nacos+AspnetCore+Ocelot实战编码
纪录下最近玩的这个方案。
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实战编码相关推荐
- springboot+openFeign+nacos+gateway开发实战
前面说了openFeign整合nacos进行服务之间的调用,本文来说下springboot+openFeign+nacos+gateway开发实战.说下服务网关gateway实战相关的内容. 文章目录 ...
- Nacos配置中心实战,盘古开发框架标配组件
配置中心作为分布式微服务开发的标配组件,业界已有很多成功的典型应用,如:携程 Apollo 分布式配置中心.百度 Disconf 分布式配置中心等.盘古开发框架配置中心基于阿里的 Nacos 提供动态 ...
- 【Spring Cloud Alibaba】(一)微服务介绍 及 Nacos注册中心实战
文章目录 前言 I.微服务与Spring Cloud II.Nacos 注册中心 III.Spring Cloud Alibaba Nacos 实战 1.新建父工程 2.新建demo-a 服务 3.新 ...
- springboot+openFeign+nacos+seata开发实战
本文来编写一个程序实例说下seata的使用,使用的分布式环境是openFeign整合nacos.如何想要使用dubbo整合nacos也是同样的道理,只要注意openFeign和dubbo在使用上的细微 ...
- .net5+nacos+ocelot 配置中心和服务发现实现
相关文章:手动造轮子--为Ocelot集成Nacos注册中心 出处:https://www.cnblogs.com/buruainiaaaa/p/14121176.html 作者:唐@ 最近一段时间 ...
- springboot+dubbo+nacos开发实战
本文来写个详细的例子来说下dubbo+nacos+springboot开发实战.本文不会讲述太多的理论的知识,会写一个最简单的例子来说明dubbo如何与nacos整合.快速搭建开发环境. 文章目录 环 ...
- 【nacos系列】nacos配置中心管理实战
学习nacos注册中心之前,表示本地环境或者服务器上已经搭建完成nacos服务: 今天趁空余时间总结一下nacos注册中心实战相关的东西: 中文官方文档:https://nacos.io/zh-cn/ ...
- SpringBoot+Dubbo+Nacos 开发实战教程
本文来写个详细的例子来说下dubbo+nacos+springboot开发实战.本文不会讲述太多的理论的知识,会写一个最简单的例子来说明dubbo如何与nacos整合,快速搭建开发环境. 文章目录 环 ...
- Nacos 权限控制介绍及实战
方案背景 Nacos自开源依赖,权限控制一直需求比较强烈,这也反应了用户需求将Nacos部署到生产环境的需求.最新发布的Nacos 1.2.0版本已经支持了服务发现和配置管理的权限控制,保障用户安全上 ...
最新文章
- Maven自动FTP远程部署
- 用Linux构建高效FTP服务器(2)
- 数据库优化案例——————某市中心医院HIS系统
- C语言树形打印二叉树
- 数据结构及算法学习——写在前面的话
- 动物克隆技术应用价值_虽然有了克隆技术为什么要进行克隆呢
- 写一个简单控制台启动的mcv服务
- 两台邮件服务器共用一个公网地址,两个不同域邮件服务器的互通
- 普通技术人员如何快速成长为合格的CTO
- 月老办事处月云开发微信小程序源码
- 漫步数理统计二十九——函数期望
- 十荟团创始人发表内部信,公布下半场业务的全面升级规划
- adaptec SCSI卡管理和配置选项
- Cinema 4D Mac(C4D)常用快捷键与自定义快捷键
- 使用Intel NCS算力棒 安装部署记录 VirtualBox With Ubuntu16.04 Source Aliyun
- Ubuntu20.04禁用触摸屏键盘
- imx6ull ccm时钟体系
- 基于StockRanker的AI量化选股策略
- PHP实现地址自动识别的功能实例
- dw cs5 html,dreamweaver cs5网页制作图文教程
热门文章
- Datenlord |保持奇迹:达坦科技CTO荣登「X·36Under36」榜单
- 电动车跷跷板制作心得
- 计算机网络知识框架图---物理层
- A - Smallest Sub-Array
- xy苹果助手未受信任_全网难找的iOS苹果版百度网盘SVP来了
- triz矛盾矩阵_基于TRIZ理论的飞机蜂窝芯零件数控加工固持方法研究
- Mapv 地图可视化工具的使用
- 使用selenium将网页保存为MHTML格式
- 阿里巴巴“高并发秒杀”系统架构到底多牛逼?看完这篇够你吹一年
- 【DRF+Django】微信小程序入门到实战_day03(下)