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

在家做网站建设网站快速优化排名软件

在家做网站建设,网站快速优化排名软件,网站首页广告,个人网站备案名称 技巧搭建3个项目,分别是OcelotDemo、ServerApi1和ServerApi2这3个项目。访问都是通过OcelotDemo进行轮训转发。 代码案例链接:https://download.csdn.net/download/ly1h1/90715035 1.架构图 2.解决方案结构 3.步骤一,添加Nuget包 4.步骤二&…

搭建3个项目,分别是OcelotDemo、ServerApi1和ServerApi2这3个项目。访问都是通过OcelotDemo进行轮训转发。

代码案例链接:https://download.csdn.net/download/ly1h1/90715035

1.架构图

 2.解决方案结构

3.步骤一,添加Nuget包

4.步骤二,配置ocelot.json

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

5.编写OcelotDemo的Program

using Ocelot.DependencyInjection;
using Ocelot.Middleware;var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddJsonFile("ocelot.json", optional: false, reloadOnChange: true);
builder.Services.AddOcelot(builder.Configuration);var app = builder.Build();
if (app.Environment.IsDevelopment())
{app.UseDeveloperExceptionPage();
}
await app.UseOcelot();
app.Run("http://localhost:8080");

5.步骤三,编写ServerApi1的接口

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 });}}
}---------------------------
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; }}
}

6.步骤四,编写ServerApi1的Program

var builder = WebApplication.CreateBuilder(args);// 添加Swagger
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(c =>
{c.SwaggerDoc("v1", new() { Title = "ServerAPI1", Version = "v1" });
});builder.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("http://localhost:5000");

步骤五,编写Server2的接口

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() });}}
}
----------------------------
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; }}
}

7.步骤六,编写ServerAPI2的Program

var builder = WebApplication.CreateBuilder(args);// 添加Swagger
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(c =>
{c.SwaggerDoc("v1", new() { Title = "ServerAPI2", Version = "v1" });
});builder.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("http://localhost:8016");

8.测试

采用PostMan直接访问http://localhost:8080/balanced-api/values/info

可实现Server1和Server2的轮询调用。

9.如果需要网关地址和服务是一对一

{"Routes": [{"DownstreamPathTemplate": "/api/values/{action}","DownstreamScheme": "http","DownstreamHostAndPorts": [{"Host": "localhost","Port": 5000}],"UpstreamPathTemplate": "/service1/api/values/{action}","UpstreamHttpMethod": [ "GET", "POST" ]},{"DownstreamPathTemplate": "/api/values/{action}","DownstreamScheme": "http","DownstreamHostAndPorts": [{"Host": "localhost","Port": 8016}],"UpstreamPathTemplate": "/service2/api/values/{action}","UpstreamHttpMethod": [ "GET", "POST" ]}],"GlobalConfiguration": {"BaseUrl": "http://localhost:8080"}
}

http://www.dtcms.com/wzjs/416554.html

相关文章:

  • 护士证注册网站优化近义词
  • 泉州市做网站电商网站建设价格
  • 外贸网站建设的败笔百度搜索风云榜官网
  • 西宁网站制作费用是多少钱郑州网络公司排名
  • 商务部授权的网站建设公司南昌seo网站排名
  • 软件开发资源网站谷歌推广开户
  • 网站设计客户对接流程百度免费安装下载
  • 哈尔滨网站建设30t软文网站名称
  • 2002年做网站多少钱真正免费的网站建站平台运营
  • 网站常用的字体交友网站有哪些
  • 网站建设成本分析百度刷自己网站的关键词
  • 贵阳网站建设有限公司产品如何做市场推广
  • 北京网站制作公司转型方向网页设计与制作书籍
  • 黄山网站建设黄山网站如何让百度收录
  • 微信公众号链接的网站怎么做的app注册推广任务平台
  • 网页游戏交易网站正版搜索引擎优化
  • 华为网站哪个公司做的营销案例最新
  • 有前景的长沙企业网站建设男生最喜欢的浏览器推荐
  • 做政府网站用四川seo排名
  • 建站自学广州网站优化运营
  • 国外做电商网站有哪些方面深度优化
  • 杭州公司注册代办一般多少钱青岛官网seo
  • 网站上线做什么网站开发详细流程
  • 网上效果代码网站可以下载吗深圳企业黄页网
  • 想开个小说网站怎么做市场营销方案怎么做
  • 陕西建设厅官方网站一个新公众号怎么吸粉
  • 营销型网站建设思路河北seo技术交流
  • 青海网页设计与网站建设谷歌网页版入口
  • 新疆住建厅网站官网培训网站源码
  • 沈阳做网站有名公司谷歌chrome安卓版