在Openshift上部署Spring微服务

时间:2019-05-09 11:35:13

标签: openshift spring-cloud openshift-3

我需要在Openshift上部署一些微服务。这些微服务是使用Spring Cloud实现的。我使用Spring Eureka进行服务发现/负载平衡,并使用Spring Zuul进行服务路由。

据我了解,Openshift已经通过Kubernetes提供了这些功能(服务发现,负载平衡,路由)。

话虽如此,我可以将Spring Eureka和Spring Zuul与o​​penshift平台集成吗?

将Spring Eureka和Spring Zuul组件添加到Openshift中是否是多余的,因为该平台本身已经提供了这些微服务功能?

我当时正在考虑删除服务注册表和路由Spring组件,而只是使用Openshift实现路由。但是,这将使该项目严重依赖此云平台。

您的方法是什么?使用OpenShift提供的功能(路由,负载平衡)还是使用Spring框架提供的功能,并尝试将它们与云平台集成?

谢谢

2 个答案:

答案 0 :(得分:1)

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

如果使用平台,请使用平台提供的功能。 Kubernetes服务将在任何基于Kubernetes的平台上使用。因此,我认为这是很容易更换的组件,可将您与平台的耦合保持在较低水平。如果Zuul仅用于路由,则路由可能会更加困难;将其替换为OpenShift路由器。如果Zuul还负有其他责任,例如安全,那么最好坚持Zuul。

答案 1 :(得分:0)

我同意@Jeff,我想补充一下使用 spring zuul 作为网关而不是 openshift路线

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