博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
揭秘ZSearch2.0—基于OpenResty的API网关设计
阅读量:5886 次
发布时间:2019-06-19

本文共 740 字,大约阅读时间需要 2 分钟。

背景


  • OpenResty 是一个支持lua的nginx,并且内置了一些常用的lua库。利用lua,我们就可以便捷得扩展nginx能力,甚至可以直接作为Web服务对外提供。
  • 由下图可以看出,我们可以在各个阶段进行干预。
    lua干预阶段

设计


  • 本文介绍的API网关设计很简单,主要有路由,过滤器,拦截器三个部分组成。
  • 可以实现权限验证,日志记录,参数改写,限流限速等功能。
    IMAGE

实现关键


  • 这套方案实现并不复杂,主要是对nginx的干预要可控,对nginx主要的干预点有三个。

    1. init_worker_by_lua_file 注册路由信息
    2. access_by_lua_file 进行dispatch,过滤改写,权限校验和代理请求。如果代理请求的话,要记得ngx.exit将请求结束。
    3. balancer_by_lua_file 根据dispatch信息路由到不同真实负载服务器上

参考资料


让搜索更简单


  • ZSearch2.0 服务申请入口:看我们这二级的域名就知道重要性了吧。
  • 蚂蚁中间件的ZSearch2.0,核心采用了ElasticSearch,原生支持所有的ElasticSearch的操作,具备强大的数据检索和分析能力,自5月份投入试运行以来,已线上服务16个业务方,数据规模在130TB,近2K亿的文档数,QPS稳定在30W左右。 通过数月不断的观察、调优、测试,如今已达到正式上线的标准,欢迎同学们踊跃使用,提出宝贵意见。
  • 后续我们会对Elasticsearch和Lucene做持续优化,欢迎大家来使用,并提出你的需求。
  • 有任何问题可以联系我们(@善仁(xinyu.jxy),@丰坚(yinghao.wyh),@十倍(lvliang.ll),@城破(huabiao.mahb) )
  • 详细介绍请参阅

转载地址:http://exmix.baihongyu.com/

你可能感兴趣的文章
远程主机探测技术FAQ集 - 扫描篇
查看>>
C++中调用python函数
查看>>
Nomad添加acl认证
查看>>
“TI门外汉”网路知识笔记一 OSI参考模型
查看>>
你不需要jQuery(五)
查看>>
DatanodeDescriptor说明
查看>>
ServlertContext
查看>>
Python WOL/WakeOnLan/网络唤醒数据包发送工具
查看>>
sizeof(long)
查看>>
pxe网络启动和GHOST网克
查看>>
2.5-saltstack配置apache
查看>>
django数据库中的时间格式与页面渲染出来的时间格式不一致的处理
查看>>
增强myEclipse的提示功能
查看>>
[翻译]Protocol Buffer 基础: C++
查看>>
runloop与线程的关系
查看>>
[Bzoj2246]迷宫探险(概率+DP)
查看>>
详解消息队列的设计与使用
查看>>
使用Sqoop从mysql向hdfs或者hive导入数据时出现的一些错误
查看>>
控制子窗口的高度
查看>>
处理 Oracle SQL in 超过1000 的解决方案
查看>>