在网关服务中请求聚合是允许把多个请求打包成一个响应给请求方,这样不仅可以节省请求方的请求数量,还可以根据需求的情况整合不同业务数据响应请求。BeetleX.Bumblebee虽然并没有内置这一功能,但可以通过扩展的形式来支持请求聚合,接下来就介绍一下组件的聚合插件使用。

引用插件

可以通过Nuget安装最新版本BeetleX.Bumblebee.Aggregation,安装后通过网关加载插件(需要更新BeetleX.FastHttpApi 到1.7.7.8)

gateway.LoadPlugin(typeof(Bumblebee.Aggregation.Aggregate).Assembly);

注册了插件后,可以在管理的插件页面看到相关插件

 插件默认是不启用,启用前需要配置相关的Url聚合。

应用需求

现在有两个请求,一个是获取雇员信息,另一个则获取雇员相关订单,情况如下:

http://192.168.2.25:9090/employee/2 

http://192.168.2.26:9090/orders/2

接下来希望访问以下地址来整合两个接口的数据输出

http://host/GetEmployeeOrders?id=2

配置

接下来根据上面的情况来制定一个聚合配置,点击插件进行配置页面

 配置信息是一个数组结构,可以根据需要来定义多个聚合请求路径。Url表示聚合的请求路径,OutputError用于描述如果某个请求有错误是否把错误输出,Actions相应聚合的多项请求地址。针对刚提到的需要配置如下:

[{"Url": "/GetEmployeeOrders","OutputError": true,"Actions": [{"Name": "Employee","Host": "http://192.168.2.25:9090","Url": "/employee/{id}"},{"Name": "Orders","Host": "http://192.168.2.26:9090","Url": "/orders/{id}"}]}
]

配置支持通过{xxx}的方式把请求的参数传递到聚合请求中。接下来尝试访问一下/GetEmployeeOrders(注意要先启用插件)

由于没有带上参数所以访问返回了404,接下来带上正式的参数

当提供正确的参数后就把请求数据聚合到正常结果输出

不输出错误

有时候为了方便处理不想输出错误,当聚合Url有错误只响应null。这样只需要把OutputError调整一下即可

[{"Url": "/GetEmployeeOrders","OutputError": false,"Actions": [{"Name": "Employee","Host": "http://192.168.2.25:9090","Url": "/employee/{id}"},{"Name": "Orders","Host": "http://192.168.2.26:9090","Url": "/orders/{id}"}]}
]

通过以上介绍组件制定聚合处理是不是非常方便呢,如果想更多了解组件可以访问

http://beetlex.io

BeetleX网关之请求聚合相关推荐

  1. BeetleX网关自定义请求日志插件

    网关转发日志非常有用可以进行数据和行为分析,组件提供一个默认的日志插件,但默认记录的东西比较简单不一定满足业务的需要:其实组件提供信息非常完善足以满足不同情况的需要.在这里介绍一下如何实现一个日志插件 ...

  2. Ocelot(二)- 请求聚合与负载均衡

    Ocelot(二)- 请求聚合与负载均衡 作者:markjiang7m2 原文地址:http://letyouknow.net/ocelot/ocelot-tutorial-2.html 源码地址:h ...

  3. Bumblebee微服务网关之请求统一验证

    对于微服务网关来说,统一请求验证是一个比较重要和常用的功能,通过网关验证后台服务就无须关注请求验证:对于多语言平台的服务而言制定验证方式和变更验证配置都是一件比较繁琐和工作量大的事情.Bumblebe ...

  4. Ocelot简易教程(四)之请求聚合以及服务发现

    上篇文章给大家讲解了Ocelot的一些特性并对路由进行了详细的介绍,今天呢就大家一起来学习下Ocelot的请求聚合以及服务发现功能.希望能对大家有所帮助. 作者:依乐祝 原文地址:https://ww ...

  5. http数字请求 (错误请求聚合)

    http数字请求 (错误请求聚合) 100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分.(HTTP 1.1新) 101 Switching Protocols 服务器将遵从客 ...

  6. Ocelot(二)- 请求聚合

    Ocelot(二)- 请求聚合 原文:Ocelot(二)- 请求聚合 Ocelot(二)- 请求聚合与负载均衡 作者:markjiang7m2 原文地址:https://www.cnblogs.com ...

  7. 使用BeetleX网关对Web应用进行灰度发布

    灰度发布可以更有效地保障服务运作的可靠性,即能让服务得以更新的同时也不影响业务动作.BeetleX网关支持全动态化实时配置,对应用进行灰度发布可以说是非常便利. 灰度发布在BeetleX网关中涉及到以 ...

  8. java在线支付---03_分析易宝支付网关的请求协议

    03_分析易宝支付网关的请求协议 创梦综合技术qq交流群:CreDream:251572072 -------------------------------------- 1.buildHmac() ...

  9. TP5后端,VUE前端请求聚合数据新闻接口

    问题描述: TP5当后端,VUE当前端, 请求聚合数据新闻接口 演示效果如下: ps: 最开始加载页面的时候,只加载本地的文件(因为请求次数有限制) 问题解决: 1: vue 文件: <temp ...

最新文章

  1. 一个项目可以有多个源代码路径
  2. 走在网页游戏开发的路上(八)
  3. git push VS git fetch
  4. XML教程和SVG可伸缩矢量图形 (Scalable Vector Graphics)教程
  5. 简述DNS进行域名正向解析的过程。
  6. java jvm对象_【Java】JVM
  7. .net pdf转图片_图片转PDF怎么转?推荐两种图片转PDF方法
  8. 学习笔记(47):Python实战编程-pack布局
  9. 海康ehome协议分析(1):前言
  10. Linux新手快速入门(万字超详细)
  11. 计算机对环境保护的应用,计算机技术在环境保护中的应用
  12. 35岁技术人如何转型做管理?mysql删除数据语句
  13. termux python_【小白教程】Termux实现安卓手机Python编程
  14. 微信公众平台开发调试
  15. 2022年15款实用有趣的小程序推荐。
  16. 月薪30k的程序员应聘时面试官都会问什么问题
  17. 隐马尔科夫链(HMM)
  18. 【控制control】机械臂运动学、动力学模型
  19. 计算机基础:调整显示器分辨率及刷新率
  20. Python的pickle使用

热门文章

  1. SharePoint 2010 master page 控件介绍(5):其他
  2. Asp.NET中如何一次性下载多个文件
  3. 用SQL Server Compact Edition创建移动应用程序 【转载】
  4. Sql Server2005对t-sql的增强之Cross Apply
  5. Teams App 扫描二维码
  6. 如何添加引文标_如何在Google文档中查找和添加引文
  7. diy感应usb摄像头拍照_DIY无线感应充电器
  8. 什么是Adobe Lightroom,我需要它吗?
  9. Excel导入MS SQL SERVER 操作
  10. 解决在Python中使用Win32api报错的问题,No module named win32api