根据请求正文中的数据转发http请求

时间:2018-10-11 07:05:08

标签: java spring servlets routing microservices

我有许多控制器方法的服务。我的任务是将该服务“拆分”为微服务。

微服务本身将部署在其他计算机上。 Nginx通过位置重定向。

主要问题是,有一个位置http://mydomain/myservice/srv/data接收不同类型的请求。

然后根据请求正文中a字段中的值调用after逻辑。

例如,两个请求:

  • <request type="getname" val="1"/>
  • <request type="balance" val="1"/>

第一个请求必须在http://mydomain/myservice1/data/name上转发,第二个请求必须在http://mydomain/myservice2/data/balance上转发

问题:是否有用于此目的的库?

UPD :我正在基于RouteLocator(弹簧云)编写简单的jar;也许还有另一种方法吗? Spring Cloud不是我们熟悉的堆栈。

2 个答案:

答案 0 :(得分:1)

您可能会看看spring integration,它实现了enterprise integration patterns的大部分内容,包括content based routing

答案 1 :(得分:0)

我认为基于主体中不同请求类型代理请求的方法不是代理的好方法。 URI最终应该负责它所服务的请求和响应的类型。

客户端具有有关请求类型以及发送请求的所有必要信息。基于这一事实,我会将您拥有的资源重构为处理不同请求类型的不同资源,并为每个有效负载确定一个显式架构。

总而言之,实现如下所示:

  • 针对不同类型的请求重构服务器逻辑以获取自己的资源URI
  • 移动发送请求到客户端的逻辑,也许利用工厂模式之类的方法