Healthcheck 由于服务无法保证永远不会下线,而且下线时不一定能有人员能及时发现, 所以api gateway 一般会引入一个监工 Healthcheck, 像大家每年体检一样定时确认服务是否存活. 这样就可以在上游节点发生故障或者迁移时,将请求代理到健康的节点上,最大程度避免服务不可用的问题. 一般其分为主动检查和被动检查. 主动检查 其一般为使用单独的线程.进程.甚至独立的程序的探针,不断轮休式主动检查服务存活性. 一般支持 HTTP.HTTPS.TCP 三种探针类型, 也就是实际存…
动态插件 之前已经拆解细点逐个介绍了 tcp .http 代理相关核心点,现在介绍一个让 api gateway 变得很灵活的功能实现: 动态插件. 由于 lua 的动态语言特点,我们可以比较方便做到动态插件机制. 首先我们来了解这一切的基石:lua 模块加载机制. lua 模块加载机制 一个模块是什么样? 例如: xxxmodule.lua 文件内容 local module = {} -- 注意不要使用全局变量,会造成变量污染,导致无法卸载模块 -- 定义一个函数 function modu…
http路由 路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程. 而这里的http路由其实等同于web开发中,根据http相关参数(比如url.http method)分配到对应的处理程序. 借用web框架的示意图,其作用如下 路由匹配 这里我们先简化一下内容,假设我们已有 upstream ip.port,现在只需能区分各种请求怎么样对应到这些不同的upstream上,不必关心能否做改写请求啊.熔断啊等等复杂情况 那么怎么实现路由匹配呢? 通常为以下两…
什么是负载均衡 负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡.分摊到多个操作单元上进行运行 以下为几种负载均衡策略介绍 1.随机(Random) 大家很多时候说到随机的负载均衡都会想到 Round Robin, 其实 Round Robin并非随机, Random 这种是真正意义上随机,根据随机算法随意分配请求到服务器. 优点: 有了负载能力 缺点: 受随机算法影响,并不能均衡各个服务器的负载, 也不能根据服务器的负载情况进行自我调节 所以基本很少有如此单…
配置中心 在之前 tcp的yaml配置 介绍了如何监听yaml文件变化然后更新配置. 当然假如我们有很多实例,那么yaml改动将是非常痛苦的事情,那么如何做到配置文件统一管理,实时更新呢? 我们可以引入配置中心,从而达到这样的效果. 业界已经有非常多配置中心了,这里为了简化内容,将选用etcd作为配置中心来介绍实现. etcd etcd 是一个分布式键值对存储系统. 设计用于可靠存储不频繁更新的数据,并提供可靠的观察查询. etcd 暴露键值对的先前版本来支持不昂贵的快速和观察历史事件("tim…
原文: http://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=206889381&idx=1&sn=478ccb35294c58d25d2df2d9ced65cf7&scene=1&key=c76941211a49ab586d79043cb87ac0dfeede574a20b2208ce76058b151624e4273182de582a786668ea347c6f317b389&ascene=0&…
一.API Gateway简介 参看:http://www.cnblogs.com/bjlhx/p/8794437.html 二.zuul简介[路由器和过滤器:Zuul] 在微服务架构的组成部分进行路由.例如,/可能映射到您的Web应用程序,/ api / users映射到用户服务,并且/ api / shop映射到商店服务.Zuul是Netflix提供的基于JVM的路由器和服务器端负载均衡器. Netflix使用Zuul进行以下操作: 认证.洞察.压力测试.金丝雀测试.动态路由.服务迁移.加载…
前言 又是很久没写博客了,最近一段时间换了新工作,比较忙,所以没有抽出来太多的时间写给关注我的粉丝写一些干货了,就有人问我怎么最近没有更新博客了,在这里给大家抱歉. 那么,在本篇文章中,我们就一起来探讨一下 API 网关在整个微服务分布式架构中的一个作用. 背景 我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest Api 风格的接口来被 H5, Andro…
最近参与了公司 API Gateway 的搭建工作,技术选型是 Netflix Zuul,主要聊一聊其中的一些心得和体会. 本文主要是介绍使用 Zuul 且在不强制使用其他 Neflix OSS 组件时,如何搭建生产环境的 Gateway,以及能使用 Gateway 做哪些事.不打算介绍任何关于如何快速搭建 Zuul,或是一些轻易集成 Eureka 之类的的方法,这些在官方文档上已经介绍的很明确了. API Gateway API Gateway 是随着微服务(Microservice)这个概念…
API 网关(API Gateway)提供高性能.高可用的 API 托管服务,帮助用户对外开放其部署在 ECS.容器服务等云产品上的应用,提供完整的 API 发布.管理.维护生命周期管理.用户只需进行简单的操作,即可快速.低成本.低风险地开放数据或服务. 背景 我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest Api 风格的接口来被 H5, Androi…