mPaaS云平台运维系列之—移动网关产品介绍

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
日志服务 SLS,月写入数据量 50GB 1个月
mPaaS订阅基础套餐,标准版 3个月
简介: 移动网关服务(Mobile Gateway Service,MGS)是mPaaS提供的连接移动客户端与服务端的组件产品。该组件简化了移动端与服务端的数据协议和通讯协议,能够显著提升开发效率和网络通讯效率。本章主要介绍产品基本概念。

1.1    产品介绍

移动网关服务(Mobile Gateway ServiceMGS)是mPaaS提供的连接移动客户端与服务端的组件产品。该组件简化了移动端与服务端的数据协议和通讯协议,能够显著提升开发效率和网络通讯效率。

1.1.1  功能简述

如图1-1所示,目前MGS已有的功能分别是:API注册、API配置、API限流、API授权、API模拟、API缓存、API测试、API分析、数据加密。

1API注册:可以在移动开发平台上轻易、快速、方便的注册API,可以快捷的开启、关闭API

2API配置:可以移动开发平台上快捷的调整API的配置,比如超时时间、缓存等等。

3API限流:常用于大促、活动,类似双十一等,主要为了防止客户端短时间高并发大量请求打挂服务器。

5API授权:是指一个API在调到网关之后,网关再调客户服务器上进行鉴权的一个服务,当授权通过后请求才能打到服务端。

6API模拟:客户端发起请求到达网关后,网关模拟服务端,直接将模拟的数据返回客户端。

7API缓存:在大并发的情况下,网关将客户请求的结果缓存在本地,在缓存过期之前,可以直接返回给客户端,可以提高整个并发的流量,提升客户端请求速度的体验。

8API测试:网关模拟客户端的请求,将模拟数据发到服务端,用于测试服务端。

9API分析:API分析提供常用的API的统计数据(比如API调用量、API报错量、平均调用耗时、API调用同比、API报错同比、API耗时同比)。

10数据加密:设置通信报文的的加解密配置,提高整个客户端到服务端的攻击门槛,保障数据通信的安全性。

image.png

图1‑1 MGS产品功能图

1.1.2  功能特点

移动网关是连接移动客户端跟服务端的桥梁,移动客户端通过网关来访问后台服务接口。移动网关能够实现以下功能

1自动生成客户端的RPC调用代码,用户不需要关心网络通信、协议以及使用的数据格式。

2将服务端返回的数据自动反解生成Objective-C对象,无需额外编码。

3提供数据压缩、缓存、批量调用等增强服务。

4统一进行异常处理,如弹出对话框、Toast 提示框等。

5支持RPC拦截器,实现定制化的请求与处理。

6实行统一的安全加密机制和防篡改的请求签名验证机制。

7限流管控,保护后台服务器。

1.1.3  价值优势

移动网关服务的优势在于以下几点

1简单配置即可适配多种终端,连接异构的后端服务。

2自动生成移动端SDK,实现前后端分离,提升开发效率。

3支持服务注册、发现与管控,实现服务聚合与集成,降低管理成本和安全风险。

4提供优化后的数据协议与通讯协议,提高网络通讯质量和效率。

1.1.4  应用场景

移动网关服务有以下几个应用场景:

1. 开放移动服务能力

随着移动互联网、普惠金融的迅猛发展,企业越来越迫切地希望将现有成熟的后端服务开放出去。接入移动网关服务,无需额外工作,即可形成移动服务能力。

2. 一套服务,多端输出

移动互联时代,服务需要支持多样化的终端设备,这往往极大地增加了系统复杂性。企业只需在移动网关中定义服务,便能支持多种终端接入。

3. 异构服务,建立标准统一的对外服务接口

企业往往存在多种语言和结构的后端服务,只需遵循一定的标准接入移动网关,就可以对外开放标准统一的服务接口。

1.2    产品架构

MGS的产品架构图,图1-2所示。首先APP的请求会经过一个负载均衡设备,这个负载均衡设备可能是F5ALBSLB等软负载产品,经过负载均衡之后会把请求转发到mPaaSgw应用,mPaaSgw再根据这个API在开发平台配置的后端服务的URL和配置的协议类型,通过对应的协议转发到对应的后端的业务服务器。mPaaSgw一般会部署多个容器,每次请求会通过负载均衡的机制,发送到对应的mPaaSgw上。然后mPaaSgw和后端的业务服务器根据不同的协议选择不同的注册中心来做服务发现,例如使用TR模式的话则选择SOFA-Registry作为注册中心使用dubbo模式的话则选用Zookeeper作为服务注册。在实际使用中,更多情况可能使用HTTP协议,那就不需要再做服务注册了,只要在网关注册API的时候配置后端业务的HTTP器地址即可。

image.png

图12 MGS产品架构图

