产品介绍
极限网关(INFINI Gateway)是一个面向 Elasticsearch 的高性能应用网关。特性丰富,使用简单。
它和其他业务型网关最大的区别是业务网关把请求转发给各个底层微服务,而它把请求转发给 Elasticsearch,更多是类似 Mycat 的中间件的作用。
没有使用网关之前,服务端请求多个节点
使用网关后
下载地址
打开 下载地址,根据操作系统版本选择。
Windows 安装和启动
安装
下载 gateway-1.6.0_SNAPSHOT-597-windows-amd64.zip,解压如下。 gateway-windows-amd64.exe 是启动文件,gateway.yml 是默认配置文件。
启动失败
当 gateway.yml 的 elasticsearch 选项中的 hosts 不能正常响应请求的时候,启动界面如下。
为什么 elasticsearch 不能访问的时候,网关还要继续提供服务呢,为什么不像业务接口启动时在基础业务组件如 MySQL/Redis 不能正常响应就直接 panic?
一方面网关作为 elasticsearch 抵挡流量冲击的城墙,在 elasticsearch 不能提供服务的时候,对之前成功的请求缓存结果,继续提供有限度的服务,为 elasticsearch 修复后上线争取时间。
另一方面业务接口和基础组件是强耦合关系,没有基础组件就完全无法对外提供数据读写服务,而网关与 elasticsearch 是松耦合关系,网关在没有 elasticsearch 的情况下也能对外提供有限度的服务。
在 gateway.yml 的 elasticsearch 选项中的 hosts 改成能够正常响应的 elasticsearch 请求地址。
启动成功
双击 gateway-windows-amd64.exe 文件,启动成功界面如下
访问
API 访问
由启动后终端显示可知,网关的 API 接口地址是 http://localhost:2900
[api.go:262] api listen at: http://0.0.0.0:2900
打开浏览器输入 http://localhost:2900,显示所有可以对外提供的 API 接口
我们选择其中一个,在浏览器中输入 http://localhost:2900/_framework/api/_version 从路由上看该接口是查询产品的版本信息,显示如下
gateway.yml 中可以看到有被注释掉的一段配置,看起来应该是配置 api 地址的地方。
#api:
# enabled: true
# network:
# binding: 127.0.0.1:2900
把注释去掉后尝试把端口改成 2901。
api:
enabled: true
network:
binding: 127.0.0.1:2901
改完后启动 打开浏览器先输入 http://localhost:2900,无法正常响应请求,再输入 http://localhost:2901,可以正常响应,界面和修改配置前访问 http://localhost:2900 的界面一样,说明 API 请求地址成功修改
Elasticsearch 访问
启动日志中显示监听 8000 端口,猜测应该是 elasticsearch 请求地址,打开浏览器输入 http://127.0.0.1:8000/
entry [my_es_entry] listen at: http://0.0.0.0:8000
gateway.yml 中可以看到 my_es_entry 的 network 绑定 8000 端口,显而易见的这部分就是配置代理转发给 elasticsearch 的地址,所以安装后只需要把以前请求 elasticsearch 的地址修改为该地址。
entry:
- name: my_es_entry
enabled: true
router: my_router
max_concurrency: 10000
network:
binding: 0.0.0.0:8000
总结
我们成功安装和启动极限网关,接下来我们学习怎么根据需求修改配置。
本文地址:http://elasticsearch.cn/article/14558