Har*_*ish 6 spring-boot netflix-eureka netflix-zuul spring-cloud-netflix
我是初学云,并通过网上的一些例子和资料让自己感到舒服.但是,在阅读ZUUL时,有些站点在ZUUL中配置了路由,application.yml其他一些站点提到请求将被转发到相应的微服务,无需明确配置路由.我有点困惑.例如,在下面的场景中,配置路由或自动让zuul路由是什么方法?
TIA ..
小智 10
您是否使用Zuul(通过Eureka知道微服务地址)在您的微服务之间转发请求?如果是这种情况,则使用服务器端负载平衡模式.
如果您使用发现服务(在您的情况下是Eureka),我认为最好的方法是对所有服务间请求(在您的系统内)使用客户端负载平衡模式.(您可以使用Ribbon或RestTemplate).
您可以将Zuul用作系统的统一前门,这允许浏览器,移动应用程序或其他用户界面使用来自多个主机的服务,而无需管理每个主机的跨源资源共享(CORS)和身份验证.
例如:客户端(移动应用程序)请求所有图片评论.客户不需要知道评论服务地址.只需要代理地址,Zuul会将请求转发给正确的服务.为此,您可以在application.yml/.properties通过
zuul.routes.comments.path=/comments/**
zuul.routes.comments.service-id=comments
Run Code Online (Sandbox Code Playgroud)
请求将是GET www.myproxy.mycompany.com/comments.别忘了你的服务名称application.yml/.properties是非常重要的(spring.application.name).它是Zuul路由中的service-id(在Eureka中使用相同的标识符).
出于某种原因,您的系统需要请求外部服务(正如您在第3个注释中提到的那样).在这种情况下,您的外部服务不是发现客户端,Zuul无法从Eureka中查找服务ID.你用路线作为
zuul.routes.currencyprovider.path=/currencies/**
zuul.routes.currencyprovider.url=https://currencies.net/
Run Code Online (Sandbox Code Playgroud)
与这条路线,一切/currencies/**从服务请求THROUGH Zuul将完成.通过这种方法,您的所有系统都有一扇门.这是API网关模式.
有时,您的系统需要聚合来自不同服务的多个结果以响应客户端请求.您可以在代理服务器中执行此操作(在您的情况下为Zuul).
| 归档时间: |
|
| 查看次数: |
8547 次 |
| 最近记录: |