当前位置:网站首页>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
边栏推荐
- On the security of key passing and digital signature
- RAID磁盘阵列与RAID5的创建
- 网络安全之渗透靶场实战详解
- Kunteng full duplex digital wireless transceiver chip kt1605 / kt1606 / kt1607 / kt1608 is suitable for interphone scheme
- Getting started with JDBC
- How to implement distributed locks with redis?
- 【题解】[SHOI2012] 随机树
- Deeply understand the relevant knowledge of 3D model (modeling, material mapping, UV, normal), and the difference between displacement mapping, bump mapping and normal mapping
- 04 Lua operator
- 人脸识别框架之dlib
猜你喜欢

100 deep learning cases | day 41 - convolutional neural network (CNN): urbansound 8K audio classification (speech recognition)

Sub database and sub table & shardingsphere

如何建立 TikTok用户信任并拉动粉丝增长

Deepinv20 installation MariaDB

Nifi fast installation and file synchronization

How vscode compares the similarities and differences between two files

PyTorch:train模式与eval模式的那些坑

Mock test using postman

批量制造测试数据的思路,附源码

1959年高考数学真题
随机推荐
JMeter installation tutorial and solutions to the problems I encountered
Linux MySQL data timing dump
网络安全之渗透靶场实战详解
org. apache. parquet. schema. InvalidSchemaException: A group type can not be empty. Parquet does not su
Do you really understand the principle of code scanning login?
英语 | Day15、16 x 句句真研每日一句(从句断开、修饰)
Creation of RAID disk array and RAID5
◰GL-着色器处理程序封装
100 deep learning cases | day 41 - convolutional neural network (CNN): urbansound 8K audio classification (speech recognition)
How to build tiktok user trust and drive fan growth
PHP efficiently reads large files and processes data
An essay on the classical "tear down the wall in thinking"
_ Mold_ Board_
True math problems in 1959 college entrance examination
Introduction to how to set up LAN
Knowledge points and examples of [seven input / output systems]
Production environment——
Feign report 400 processing
ByteVCharts可视化图表库,你想要的我都有
Nifi fast installation and file synchronization