当前位置:  开发笔记 > 编程语言 > 正文

Zuul url映射与春天启动,尤里卡

如何解决《Zuulurl映射与春天启动,尤里卡》经验,为你挑选了1个好方法。

我正在使用微服务架构构建Rest api.我有多个api用户,我们已经进入多个项目.除了我无法将面向用户的用户映射到zuul中的应用程序URL之外,我还准备好了其他所有内容.

面向网址的用户是:user/v1/accountholders/{id}/cards,我的应用程序的实际网址是/ user-cards/v1/accountholders/{id}/cards.

这里的id是路径变量.下面是其他类似的api url,所以如果有一种方法在zuul中一般配置它们.此外,应用程序URL的上下文根也是Eureka中的项目名称.

Other similar urls are:

client side:- /user/v1/accountholders/{id}/cards/{cardid}
application:- /user-cards/v1/accountholders/{id}/cards/{cardid}

client side:- /user/v1/accountholders
application:- /user-cardholder/v1/accountholder

client side:- /user/v1/accountholders
application:- /user-cardholder/v1/accountholder

client side:- /user/v1/accountholders/{id}
application:- /user-cardholder/v1/accountholders/{id}

client side:- /user/v1/accountholders/{id}/accounts
application:- /user-accounts/v1/accountholders/{id}/accounts

client side:- /user/v1/accountholders/{id}/accounts/{accid}
application:- /user-accounts/v1/accountholders/{id}/accounts/{accid}

需要一些帮助来在zuul的属性或yml文件中进行设置.我还没有能够在映射中取得任何进展.任何输入都会有所帮助.

解决: - 从@Daniel获得输入后(这是接受的答案)这是我在zuul配置中使用的: -

zuul:
 routes:
   User-Cards: 
        path: /user/v1/accountholders/*/cards/**
        url: http://desktop-uvkv1ed:9999/user-cards/v1/accountholders
   User-Transactions1: 
        path: /user/v1/accountholders/*/transactions
        url: http://desktop-uvkv1ed:5555/user-transactions/v1/accountholders
        service-id: User-Transactions
   User-Transactions2:  
        path: /user/v1/accountholders/*/accounts/*/transactions
        url: http://desktop-uvkv1ed:5555/user-transactions/v1/accountholders
        service-id: User-Transactions
   User-Accounts: 
        path: /user/v1/accountholders/*/accounts/**
        url: http://desktop-uvkv1ed:7777/user-accounts/v1/accountholders
   User-Cardholders: 
        path: /user/v1/accountholders/**
        url: http://desktop-uvkv1ed:8888/user-cardholders/v1/accountholders

daniel.eicht.. 9

通过提供正确的Zuul配置,可以实现您要做的事情.假设您在端口8081上运行用户持卡人服务,在8082上运行用户帐户服务,以便您可以成功应答针对以下情况的请求:

http://localhost:8081/user-cardholder/accountholders/{id} 
http://localhost:8082/user-account/accountholders/{id}/accounts/{accid}

如果这样做,那么您可以使用以下zuul配置来实现您为这两项服务尝试的内容:

zuul:
  routes:
    cardholder:
      path: /user/accountholders/*
      url: http://localhost:8081/user-cardholder/accountholders/
    account:
      path: /user/accountholders/*/accounts/**
      url: http://localhost:8082/user-accounts/accountholders/

遗憾的是,由于内部和外部网址不同,您还必须添加更多配置 - 即使它们违反相同的后端服务.否则你只需添加选项stripPrefix: false并在内部使用相同的选项.



1> daniel.eicht..:

通过提供正确的Zuul配置,可以实现您要做的事情.假设您在端口8081上运行用户持卡人服务,在8082上运行用户帐户服务,以便您可以成功应答针对以下情况的请求:

http://localhost:8081/user-cardholder/accountholders/{id} 
http://localhost:8082/user-account/accountholders/{id}/accounts/{accid}

如果这样做,那么您可以使用以下zuul配置来实现您为这两项服务尝试的内容:

zuul:
  routes:
    cardholder:
      path: /user/accountholders/*
      url: http://localhost:8081/user-cardholder/accountholders/
    account:
      path: /user/accountholders/*/accounts/**
      url: http://localhost:8082/user-accounts/accountholders/

遗憾的是,由于内部和外部网址不同,您还必须添加更多配置 - 即使它们违反相同的后端服务.否则你只需添加选项stripPrefix: false并在内部使用相同的选项.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有