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

系统网站建设ppt模板下载拼多多代运营公司十大排名

系统网站建设ppt模板下载,拼多多代运营公司十大排名,c 做网站需要什么知识,无经验可以做网站编辑吗请求聚合 当下游服务是返回404状态码,在返回结果中,其对应的值则为空值, 即使聚合路由中所有的下游服务都返回404状态码,聚合路由的返回结果也不会是404状态码。 Ocelot允许你声明聚合路由,这样你可以把多个正常的Ro…

请求聚合

在这里插入图片描述
当下游服务是返回404状态码,在返回结果中,其对应的值则为空值,

即使聚合路由中所有的下游服务都返回404状态码,聚合路由的返回结果也不会是404状态码。

Ocelot允许你声明聚合路由,这样你可以把多个正常的Routes打包并映射到一个对象来对客户端的请求进行响应。比如,你请求订单信息,订单中又包含商品信息,这里就设计到两个微服务,一个是商品服务,一个是订单服务。如果不运用聚合路由的话,对于一个订单信息,客户端可能需要请求两次服务端。实际上这会造成服务端额外的开销。这时候有了聚合路由后,你只需要请求一次聚合路由,然后聚合路由会合并订单跟商品的结果都一个对象中,并把这个对象响应给客户端。使用Ocelot的此特性可以让你很容易的实现前后端分离的架构。
为了实现Ocelot的请求功能,你需要在ocelot.json中进行如下的配置。这里我们指定了了两个正常的Routes,然后给每个Route设置一个Key属性。最后我们再Aggregates节点中的RouteKeys属性中加入我们刚刚指定的两个Key从而组成了两个Routes的聚合。当然我们还需要设置UpstreamPathTemplate匹配上游的用户请求,它的工作方式与正常的Route类似。

 public class Goods{public int Id { get; set; }public string Content { get; set; }}public class Orders{public int Id { get; set; }public string Content { get; set; }}

》》服务1

namespace OService1.Controllers
{[Route("api/[controller]")][ApiController]public class GoodController : ControllerBase{        [HttpGet("{id}")]public ActionResult<string> Get(int id){var item = new Goods{Id = id,Content = $"{id}的关联的商品明细",};return JsonConvert.SerializeObject(item);}}
}

》》服务2

namespace OService1.Controllers
{[Route("api/[controller]")][ApiController]public class OrderController : ControllerBase{        [HttpGet("{id}")]public ActionResult<string> Get(int id){var item = new Orders {Id=id,Content=$"{id}的订单明细",};return JsonConvert.SerializeObject(item);}}
}

》》配置
分三个文件配置

//ocelot.good.json
{"DownstreamPathTemplate": "/api/Good/{id}","DownstreamScheme": "http","DownstreamHostAndPorts": [{"Host": "localhost","Port": 1001}],"UpstreamPathTemplate": "/good/{id}","UpstreamHttpMethod": [ "Get", "Post" ],"Key": "Good","Priority": 2}
//ocelot.order.json
{"DownstreamPathTemplate": "/api/Order/{id}","DownstreamScheme": "http","DownstreamHostAndPorts": [{"Host": "localhost","Port": 1002}],"UpstreamPathTemplate": "/order/{id}","UpstreamHttpMethod": [ "Get", "Post" ],"Key": "Order","Priority": 2}
// ocelot.all.json"Aggregates": [{"RouteKeys": ["Good","Order"],"UpstreamPathTemplate": "/GetOrderDetail/{id}"}]

或者放在一个配置文件

{"Routes": [//路由一{"DownstreamPathTemplate": "/api/Good/{id}", //下游路径"DownstreamScheme": "https", //http,https"DownstreamHostAndPorts": [{"Host": "localhost", //下游地址"Port": 1001//下游端口}],"UpstreamPathTemplate": "/good/{id}", //上游路径"UpstreamHttpMethod": [ "Get" ],"Key": "Good"},//路由二{"DownstreamPathTemplate": "/api/Order/{id}","DownstreamScheme": "https","DownstreamHostAndPorts": [{"Host": "localhost","Port": 1002}],"UpstreamPathTemplate": "/order/{id}","UpstreamHttpMethod": [ "Get" ],"Key": "Order"}],"Aggregates": [{"RouteKeys": ["Good","Order"],"UpstreamPathTemplate": "/GetOrderDetail/{id}"}],"GlobalConfiguration": {"BaseUrl": "https://localhost:1000"}
}

在这里插入图片描述
Ocelot将始终使用聚合请求返回内容类型application/json。还有需要注意的是聚合请求不会返回404请求。
如果两个下游都返回404状态码的话,这里聚合后的响应也不会返回404,
只会返回空的json串,拿上面的实例,如果两个下游都返回404的话,那么他的响应代码类似下面这样:

{"Good": ,"Order":
}
http://www.dtcms.com/wzjs/464538.html

相关文章:

  • 静态网站挂马营销策划的六个步骤
  • 滁州做网站电话号码百度搜索网页
  • 龙岩网站设计 信任推商吧做词百度关键词优化多少钱一年
  • 如何在百度建设企业网站长沙seo服务哪个公司好
  • 做pc端网站流程百度口碑网
  • ui下载高清素材的网站有哪些seo建站技术
  • 网站建设案例步骤seo搜索引擎营销工具
  • ibm公司做网站国际新闻视频
  • 问卷调查网站JAVA怎么做注册google账号
  • 长沙企业网站建设团队网站的推广
  • 网站开发公司业务沈阳网站优化
  • 定制版网站建设详细报价互联网营销推广服务商
  • 石家庄企业网站制作新闻早知道
  • 建立局域网网站市场调研报告怎么做
  • 湘潭做网站广告的公司免费建站免费推广的网站
  • 湖南交通建设监理协会网站保定网站建设方案优化
  • 电商网站有那些长尾关键词是什么意思
  • 网站改版 降权电话营销话术
  • 一起做财经网站站长工具网址是多少
  • 北京装饰公司招聘工长排名优化方案
  • 回合制网页游戏大全北京seo优化wyhseo
  • 网站上做地图手机上显示google登录入口
  • 北京平台网站建设找哪家网站优化推广教程
  • 一汽大众网站谁做的怎么在百度上推广自己的公司信息
  • 青海网站建设费用关键词查找工具
  • 成都网站建设工作舆情监测系统
  • 柳州网站建设推荐万网域名查询
  • 石狮网站建设seo网站分析报告
  • 公司注册名字查询长沙seo就选智优营家
  • 东莞工业品网站建设互联网营销的十五种方式