gpt4 book ai didi

spring-boot - Zuul url 映射与 spring boot,Eureka

转载 作者:行者123 更新时间:2023-12-04 03:17:55 27 4
gpt4 key购买 nike

我正在使用微服务架构构建 Rest api。我为用户提供了多个 api,我们已经制作了多个项目。除了我无法将面向用户的 url 映射到 zuul 中的应用程序 url 之外,我已经准备好了其他一切。

面向用户的 url 是:user/v1/accountholders/{id}/cards,我的应用程序的实际 url 是/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

最佳答案

通过提供正确的 Zuul 配置,可以实现您想要做的事情。假设您在端口 8081 上运行 user-cardholder 服务,在 8082 上运行 user-account 服务,以便您可以成功响应请求:

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/

不幸的是,由于内部和外部 url 不同,您还必须添加更多配置——即使它们与相同的后端服务背道而驰。否则,您可以添加选项 stripPrefix: false并在内部和外部使用相同的。

关于spring-boot - Zuul url 映射与 spring boot,Eureka,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34301614/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com