当前位置:网站首页>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
边栏推荐
- ◰ GL shadow map core steps
- 拷贝构造函数 浅拷贝与深拷贝
- Use if else to judge in sail software - use the title condition to judge
- 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
- Mock test
- 杂文 谈谈古典的《拆掉思维里的墙》
- Pytorch: the pit between train mode and eval mode
- About background image gradient()!
- 信息摘要、数字签名、数字证书、对称加密与非对称加密详解
- Introduction to how to set up LAN
猜你喜欢

On the security of key passing and digital signature

面试百分百问到的进程,你究竟了解多少

MySQL master-slave synchronization pit avoidance version tutorial

Use itextpdf to intercept the page to page of PDF document and divide it into pieces

计组 | 【七 输入/输出系统】知识点与例题

Real time operation of vim editor

Bytevcharts visual chart library, I have everything you want

TypeError: set_ figure_ params() got an unexpected keyword argument ‘figsize‘

Mock test

CentOS MySQL multi instance deployment
随机推荐
关于局域网如何组建介绍
Encapsulating the logging module
Copy constructor shallow copy and deep copy
Bytevcharts visual chart library, I have everything you want
Feign report 400 processing
昆腾全双工数字无线收发芯片KT1605/KT1606/KT1607/KT1608适用对讲机方案
About stream flow, write it down briefly------
MySQL personal learning summary
How much do you know about the process of the interview
loggie 源码分析 source file 模块主干分析
Server log analysis tool (identify, extract, merge, and count exception information)
Dancenn: overview of byte self-developed 100 billion scale file metadata storage system
SQL: How to parse Microsoft Transact-SQL Statements in C# and to match the column aliases of a view
PHP efficiently reads large files and processes data
Loading order of logback configuration file
True math problems in 1959 college entrance examination
RAID磁盘阵列与RAID5的创建
Decimal format decimal / datetime conversion processing
MySQL master-slave replication
英语 | Day15、16 x 句句真研每日一句(从句断开、修饰)