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

简介: 移动网关服务(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)功能

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

相关文章
|
2月前
|
运维 监控 Java
java乡镇卫生院、二甲医院云HIS运维平台源码
运营管理是综合管理系统的核心部分,由运营商和医疗机构管理人员使用,运营管理包括:机构管理、药品目录管理、用户管理、角色管理、字典管理、模板管理、参数设置、消息管理、售后服务、运营配置、外部系统11个子模块,实现机构、用户、角色管理、药品目录管理以及通用的字典管理;可以根据业务需要为各医疗机构定制病历模板和报表模板;可以对医疗机构收费外接设备进行参数设置,对业务进行配置;可以管理消息及售后信息等。
41 3
|
5月前
|
Java 调度 Maven
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
118 0
|
6月前
|
监控 Java 调度
分布式系列教程(17) - 分布式任务调度平台XXL-JOB
分布式系列教程(17) - 分布式任务调度平台XXL-JOB
148 0
|
4月前
|
运维 算法 Java
springboot医院信息化云HIS运维平台源码
1、门诊部分 挂号及预约、划价及收费、门诊处方及病历、医生排班... 2、住院部分 入院及出院登记、住院收费、住院清单、出院结算、住院医生工作站、住院护士工作站... 3、电子病历 医嘱管理、护嘱管理、电子病历、护理病历、病历质控...
45 0
|
6天前
|
运维 前端开发 JavaScript
运维管理平台实现与学习心得
运维管理平台实现与学习心得
|
21天前
|
分布式计算 资源调度 Hadoop
Apache Hadoop入门指南:搭建分布式大数据处理平台
【4月更文挑战第6天】本文介绍了Apache Hadoop在大数据处理中的关键作用,并引导初学者了解Hadoop的基本概念、核心组件(HDFS、YARN、MapReduce)及如何搭建分布式环境。通过配置Hadoop、格式化HDFS、启动服务和验证环境,学习者可掌握基本操作。此外,文章还提及了开发MapReduce程序、学习Hadoop生态系统和性能调优的重要性,旨在为读者提供Hadoop入门指导,助其踏入大数据处理的旅程。
91 0
|
5月前
|
SQL 负载均衡 监控
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(上)
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目
104 0
|
2月前
|
移动开发 小程序 Android开发
mPaaS常见问题之pixel4 android 13 调用移动网关 报这个错如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
32 0
|
4月前
|
消息中间件 缓存 运维
云HIS运维运营平台 云HIS解决方案
云HIS重建统一的信息架构体系,重构管理服务流程,重造病人服务环境,向不同类型的医疗机构提供SaaS化HIS服务解决方案。
65 2
|
5月前
|
JSON 数据格式
在mPaaS中,通过Postman测试移动网关,可以按照以下步骤操作
在mPaaS中,通过Postman测试移动网关,可以按照以下步骤操作
33 2