如何在微服务架构中实现API网关?

  • 回答 (5)
  • 关注 (1)
  • 查看 (242)

随着微服务架构概念的提出,API网关成为了微服务架构的一个标配组件,如何在微服务架构中实现API网关呢?都是使用的什么解决方案?

等待你的阿公等待你的阿公提问于
葉天楓梦想是要有的,万一实现了呢回答于

就我个人理解而言,我推荐你可以使用三种方法:完全自定义,基于框架和基于产品。

你可以采用API网关的标准从头开​​始构建你的API网关,但是,不建议我这样做,除非你使用开放的源代码或第三方软件来构建你的API,否则完全从0开始构建起你的API网关,这将是非常没有效率的。不要重复发明(造)轮子"做为编程界的名言,是有它的道理的

第二种方法是使用知名的组件如Netflix Zuul和Eureka server来构建。也可以使用Java Spring,Zuul和Redis等,来构建你的完整的API网关。这种方法具备非常大的优点,你仍然可以控制你的API网关,而且并不会重新发明轮子,做无意义的事情。

第三种方法是在云上或本地使用现成的产品。比如,Apigee网关服务,腾讯云API,IBM Bluemix API Connect和Nginx都是云和本地的好选择。好处是易开发,快速构建

我主要推荐是的第二种办法

微服务架构为开发人员提供了很多的自由,以能实现相关微服务时可以使用非常多的技术堆栈。个人建议使用基于HTTP的REST作为其接口。但这总是不可能的。在这种情况下,有多个级别的协议,可以使用一些中间组件来编排这些微服务。当我们需要一个中等重量的ESB时。大多数API网关解决方案都能够处理这种类型的消息和协议转换。因此,在开发涉及多个基于协议的集成的MSA时,这是一个很好的选择。

akjok54stay hungry stay foolish回答于

在回答你这个问题之前,我觉得先了解API网关解决了哪些的问题,非常重要。在微服务架构中,我们经常使用API​​ Gateway进行以下操作:

  • 提供简单的服务界面
  • 处理多个版本的微服务
  • 有助于扩展微服务
  • 保持微服务的安全,同时可以访问
  • 微服务的访问控制
  • 隐藏微服务实现的复杂性

在微服务架构中实现API网关有很多办法。

例子:

  1. 采用API网关的标准从头开​​始构建你的API网关
  2. Netflix的NGINX
  3. Home grown

在我看来,如果你是初创企业,可以选择云服务厂商的方案或NGINX这样的标准解决方案,可以让你们的创业初期要走得平坦很多。

对于大公司来说,自己定制解决方案比较好。通过使用标准的API网关产品,然后在其上添加功能来完成。

乌鸦病人出院后,症状未消除。回答于

这不是有一篇很好的文章吗?自建API网关「架构设计篇https://cloud.tencent.com/developer/article/1099043,讲解得非常好,推荐一下

宇ccccValar Morghulis回答于

这个很简单啊,百度一下不就知道,不过实现起来比较难,常用的API网关方案有Nginx + Lua,Spring Cloud Zuul等等,看你具体需求了

印度陆军医院补锅型码农回答于

可以将微服务分解为组件,找出每个组件需要在内部和外部公开的接口,然后围绕接口构建API。完成后,允许开发人员与外部接口进行交互,并允许其他组件通过内部接口进行交互。

所属标签

可能回答问题的人

  • 腾讯云serverless团队

    腾讯云 · 产品团队 (已认证)

    71 粉丝0 提问24 回答
  • Mason-Serverless

    腾讯 · 产品经理 (已认证)

    3 粉丝0 提问9 回答
  • Tina

    腾讯云 · 产品经理 (已认证)

    17 粉丝0 提问7 回答
  • Alfred

    腾讯云 · 高级产品经理 (已认证)

    1 粉丝0 提问6 回答
  • 腾讯云中间件团队

    30 粉丝0 提问0 回答

扫码关注云+社区

领取腾讯云代金券