当前位置: 首页 > wzjs >正文

深圳做网站哪家好网站设置ico

深圳做网站哪家好,网站设置ico,投资公司注册资金要求,西城富阳网站建设资料链接:https://download.csdn.net/download/ly1h1/90731290 1.效果 基于Ocelot,实现对3个微服务的轮询调用,实现不停机更新,无缝更新; 2.环境要求 1.部署环境:腾讯云的轻量化应用服务器 2.系统环境&…

资料链接:https://download.csdn.net/download/ly1h1/90731290

1.效果

基于Ocelot,实现对3个微服务的轮询调用,实现不停机更新,无缝更新;

2.环境要求

1.部署环境:腾讯云的轻量化应用服务器

2.系统环境:Window Server 2016

3..net托管包:dotnet-hosting-9.0.4-win.exe

3.配置开放端口号

 3.1 端口号说明:端口5000(服务1),端口5001(服务2),端口5002(服务3),端口5010(Ocelot)

3.2 在服务器管理平台上的开放以上4个端口号

2.3 配置入站规则端口号

4.服务1的代码

4.1 Program.cs

var builder = WebApplication.CreateBuilder(args);// 添加Swagger
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(c =>
{c.SwaggerDoc("v1", new() { Title = "ServerAPI1", Version = "v1" });
});builder.WebHost.ConfigureKestrel(serverOptions => { }).UseUrls("http://*:5000"); // 允许所有Hostbuilder.Services.AddControllers();
var app = builder.Build();// 配置Swagger
if (app.Environment.IsDevelopment())
{app.UseSwagger();app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "ServerAPI1 v1"));
}app.UseRouting();
app.MapControllers();app.Run();

4.2 接口

using Microsoft.AspNetCore.Mvc;
using ServerAPI1.Models;namespace ServerAPI1.Controllers
{[ApiController][Route("api/[controller]")][Produces("application/json")]public class ValuesController : ControllerBase{/// <summary>/// 获取服务基本信息/// </summary>[HttpGet("info")][ProducesResponseType(200)]public IActionResult GetInfo(){return Ok(new { Service = "ServerAPI1", Port = 5000 });}/// <summary>/// 计算服务 (A+B)/// </summary>/// <param name="model">输入参数</param>[HttpPost("calculate")][ProducesResponseType(200)][ProducesResponseType(400)]public IActionResult Calculate([FromBody] TestModel model){if (!ModelState.IsValid) return BadRequest(ModelState);return Ok(new { Result = 123 + 321, Input = model });}}
}

4.2 数据模型

using System.ComponentModel.DataAnnotations;namespace ServerAPI1.Models
{public class TestModel{[Required][StringLength(100)]public string AAA { get; set; }[StringLength(200)]public string BBB { get; set; }}
}

5.服务2的代码

5.1  Program.cs

var builder = WebApplication.CreateBuilder(args);// 添加Swagger
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(c =>
{c.SwaggerDoc("v1", new() { Title = "ServerAPI2", Version = "v1" });
});builder.WebHost.ConfigureKestrel(serverOptions => { }).UseUrls("http://*:5001"); // 允许所有Hostbuilder.Services.AddControllers();
var app = builder.Build();// 配置Swagger
if (app.Environment.IsDevelopment())
{app.UseSwagger();app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "ServerAPI2 v1"));
}app.UseRouting();
app.MapControllers();app.Run();

5.2 接口

using Microsoft.AspNetCore.Mvc;
using ServerAPI2.Models;namespace ServerAPI2.Controllers
{[ApiController][Route("api/[controller]")][Produces("application/json")]public class ValuesController : ControllerBase{/// <summary>/// 获取服务元数据/// </summary>[HttpGet("info")][ProducesResponseType(200)]public IActionResult GetInfo(){return Ok(new { Service = "ServerAPI2", Port = 8016 });}/// <summary>/// 字符串转换服务/// </summary>/// <param name="model">输入参数</param>[HttpPost("calculate")][ProducesResponseType(200)][ProducesResponseType(400)]public IActionResult Transform([FromBody] TestModel model){if (!ModelState.IsValid) return BadRequest(ModelState);return Ok(new { Result = $"{model.AAA}-{model.BBB}".ToUpper() });}}
}

5.3 数据模型

    using System.ComponentModel.DataAnnotations;namespace ServerAPI2.Models{public class TestModel{[Required][StringLength(100)]public string AAA { get; set; }[StringLength(200)]public string BBB { get; set; }}}

6.服务3的代码

6.1 Program.cs

var builder = WebApplication.CreateBuilder(args);// 添加Swagger
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(c =>
{c.SwaggerDoc("v1", new() { Title = "ServerAPI3", Version = "v1" });
});builder.WebHost.ConfigureKestrel(serverOptions => { }).UseUrls("http://*:5002"); // 允许所有Hostbuilder.Services.AddControllers();
var app = builder.Build();// 配置Swagger
if (app.Environment.IsDevelopment())
{app.UseSwagger();app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "ServerAPI3 v1"));
}app.UseRouting();
app.MapControllers();app.Run();

6.2 接口

using Microsoft.AspNetCore.Mvc;
using ServerAPI3.Models;namespace ServerAPI3.Controllers
{[ApiController][Route("api/[controller]")][Produces("application/json")]public class ValuesController : ControllerBase{/// <summary>/// 获取服务元数据/// </summary>[HttpGet("info")][ProducesResponseType(200)]public IActionResult GetInfo(){return Ok(new { Service = "ServerAPI4", Port = 8016 });}/// <summary>/// 字符串转换服务/// </summary>/// <param name="model">输入参数</param>[HttpPost("calculate")][ProducesResponseType(200)][ProducesResponseType(400)]public IActionResult Transform([FromBody] TestModel model){if (!ModelState.IsValid) return BadRequest(ModelState);return Ok(new { Result = $"{model.AAA}-{model.BBB}".ToUpper() });}}
}

6.3 数据模型

    using System.ComponentModel.DataAnnotations;namespace ServerAPI3.Models{public class TestModel{[Required][StringLength(100)]public string AAA { get; set; }[StringLength(200)]public string BBB { get; set; }}}

7.Ocelot的代码

7.1 Program.cs

using Ocelot.DependencyInjection;
using Ocelot.Middleware;var builder = WebApplication.CreateBuilder(args);// 强制指定 Kestrel 端口(优先级最高)
builder.WebHost.ConfigureKestrel(serverOptions =>
{serverOptions.ListenAnyIP(5010); // 监听所有IP的5010端口
});builder.Configuration.AddJsonFile("ocelot.json", optional: false, reloadOnChange: true);
builder.Services.AddOcelot(builder.Configuration);var app = builder.Build();
await app.UseOcelot();
app.Run();

7.2 ocelot.json

{"Routes": [{"DownstreamPathTemplate": "/api/values/{action}","DownstreamScheme": "http","DownstreamHostAndPorts": [{"Host": "192.168.0.102","Port": 5000}, // ServerAPI1{"Host": "192.168.0.102","Port": 5001} ,// ServerAPI2{"Host": "192.168.0.102","Port": 5002} // ServerAPI3],"UpstreamPathTemplate": "/balanced-api/values/{action}","UpstreamHttpMethod": [ "GET", "POST" ],"LoadBalancerOptions": {"Type": "RoundRobin" // 轮询策略}}],"GlobalConfiguration": {"BaseUrl": "http://192.168.0.102:5010"}
}

8.生成发布文件

8.1 选中发布项目,右键点击发布

8.2 选择文件发布,选择文件路径,部署模式为独立,目标运行时为win-x64。

8.3 生成publish文件

9.文件拷贝到服务器的制定目录下

10.点击5个文件夹内部的exe,即可运行;


文章转载自:

http://uCF6AIPD.trqzk.cn
http://M8RhxEON.trqzk.cn
http://8DYS4LUY.trqzk.cn
http://dowPH1kp.trqzk.cn
http://dpT24gTB.trqzk.cn
http://js5bGkvH.trqzk.cn
http://4oeeM6o6.trqzk.cn
http://yUCH4gk2.trqzk.cn
http://WfAEvjzm.trqzk.cn
http://w5OdqZKX.trqzk.cn
http://ir0uo2wP.trqzk.cn
http://VkaHCtO6.trqzk.cn
http://FAwSrHJ3.trqzk.cn
http://sPp6CvCy.trqzk.cn
http://VbzacloN.trqzk.cn
http://rMbtJIjU.trqzk.cn
http://sR53ZfVH.trqzk.cn
http://SUToLhgM.trqzk.cn
http://dcVeCrqM.trqzk.cn
http://6UeXyYVK.trqzk.cn
http://5MCUmhbl.trqzk.cn
http://8cibXJdF.trqzk.cn
http://8ZxaBMXY.trqzk.cn
http://JO5kS3Vw.trqzk.cn
http://8w29AIvw.trqzk.cn
http://avKa0isE.trqzk.cn
http://50tzlv6A.trqzk.cn
http://cjBC6fBZ.trqzk.cn
http://iwijDpCo.trqzk.cn
http://pvmY4hza.trqzk.cn
http://www.dtcms.com/wzjs/754005.html

相关文章:

  • 医疗网站前置审批手机网站改版公司加盟
  • 建设银行 钓鱼网站网站cms相关知识
  • php响应式网站做网站 难
  • 外贸网站 英文计算机培训班有哪些
  • 哪个网站做设计兼职不用压金南昌建站软件
  • 网站上qq未启用网页美工素材
  • 中国建设报社门户网站网站开发营销型
  • 成都上市的网站建设公司优良的网站邮箱服务器提供商isp
  • 中国交建平台南宁seo排名原理
  • 什么网站做的比较好安全教育平台登录入口 登录
  • 网站建设与管理学什么东莞城乡建设网站
  • 建立一个网站英语微信公众平台微网站怎么做
  • 网站备案安全承诺书苏州网络推广定制
  • 小众网站论文哈尔滨哪里有制作网页的
  • 有专门做美发的网站吗做公众号的网站有哪些功能
  • wordpress主题搜索引擎下载优化大师并安装
  • 设计一个网站花多少时间海外免备案网站
  • 动漫做h免费网站有哪些西宁网站建设公司排行
  • 酒泉网站建设广州总承包建筑集团有限公司
  • 怎么看网站域名企业网站相关案例
  • 绵阳阡陌网站建设视频网站如何做微信营销
  • 三门峡网站建设推广网站做推广企业
  • 网站 做 app开发关于网站建设领导分工
  • 学校网站建设及使用档案电子商城网站模板
  • 枣强网站建设公司昆明婚恋网站价格
  • 网页设计与网站建设主要内容数字营销经典案例
  • 旅游网站建设的摘要高碑店地区网站建设
  • 做网站还需要服务器吗怎么查看网站是否备案
  • 整站优化seo排名点击宁波网站设计哪家公司好
  • 益阳市住房和建设局 网站电子商务网站建设前景