首页 » 智能家居 » 若何设计一个网关?来自天猫精灵的架构供你参考

若何设计一个网关?来自天猫精灵的架构供你参考

德才装饰股份通讯 2025-03-16 0

扫一扫用手机浏览

文章目录 [+]

原创: 周隹 来自:天猫精灵技能

编者按

若何设计一个网关?来自天猫精灵的架构供你参考 若何设计一个网关?来自天猫精灵的架构供你参考 智能家居

在一个大型的互联网架构中,网关是一个不可或缺的组成部分,每每与大流量、高并发的技能直接干系。
本文先容了网关技能的背景知识以及设计网关的基本原则和方法。
期待后续更精彩的技能文章为您呈现。

若何设计一个网关?来自天猫精灵的架构供你参考 若何设计一个网关?来自天猫精灵的架构供你参考 智能家居
(图片来自网络侵删)

天猫精灵设备网关是阿里巴巴人工智实验室专门为天猫精灵供应的统一接入网关,涉及天猫精灵设备的高下行数据都会经由该网关,包括但不限于各设备模块状态变革(系统、闹钟、播放器、IoT设备等等)、用户唤醒天猫精灵后的语音流、以及云端对天猫精灵的掌握指令、TTS音频流等。
为什么我们须要设备网关,设备网关有哪些职责,设计设备网关时须要关注哪些问题呢?

为什么须要设备网关

随着互联网的发展,业务场景越来越繁芜,单一Web运用已无法知足业务的发展诉求,微做事架构逐渐成为了主流。
为了对客户端屏蔽做事端架构,实现做事真个快速迭代,API 网关基本成为了微做事架构的标配组件。
API 网关作为客户端访问做事真个唯一入口,内部做事只需专注于业务逻辑,与业务无关的通用功能都提取到API 网关统一处理,使得搭建一个内部做事变得更加大略、高效。
天猫精灵发展速率非常快,设备类型较多,认证鉴权办法有好几种,运用协议也有数个版本,如果没有网关,每个内部做事都须要支持多种认证鉴权办法、理解多个版本的运用协议,内部做事的开拓本钱会急剧上升。

天猫精灵设备既支持用户主动语音交互利用,也支持用户通过APP进行远程点播、远程掌握,为保障体验相应须要及时,设备端和做事端须要能够全天候全双工的通信通道,设备端可以主动给做事端发送数据,做事端也可以主动推送数据给设备端。
如果没有网关,每个内部做事都须要与设备端坚持这么一条全双工通道,对做事端、设备真个资源本钱都是极大的摧残浪费蹂躏。

从安全性来看,如果没有网关,每个内部做事都须要对外部网络暴露来供应访问能力,大大增加了被黑客扫描攻击的几率,不利于内部做事的安全保障。

设备网关职责

设备网关也是一种API网关,API网关具有的职责也适用于设备网关,除此之外设备网关也有自己的一些特有职责,总的来看设备网关具备这些职责:

认证鉴权

作为做事端对外暴露的唯一入口,认证鉴权是非常必要的。
通过认证鉴权,确保要求的用户、设备是合法的,要求的资源是有权限的,将不合法的设备要求在入口处就进行拦截丢弃,保障了内部做事、内部资源的访问安全。

协议适配

内部做事之间常日是基于高效RPC的办法进行通信,而对外与设备端交互利用的可能是其他协议。
网关供应了协议适配的能力,将设备真个要求数据转成内部RPC的数据格式后再分发给内部做事,将内部做事下发的RPC数据转成设备端可理解的协议后再转发给设备端。
其余,协议随着业务的发展在不断迭代,同一个功能的接口可能迭代了数个版本,数据构造可能也进行了调度,而设备端一旦流利出去后不一定能得到及时升级,可能还有相称一部分设备端在利用着旧版本的接口,为了减少内部做事的掩护本钱,网关也会供应新旧版本协议的适配翻译。

路由分发

路由分发可以说是网关最核心的职责,一个无法做路由分发的网关根本就称不上是个网关。
设备端发送过来的要求,网关须要能根据要求信息进行精确的路由,将要求分发给得当的后端做事;后端做事发送过来的数据(对要求的相应或后端做事主动推送),网关须要能精确路由分发给指定的设备。
路由分发常日还会具备负载均衡、流量灰度的特性,根据后端做事的康健状态、负载信息、机器权重、灰度分组等进行要求分发。

限流熔断

限流和熔断也是网关比较主要的能力。
每个功能接口、每个内部做事都有自己正常合理的访问频次区间,超过阈值的常日是非授权利用,可能会导致内部做事超过安全水位影响做事的稳定性,网关供应通用的限流能力,将超过阈值的要求进行拦截处理。
内部做事也可能由于各种缘故原由临时涌现不稳定的情形,比如某台机器可能因宿主机临时负载飙升导致相应韶光拉长,若要求连续分发到这台有问题的机器上可能会使情形加剧恶化,严重时乃至形成雪崩效应。
网关供应的熔断能力可以在机器或做事非常时自动将该机器该做事屏蔽,避免情形连续恶化,在机器做事规复正常时,网关自动将该机器做事纳入到正常做事分组中。

