sidecar构架之dapr中间件
背景
Dapr 允许通过链接一系列中间件组件来定义自定义处理管道。 请求在路由到用户代码之前经过所有已定义的中间件组件,然后在返回到客户机之前,按相反顺序经过已定义的中间件,如下图中所示。
中间件示例
uppercase中间件示例
我们拿 sidecar构架之dapr的跨物理机负载均衡的部署来继续实践一下将http请求的body内容转换为大写。
配置dapr3虚拟机
因为我们是通过dapr3(service2) 去 调用dapr1和dapr2的(service1)服务,那么我们在入口dapr3机器上配置中间件
~/.dapr/components/uppercase.yaml
1 | apiVersion: dapr.io/v1alpha1 |
~/.dapr/config.yaml
1 | apiVersion: dapr.io/v1alpha1 |
增加接口
我们增加一个/word
的post接口,接口返回目标机器的ip和我们body参数的英文字母
1 | const express = require('express') |
调用结果
我们来调用/word
接口,发现我们的body请求参数abc
,通过middleware.http.uppercase
大小写中间件,转换为大写,并向下游的service1
发送请求,下游2台负载均衡的service1
服务,均接受到中间件改变的大写参数。