mAppCentermPaaS的管控控制台,也就是移动开发平台。在mAppCenter上可以配添加、配置API接口,之后配置的API信息会经nginx路由转发到一台mPaaSgwmPaaSgw会将数据更新落库,同时ZK会有一个通知操作,通知所有的mPaaSgwmPaaSgw会拉取最新的数据库配置更新自身缓存,避免因缓存旧数据而导致错误。

通过此过程可以到看到mPaaSgw自身也依赖一些其他组件,包括数据库、监控、ZK、动态配置。数据库主要是负责存储网关的各类配置数据,例如API分组的信息、API的配置信息、是否开启缓存等,在阿里云底座下使用的是RDS,在AntStack底座下使用的是OceanBase

其中MGS监控主要是通过网关对在线API请求的日志,实现在线监控、错误数监控、耗时监控等情况的监控

动态配置主要是用于动态的调整一些运行时配置,例如日志的打印级别、动态调整一些参数等等,根据实际的部署模式,可以选择用SOFA中间件的SOFA-DRM或选择Zookeeper 去做推送。

WAF流量清洗,因为MGS对请求的requestbody做了加密,所以WAF放在MGS前面获取不到原文数据,很多功能就变成了摆设。所以目前已输出的环境下是WAF一般做流量镜像,部署MGS客户后端业务之间做流量镜像

1.3    网络架构

如图1-3所示,首先入口是手机AppApp的请求经过DNS域名解析服务器,经过防火墙F5进行证书卸载,转发到DMZ区的外网spannerspanner直接拿到HTTP的请求信息,再路由转发到mPaaS应用区的mpaasgwmpaasgw应用再通过DUBBP/TR/HTTP协议,把请求转发到后端的业务上面。mpaasgw会根据请求信息的情况进行处理,如是客户自己的业务请求,则转发到行方应用区,如是mPaaS的框架请求,则通过DUBBP/TR协议转发给mPaaS的内部组件进行处理。由于应用都是部署在内网,所有请求使用HTTP协议就完全满足了,当通过mAppCenter访问mpaasgw时,是指定80端口,经内网spanner后从8081端口转发到mpaasgw

image.png

图1‑3 MGS网络架构图

1.4    产品特点

1MGSmPaaS中唯一会影响业务的服务,为了最大化可用性,有如下保障措施:

MGS要求至少两个实例保证最基本的高可用;

MGS进程有守护进程,假设MGS进程意外崩溃,可以马上拉起;

MGS运行时不依赖数据库,因此即使数据库出问题,MGS依然可以正常服务。

2MGS的管控聚合在mAppcenter控制台上,页面上的请求都会经mAppcenter里的nginx路由。

3)当有配置变更时,除了会写入数据库,还会通过动态配置服务进行推送,实时更新所有节点内存中的数据。

4mPaaS其他组件的RPC服务也会通过MGS暴露。

1.5    常用日志

MGS常用的运维日志目录介绍如图1-4所示。

image.png

图1‑4 MGS常用日志介绍

 

1. API摘要日志

1日志路径

/home/admin/logs/gateway/gateway-page-digest.log

2格式

时间 - (请求地址,响应,结果(Y/N,耗时,operationType,系统名,appId,workspaceId,结果码,客户端productId,客户端productVersion,渠道,用户ID,设备ID,UUID,客户端trackId,客户端IP,网络协议,数据协议,请求数据大小,响应数据大小,TraceId)

3)样例

2022--01-12 11:15:57,700 - (/mgw.htm,response,N,14ms,com.alipay.gateway.test,-,2A9ADA1045,antcloud,6666,-,-,-,-,WbYn8BX+5YQDAAIukHtlhSMt,f6223958-08d5-4e2a-aa2b-3f1a8b5aa6f7,f6223958-08d5-4e2a-aa2b-3f1a8b5aa6f7,100.97.90.85,HTTP,JSON,26,0,79c731d5150518615768657974443)

2. API详细日志

1)日志路径

~/logs/gateway/gateway-page-detail.log

2)类别

请求日志:[request]

响应日志:[response]

当日志级别为DEBUG时,会将requestDataresponseData打印出来。

3)格式

请求日志如下:

日志打印时间 [客户端IP][TRACEID] 日志级别  - [日志类型]operationType=RPC操作码,appId=客户端APPID,workspaceId=客户端workspaceId,requestData=请求数据,sessionId=-,did=设备ID,contentType=内容类型,mmtp=是否开启 mmtp 协议,async=是否异步调用

响应日志如下:

日志打印时间 [客户端IP][TRACEID] INFO  - [日志类型]operationType=operationType,appId=appId,workspaceId=workspaceId,,responseData=返回数据,resultStatus=返回码,contentType=内容类型,sessionId=会话ID,did=设备ID,mmtp=是否开启MMTP,async=是否异步

4. 样例

请求日志如下:

