高德接口(2127)-支持文档
[TOC]
###1、高德是什么
高德官网地址是: https://lbs.amap.com/api/webservice/summary/ 。
高德Web服务API向开发者提供HTTP接口,开发者可通过这些接口使用各类型的地理数据服务,返回结果支持JSON和XML格式。
Web服务API对所有用户开放。使用高德服务之前,需要申请应用Key。不同类型用户可获取不同的数据访问能力。
###2、常规使用流程
我们在使用高德官方提供的WEB服务时,常规流程如下图所示:

调用高德服务时,需要每次把认证key一起发送到服务方。
###3、面临的问题
####3.1密钥字段管理
虽然只是简单地在URL后面放上密钥,但每个接口的密钥字段名、值都是不一样的。如果需要调用多个接口,那开发者就需要在程序中保存、维护这些参数。
####3.2权限管理
在很多情况下,一个账号的密钥可以调用 A、B、C、D多个接口,如果开发者想精细管理,比如某个小组只能调用A,某个小组只能调用BC,这样的情况只能自己编码进行权限管理。
####3.3 IP黑白名单
哪些IP可以使用您的密钥调用接口,哪些IP不能调用?这个看似简单的功能,很多API服务商却没有提供。
####3.4 流量、并发控制
假设一个密钥在多个开发组中共享,每个小组每天能使用多少次调用,并发又能到多少? 因为API服务商通常对密钥有个总流控,您也不希望某个小组代码有问题而把其他小组的业务全阻塞了。
####3.5 日志记录
一个密钥在什么时候,什么IP调用了接口,出入参数分别是什么?对不起,目前绝大部份API服务商没有对此记录。当您对调用量有疑问而希望服务商和您对账时,由于日志的缺失,这将是一笔糊涂账。
####3.6 负载均衡
比如您同时在用百度和高德的【IP地址查询】接口,由于两个服务的调用额度、并发限制可能不同,您可以在易源设置这两个节点的负载权重从而分流。
####3.7 映射输入输出字段
比如您同时在用百度和高德的【IP地址查询】接口,它们的输入和输出字段是不一样的。您可以通过易源对这两个节点的输入和输出做字段映射、代码级转换,从而把它们的输入输出完全统一。
####3.8 容灾切换
项目中同时在用ABC三个接口,A挂了就走B,B再挂了就走C。需要定期检测节点的恢复情况。
###4、解决方案
对于上一小节提到的问题,解决如下:
####4.1 密钥字段管理

####4.2 权限管理
- 通过连接器创建接入点,设置私有用户调用权限控制可使用哪些后端数据。
- 通过创建子授权,精细控制每个token可访问的接入点、可调用的IP和秒并发
####4.3 IP黑白名单

####4.4 流量、并发控制

####4.5 日志记录

####4.6 负载均衡

####4.7 映射输入输出字段

如果单纯的字段映射不能应对复杂情况,我们还可以使用【嵌入代码】方式直接修改输入、输出内容。

####4.8 容灾切换。
某个节点熔断后,易源会根据权重或嵌入的代码,将请求数据转至正常的后端节点。

###5、性能问题
如果在同一个局域网下进行压力测试,直连时程序做充分优化,易源中转比直连方式的多消耗时间<1ms。网站或APP的响应时间在100ms-1000ms之间是可以接受的,也就是易源增加的时间是整体流程的0.01至0.001的比率,几乎可以忽略不计。这点开销,就像开车从北京到西安有1000公里,中间因为修路多走了1公里,总共由1000到1001公里,多走这1公里对全局可以忽略不计。
###6、安全问题
易源平台和您签定合作协议,易源保证关键信息加密存储,保证数据安全不泄露,保证无用户授权绝对不连接数据源。
易源公布对外IP,您可以设置IP白名单。
对于高德连接器,易源的IP是:
- 121.41.60.109
- 120.26.59.160
- 120.26.61.225
- 129.211.129.137