在 Openshift 上部署 Spring 微服务

4
我需要在Openshift上部署一些使用Spring Cloud实现的微服务。我使用Spring Eureka进行服务发现/负载平衡,Spring Zuul用于服务路由。
据我所知,Openshift已经通过Kubernetes提供了这些功能(服务发现、负载平衡、路由)。
既然如此,我可以将Spring Eureka和Spring Zuul集成到Openshift平台中吗?
将Spring Eureka和Spring Zuul组件添加到Openshift中是否会造成冗余,因为该平台本身已经提供了这些微服务功能?
我想删除服务注册表和路由Spring组件,只使用Openshift实现路由。然而,这会使项目过度依赖于该云平台。
你的方法是什么?使用OpenShift提供的功能(路由、负载平衡)还是使用Spring框架提供的功能,并尝试将它们与云平台集成?
谢谢
2个回答

2

确实是多余的。 Eureka可以被Kubernetes服务替代。(它们为一组Pod提供负载均衡器和域名) Zuul可以被OpenShift路由替代以公开您的服务。

如果您正在使用平台,请使用平台提供的功能。 Kubernetes服务将在任何基于Kubernetes的平台上使用。因此,我认为这是易于替换并使您与平台耦合度低的方法。如果Zuul仅用于路由,则路由可能更加困难;请使用OpenShift路由器替换它。如果Zuul还具有安全等其他职责,则最好坚持使用Zuul。


0

我同意@Jeff的观点,并想补充一下关于使用spring zuul作为网关而不是openshift routes

  • 如果您使用spring zuul作为网关,您可以从单个点访问集群。否则,您的客户端必须知道openshift routes公开的urls。这会增加代码的复杂性并难以维护。使用API网关的一个主要好处是它封装了应用程序的内部结构。
  • 另一个问题是安全性。如果您使用openshift routes公开您的内部微服务,实际上您直接向公共世界打开了微服务的大门。此外,如果您想使用JWT或安全令牌,则应选择spring zuul
  • API网关为每种类型的客户端提供特定的API。这减少了客户端和应用程序之间的往返次数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接