日志审计

既然网关是设备端访问做事真个唯一入口,进出数据都会经由网关,网关进行日志审计也是顺理成章的。
要乞降相应都进行打点记录,做事访问的数据情形都可自动采集剖析,如QPS、RT、成功率、设备端分布等,根据这些数据可以进行业务剖析、监控告警、自动运维等等。

连接管理

前面提到了天猫精灵须要有全天候全双工的连接通道,网关作为设备端与做事真个唯一出入口,是连接通道的供应方。
设备连接到哪一台网关机器上、当前连接是否存活都须要由网关进行管理。

音频流分发处理

天猫精灵是个智能语音设备,输入输出有很大一部分是语音流,而后端做事大部分不具备语音流处理的能力,网关还须要进行语音流的分发处理能力,例如将语音流转成文本、将文本转针言音流等。

如何设计一个网关

设计一个网关时,除上面提到的功能需求外,还须要考虑到运营需求、运维需求、性能需求。

功能需求

功能需求上面已经先容过,这里不太细述。

运营需求

作甚网关的运营需求呢?后端做事是会不断增加不断扩展的,面向开拓者供应的平台能力我称之为网关的运营需求。

1、API生命周期管理

从API的定义、测试、灰度、上线到终极下线,支持日常管理、版本管理、快速回滚等,供应完善的平台管理能力。

2、流量掌握

业务流量不是一成不变的,随着业务的发展、匆匆销活动的投入等,流量可能时有变革;做事的优先等级也可能各有不同,在资源受限的情形下,优先保障高优先级的做事。
在这些情形下,须要有能力供应给后端做事进行动态的流量掌握。

3、拦截器管理

随着业务发展,功能接口可能须要不断迭代,前置参数校验、协议适配转换、缺点处理等都可能会变革调度,网关平台须要能够让业务方自助修正拦截器,否则每次变动都须要依赖网关发布,网关会成为业务瓶颈,网关频繁发布对做事稳定性也有较大影响。

4、开拓支持

供应在线调试工具,自动天生API文档、SDK,大大降落开拓者的接入难度,提高开拓效率。

5、监控告警

给业务方供应在线实时查询、订阅做事访问数据的能力,并可配置规则进行业务告警,让业务方随时节制自己做事的运行情形。

运维需求

网关的运维需求紧张表现在网关的稳定性、高可用上。
网关作为设备端与做事真个唯一出入口,是逻辑上的单点,一旦发生故障将造玉成部系统的不可用,对企业来说可能是致命的。
如何担保网关能够7X24稳定运行便是必须考虑的问题。

1、水平扩展

业务访问量与发展情形、匆匆销活动等高度干系,网关须要能够根据业务情形、负载情形进行动态扩缩容。

2、流量迁移

机器是不可靠的,在涌现故障时或即将下线掩护时,须要有机制能够将流量进行平滑迁移,避免用户受到影响。

3、优雅上线

做事刚上线时,可能会须要一段韶光进行初始化准备事情(缓存加载预热、JIT等),在此期间做事可能负载会较高,若刚上线就分配太多流量可能会导致做事被压垮。
为了避免这种情形,网关须要支持优雅上线的能力,即通过一段韶光逐渐加量的办法加到预设的正常流量。

4、动态更新

网关的每一次变更都可能会对做事可用性带来影响,只管即便将功能做成插件的形式支持热更新,可避免对网关的频繁改动,确保做事的稳定性。

性能需求

作为设备端与做事真个唯一出入口,所有流量都会经由网关,可想而知网关的压力是极大的。
如果不能担保网关的高性能,随着业务的快速增长,网关可能会须要跟随后端做事的机器同步增长,带来本钱的极大上升,这对企业是无法忍受的。

末了

本文紧张先容了设备网关的职责和设计思路,至于设备网关的一些细节设计与实现,如“设备网关的网络协议选型”、“面向设备网关的GC优化”、“心跳保活与重连机制的设计”等,会在后续文章里连续先容。

标签:

相关文章

中国火器近代史:从明朝到现代的演变

一、明朝:火器的黄金时期火龙三眼铳明朝(1368-1644年)是中国火器发展的黄金时期。明朝建立之初,火器在军事上的运用已经相称广...

智能家居 2025-03-16 阅读0 评论0

嵊州市收受接收废电缆

首先,我们来理解一下废电缆回收背景。废电缆是指在电力领域中用于传输和分配电能的电线电缆,其紧张身分是金属导体和绝缘材料。由于电线电...

智能家居 2025-03-16 阅读1 评论0