当前位置:网站首页>Nacos + aspnetcore + Ocelot actual combat code
Nacos + aspnetcore + Ocelot actual combat code
2022-04-23 16:54:00 【Tassel 1990】
Record the program you've played recently .
1、AspnetCore( frame NetCore3.1) Service deployment 2 individual docker, As load balancing 2 Nodes , adopt Nacos Self distribution
2、 gateway Ocelot( frame Net5.0, because Ocelot.Provider.Nacos docking Nacos2.0, Low version access 2.0 Of Nacos Will report a mistake ) Do the forwarding , Configuration uses Nacos Load balancing
Some codes and configurations are listed below
A、 Create microservices , The main codes are as follows :
1、 register Nacos( quote Nuget:nacos-sdk-csharp-unofficial.aspnetcore)
public void ConfigureServices(IServiceCollection services)
{
services.AddNacosAspNetCore(Configuration);
}
2、appsetting.json To configure Nacos as follows :
"nacos": {
"ServerAddresses": [ "" ],// Server address
"DefaultTimeOut": 15,
"Namespace": "",//Nacos The namespace of
"ListenInterval": 1000,
"ServiceName": "",// service name
"Weight": 100
}
3、 After successful registration , Can be in Nacos Page to find , Here's the picture :
One thing to note is that To configure docker You need to specify IP Address with Port port ( Otherwise Nacos Automatically configured docker Inside the container IP Address , It will lead to inaccessibility after forwarding ), So in configuration docker Containers Run When Need to increase the ASPNETCORE_URLS Parameters , As follows :
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 Gateway project (Net5.0 frame ), The main code and configuration are as follows :
1、 Refer to the Nuget There are the following :
nacos-sdk-csharp.Extensions.Configuration
Ocelot.Provider.Nacos
Ocelot.Provider.Polly
2、 The configuration file appsettings.json as follows :
"GlobalConfiguration": {
"ServiceDiscoveryProvider": {
"Type": "Nacos"// This sentence is important
}
},
"nacos": {
"Listeners": [
{
"Optional": false,
"DataId": "spcreceive-ocelot.json",// Configuration center DataId, The configuration information is written as route jump
"Group": "DEFAULT_GROUP"
}
],
"ServerAddresses": [ "http://xxxxx:8848" ],//nacos Address
"ServiceName": "apigateway",// service name
"DefaultTimeOut": 5000,
"Namespace": "",// Customize Namespace Of Id
"GroupName": "DEFAULT_GROUP",
"ClusterName": "DEFAULT",
"ListenInterval": 1000,
"RegisterEnabled": true,
"InstanceEnabled": true,
"LBStrategy": "WeightRoundRobin", //WeightRoundRobin WeightRandom
"NamingUseRpc": true
}
3、 Main code :
public void ConfigureServices(IServiceCollection services)
{
// Registration service discovery
services.AddOcelot().AddNacosDiscovery();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseOcelot().Wait();// Use Ocelot service
}
Program.cs file
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 Configuration center configuration item for spcreceive-ocelot.json as follows :
{
"Routes": [
{
"DownstreamPathTemplate": "/api/xxxxxbe",
"DownstreamScheme": "http",
"UpstreamPathTemplate": "/spc/Cxxxxxxiable",
"UpstreamHttpMethod": [ "Get", "Post" ],
"ServiceName": "SPCService",
"LoadBalancerOptions": {
"Type": "RoundRobin"
},
// Use service discovery
"UseServiceDiscovery": true
}
]
}
版权声明
本文为[Tassel 1990]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204231359253446.html
边栏推荐
- Set the color change of interlaced lines in cells in the sail software and the font becomes larger and red when the number is greater than 100
- Public variables of robotframework
- Decimal format decimal / datetime conversion processing
- 昆腾全双工数字无线收发芯片KT1605/KT1606/KT1607/KT1608适用对讲机方案
- Construction of promtail + Loki + grafana log monitoring system
- Introduction to new functions of camtasia2022 software
- Detailed explanation of the penetration of network security in the shooting range
- 批量制造测试数据的思路,附源码
- 关于 background-image 渐变gradient()那些事!
- 100 deep learning cases | day 41 - convolutional neural network (CNN): urbansound 8K audio classification (speech recognition)
猜你喜欢
Set cell filling and ranking method according to the size of the value in the soft report
Smart doc + Torna generate interface document
Xinwangda: HEV and Bev super fast charging fist products are shipped on a large scale
Use case labeling mechanism of robot framework
On the security of key passing and digital signature
Creation of RAID disk array and RAID5
RTKLIB 2.4.3源码笔记
【PIMF】OpenHarmony啃论文俱乐部—在ACM Survey闲逛是什么体验
Detailed explanation of Niuke - Gloves
Deepinv20 installation MariaDB
随机推荐
Selenium IDE and XPath installation of chrome plug-in
DanceNN:字节自研千亿级规模文件元数据存储系统概述
Idea of batch manufacturing test data, with source code
RAID磁盘阵列与RAID5的创建
PyTorch:train模式与eval模式的那些坑
LVM and disk quota
vim编辑器的实时操作
[pimf] openharmony paper Club - what is the experience of wandering in ACM survey
网络安全之渗透靶场实战详解
PostgreSQL列存与行存
Smart doc + Torna generate interface document
Introduction to new functions of camtasia2022 software
Dlib of face recognition framework
MySQL master-slave synchronization pit avoidance version tutorial
DDT + Excel for interface test
计算饼状图百分比
Encapsulating the logging module
扫码登录的原理你真的了解吗?
Deepinv20 installation MariaDB
Creation of RAID disk array and RAID5