[译] 用 Node.js 搭建 API Gateway

本文介绍了使用 Node.js 搭建 API Gateway 的实践,探讨了 API Gateway 的作用,包括路由和版本控制、认证、数据聚合等功能。文章指出,API Gateway 可以帮助在微服务架构中解决客户端多样化需求,但应避免过度复杂化。
摘要由CSDN通过智能技术生成

我们团队的后端服务中,一开始只有一个大服务,所有的东西都往里面写,可以想象下,当这个服务变得不断的庞大,将会变得多么难以维护。后来逐渐把一些数据服务抽离成单独的 API 服务,在原有的服务里,就还剩一些模板渲染,数据聚合还有一些耦合的业务逻辑。目前来说拆的还不够干净,我们的目标其实是希望这个旧的服务充当一个 API Gateway,或者说一个给前端用的中间层。单一职责原则,其实是一个很重要的解耦方式,一个服务干好一件事就好了。偶然间看到下面的文章,虽然只是一些很简单的介绍,也让我了解到很多东西。也分享给 大家看看。

阅读原文

客户端一般都需要经过一些认证以及满足在数据传输时的安全要求,才能获得访问微服务架构中的服务的权利。不同的服务在认证上都会或多或少存在一些差异,API Gateway 就像一个集线器,用它来抹平各种服务协议之间的差异,并满足对特定客户端的特殊处理。他的存在,方便了客户端对各类服务的享用。

微服务和消费者

微服务适合用在团队可以独立设计、开发、运行服务的架构体系中。它允许系统中的各个服务存在技术多样性,团队可以在适合的场景使用合适的开发语言、数据库和网络协议。例如,一个团队中使用 JSON 和 HTTP REST,而另一个团队则可能使用 gRPC 和 HTTP/2 或者像 RabbitMQ 这样的消息代理。

有些场景中使用不同的数据序列化方式和协议可能收益巨大,但是需要使用我们服务的客户端可能会有不同的需求。由于存在各种各样的客户端,需要我们支持的数据格式也是多种多样,比如一个客户端可能希望拿到的数据是 XML 格式的,而另一个客户端则希望数据是 JSON。另一个你可能需要面对的问题是,可能不同服务之间存在着一些公共的逻辑(比如权限认证之类)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值