2021-1-12 15:37:10,208 [100.97.90.113][79c731d51513841830208829314258] INFO  - [request]operationType=com.alipay.gateway.test,appId=2A9ADA1045,workspaceId=antcloud,requestData=***,sessionId=-,did=WjtkmWe1uHsDADl7BEleyK2L,contentType=JSON,mmtp=F,async=T

响应日志如下:

2022-1-12 15:37:10,229 [][79c731d51513841830208829314258] INFO  - [response]operationType=com.alipay.gateway.test,appId=2A9ADA1045,workspaceId=antcloud,responseData=***,resultStatus=1000,contentType=JSON,sessionId=-,did=WjtkmWe1uHsDADl7BEleyK2L,mmtp=F,async=T

3. API统计日志

1)日志路径

~/logs/gateway/gateway-page-stat-s.log

2)格式

时间 - operationType,appId,workspaceId,结果(Y/N),结果码,压测标识(T/F,请求总量,请求总耗时(ms

3样例

2022-1-12 15:34:58,419 -com.alipay.gateway.test,2A9ADA1045,antcloud,Y,1000,F,1,3

4.网关线程统计日志

1)日志路径

~/logs/gateway/gateway-threadpool.log

2)格式

时间 [线程名,ActiveCount,PoolSize,LargestPoolSize,CorePoolSize,MaximumPoolSize,QueueSize,QueueRemainingCapacity]

3)样例

2021-12-21 16:33:32,617 [gateway-executor,0,80,80,80,400,0,1000]

5.网关配置日志

1)日志路径

~/logs/gateway/gateway-config.log

2)功能

此日志记录网关配置变更的相关通知。

6.网关默认日志

1)日志路径

~/logs/gateway/gateway-default.log

2)功能

网关默认日志,未指定特定日志的埋点都会打到此日志。

7.网关错误日志

1)日志路径

~/logs/gateway/gateway-error.log

2)功能

此日志记录错误和异常堆栈。

目录
相关文章
|
4月前
|
存储 监控 固态存储
【vSAN分布式存储服务器数据恢复】VMware vSphere vSAN 分布式存储虚拟化平台VMDK文件1KB问题数据恢复案例
在一例vSAN分布式存储故障中,因替换故障闪存盘后磁盘组失效,一台采用RAID0策略且未使用置备的虚拟机VMDK文件受损,仅余1KB大小。经分析发现,该VMDK文件与内部虚拟对象关联失效导致。恢复方案包括定位虚拟对象及组件的具体物理位置,解析分配空间,并手动重组RAID0结构以恢复数据。此案例强调了深入理解vSAN分布式存储机制的重要性,以及定制化数据恢复方案的有效性。
111 5
|
5月前
|
机器学习/深度学习 人工智能 Shell
人工智能平台PAI操作报错合集之在分布式训练过程中遇到报错,是什么原因
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
1月前
|
消息中间件 监控 数据可视化
Apache Airflow 开源最顶级的分布式工作流平台
Apache Airflow 是一个用于创作、调度和监控工作流的平台,通过将工作流定义为代码,实现更好的可维护性和协作性。Airflow 使用有向无环图(DAG)定义任务,支持动态生成、扩展和优雅的管道设计。其丰富的命令行工具和用户界面使得任务管理和监控更加便捷。适用于静态和缓慢变化的工作流,常用于数据处理。
Apache Airflow 开源最顶级的分布式工作流平台
|
4月前
|
消息中间件 Java Kafka
"Kafka快速上手:从环境搭建到Java Producer与Consumer实战,轻松掌握分布式流处理平台"
【8月更文挑战第10天】Apache Kafka作为分布式流处理平台的领头羊,凭借其高吞吐量、可扩展性和容错性,在大数据处理、实时日志收集及消息队列领域表现卓越。初学者需掌握Kafka基本概念与操作。Kafka的核心组件包括Producer(生产者)、Broker(服务器)和Consumer(消费者)。Producer发送消息到Topic,Broker负责存储与转发,Consumer则读取这些消息。首先确保已安装Java和Kafka,并启动服务。接着可通过命令行创建Topic,并使用提供的Java API实现Producer发送消息和Consumer读取消息的功能。
90 8
|
4月前
|
运维 Kubernetes 监控
|
5月前
|
存储 缓存 分布式计算
高并发架构设计三大利器:缓存、限流和降级问题之缓存的应对策略问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之缓存的应对策略问题如何解决
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能平台PAI产品使用合集之如何配置cluster系统自动生成分布式参数
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
5月前
|
机器学习/深度学习 存储 分布式计算
PAI机器学习平台如何进行分布式训练?
【7月更文挑战第1天】PAI机器学习平台如何进行分布式训练?
151 1
|
6月前
|
数据采集 JavaScript Java
一款分布式爬虫管理平台,支持多种语言和框架
项目介绍 Crawlab —— 一个基于 Golang 的分布式爬虫管理平台,支持Python、NodeJS、Go、Java、PHP 等多种编程语言以及多种爬虫框架。 主要功能: