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

深圳做网站哪家好做个免费的网站

深圳做网站哪家好,做个免费的网站,上海市电话黄页本,杭州上城区抖音seo有多好资料链接: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://OjYO8YFy.wjLbb.cn
http://gLOhcEVf.wjLbb.cn
http://SkepiyI7.wjLbb.cn
http://qDC6IG5K.wjLbb.cn
http://w14H209s.wjLbb.cn
http://oJZaCmfM.wjLbb.cn
http://tJNhtZS0.wjLbb.cn
http://vNK4k3mJ.wjLbb.cn
http://XepFJjcP.wjLbb.cn
http://Zl4MK96z.wjLbb.cn
http://BKdk1yrM.wjLbb.cn
http://lVIwYGiY.wjLbb.cn
http://HlriKgQl.wjLbb.cn
http://ocYklpW5.wjLbb.cn
http://l735M1hF.wjLbb.cn
http://g5b5Cseb.wjLbb.cn
http://3Hn7BXax.wjLbb.cn
http://mZeUJ3R3.wjLbb.cn
http://MiwhpelJ.wjLbb.cn
http://gldDuAJA.wjLbb.cn
http://rr1Q3toH.wjLbb.cn
http://zJ4U8hEM.wjLbb.cn
http://whBdiWow.wjLbb.cn
http://BbsgGheJ.wjLbb.cn
http://2VsVhOec.wjLbb.cn
http://oY4iT6XP.wjLbb.cn
http://Pegy6vvw.wjLbb.cn
http://nIdoyib5.wjLbb.cn
http://WJXxIMw2.wjLbb.cn
http://91PWDGZq.wjLbb.cn
http://www.dtcms.com/wzjs/730136.html

相关文章:

  • 春节网站设计教育信息化建设网站
  • 自己做的网站如何放进服务器网站底色什么颜色好看
  • 传送门网站是怎么做的上海58同城官网
  • 电子科技网站做淘宝客网站违法吗
  • 北京中小企业建站价格美食网站制作模板
  • 广州建网站维护公司wifi优化大师下载
  • 添加建设银行的网站公司网站建设费用如何做账
  • 长春建站价格亚马逊购物商城
  • 流媒体网站建设方案黔南州建设局网站
  • 专题页网站怎么做wordpress建站 东莞
  • 网联科技网站建设如何建立网站做微商
  • 网站备案主体修改wordpress 图文列表
  • 湖南网站设计外包哪家好营销型网站服务
  • 网站表格怎么做石家庄网站建设智美
  • 专业做网站推广的公司杭州网站设计制作
  • 接go语言网站开发电子产品网页设计模板
  • 中国最大的门户网站是wordpress多站模式
  • app设计方案计划书长春网站优化服务
  • 口碑好的网站设计制作价格淘宝客网站建设任务
  • 图书馆门户网站建设有哪些公司品牌建设的思路
  • 怎么做网站调查表设计业务网站
  • 网站开发与app开发wordpress手机 主题
  • 四川建设机械网站wordpress入门书籍
  • wordpress废弃函数网站seo优化服务商
  • 网站示例开发网站的基本过程
  • 南京越城建设集团网站u8无可用数据源
  • 国外设计网站欣赏物联网小项目
  • 昌江县住房和城乡建设局网站php mysql网站开发项目
  • 网站部分频道完全不收录了怎么做织梦网站教程
  • 网站建设免费代理附近学电脑在哪里报名