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

系统网站建设ppt模板下载站内优化

系统网站建设ppt模板下载,站内优化,重庆装修价格明细表,佛山建网站费用请求聚合 当下游服务是返回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/368860.html

相关文章:

  • 用c 做网站短视频营销案例
  • 东莞seo建站优化费用b站推出的短视频app哪个好
  • 想开个视频网站该怎么做怎样在百度上发布自己的文章
  • 域名备案需要有网站吗百度推广费用预算表
  • 小说主角重生之后做网站seo优化轻松seo优化排名
  • 中国建设监督网站seo网络优化专员
  • kindeditor wordpress西藏自治区seo 标题 关键词优化
  • 云开发网站腾讯广点通
  • 浙江建设职业技术学院网站网络推广企划
  • 青岛专业做网站的公司网络优化软件有哪些
  • 电影网站建设java百度推广登录后台登录入口
  • 做化工回收的 做那个网站什么都能搜的浏览器
  • wordpress 网站的占有阿里域名注册网站
  • 域名及网站建设实验报告推广赚佣金的平台
  • 免费自助制作永久网站太原百度seo排名
  • 网站怎么做内链百度网页版链接
  • wordpress 閱讀 主题惠州seo按天付费
  • 龙岗网站建设哪家好企业网络策划
  • 政府门户网站建设 规范他达拉非的副作用和危害
  • 公司网站的维护seo有哪些作用
  • 母了猜猜看游戏做网站营销型企业网站有哪些
  • 河南新闻网站优化排名方法
  • 火影忍者网页制作网站宣传推广方案范文
  • 做视频网站要用到的服务器厦门百度竞价推广
  • 手机商城网站建设设计方案学生个人网页制作代码
  • 高邮做网站app开发工具哪个好
  • 电子商务网站建设是学什么软件网络营销包括哪些
  • 政府单位建设网站的申请报告大数据营销系统多少钱
  • 高新快速建设网站找哪家如何建立一个网站平台
  • 烟台网站建设哪家好计算机培训机构排名