随笔分类 -  bulid api gateway

摘要:openresty 中如何使用 wasm WASM 是什么? WebAssembly是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果。它设计的目的不是为了手写代码而是为诸如C、C++和Rust等低级源语言提供一个高效的编译目标。 对于网络平台而言,这具有巨大的意义——这为客户端ap 阅读全文
posted @ 2023-02-14 16:55 victor.x.qu 阅读(336) 评论(0) 推荐(0) 编辑
摘要:如何给openresty打patch 由于很多功能实现的限制,我们不得不修改openresty,但我们又不一定能持续维护一个 openresty 分支,所有有了patch 这一操作。 patch是怎么补“漏洞”的? patch 中文含义为补丁,给大家的感觉就像在原来的基础上修复漏洞,就像小时候旧衣服 阅读全文
posted @ 2023-02-11 11:05 victor.x.qu 阅读(185) 评论(0) 推荐(0) 编辑
摘要:动态插件 之前已经拆解细点逐个介绍了 tcp 、http 代理相关核心点,现在介绍一个让 api gateway 变得很灵活的功能实现: 动态插件。 由于 lua 的动态语言特点,我们可以比较方便做到动态插件机制。 首先我们来了解这一切的基石:lua 模块加载机制。 lua 模块加载机制 一个模块是 阅读全文
posted @ 2023-02-10 10:10 victor.x.qu 阅读(291) 评论(0) 推荐(0) 编辑
摘要:配置中心 在之前 tcp的yaml配置 介绍了如何监听yaml文件变化然后更新配置。 当然假如我们有很多实例,那么yaml改动将是非常痛苦的事情,那么如何做到配置文件统一管理,实时更新呢? 我们可以引入配置中心,从而达到这样的效果。 业界已经有非常多配置中心了,这里为了简化内容,将选用etcd作为配 阅读全文
posted @ 2023-02-09 17:33 victor.x.qu 阅读(484) 评论(0) 推荐(0) 编辑
摘要:Healthcheck 由于服务无法保证永远不会下线,而且下线时不一定能有人员能及时发现, 所以api gateway 一般会引入一个监工 Healthcheck, 像大家每年体检一样定时确认服务是否存活。 这样就可以在上游节点发生故障或者迁移时,将请求代理到健康的节点上,最大程度避免服务不可用的问 阅读全文
posted @ 2023-02-09 10:58 victor.x.qu 阅读(495) 评论(0) 推荐(1) 编辑
摘要:什么是负载均衡 负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行 以下为几种负载均衡策略介绍 1.随机(Random) 大家很多时候说到随机的负载均衡都会想到 Round Robin, 其实 Round Robin并非随机, Rand 阅读全文
posted @ 2023-02-07 11:20 victor.x.qu 阅读(601) 评论(0) 推荐(0) 编辑
摘要:http路由 路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。 而这里的http路由其实等同于web开发中,根据http相关参数(比如url、http method)分配到对应的处理程序。 借用web框架的示意图,其作用如下 路由匹配 这里我们先简化一下内 阅读全文
posted @ 2023-01-30 16:42 victor.x.qu 阅读(417) 评论(0) 推荐(0) 编辑
摘要:我们首先用一个简单例子了解一下基本的http代理配置 worker_processes 1; #nginx worker 数量 error_log logs/error.log; #指定错误日志文件路径 events { worker_connections 1024; } http { log_f 阅读全文
posted @ 2023-01-03 14:27 victor.x.qu 阅读(126) 评论(0) 推荐(0) 编辑
摘要:接下来我们试试从yaml文件中读取配置,当然这不是动态配置分发的好方式 别急,一口吃不成大胖子 这里其实会为大家介绍不少东西: 如何引入第三方库以及配置openresty lua 文件读取 yaml 库 openresty init_worker openresty timer privileged 阅读全文
posted @ 2023-01-03 14:26 victor.x.qu 阅读(179) 评论(0) 推荐(0) 编辑
摘要:上述说过openresty本身配置复杂,上手难度高,也不利于分发配置,为什么呢? 配置格式有着比较复杂的语法,不是单纯的数据,所以学习成本高了 配置有了复杂的语法,变更时不像一条数据更改那么容易,可能导致格式错乱,也就不利于分发配置了 那么我们第一步就着眼于如何让大家不需要学习nginx配置语法,( 阅读全文
posted @ 2023-01-03 14:25 victor.x.qu 阅读(58) 评论(0) 推荐(0) 编辑
摘要:我们首先用一个简单例子了解一下基本的tcp代理配置 worker_processes 1; #nginx worker 数量 error_log logs/error.log; #指定错误日志文件路径 events { worker_connections 1024; } stream { log_ 阅读全文
posted @ 2023-01-03 14:15 victor.x.qu 阅读(239) 评论(0) 推荐(0) 编辑
摘要:我们来了解一下业界网关的技术选型 (这里先简单介绍,部分技术名词有缘在未来介绍,如果无缘就只有搜索了,毕竟每一个都解释清楚是挺浩大的工程) 从零开始 这无疑是成本巨大的,除了开发成本之外,还有极大的信任成本,如何让别人能相信而采用编写的网关,特别是大家偏信“大厂背书”四字的时代? 信任成本无法估量, 阅读全文
posted @ 2023-01-03 14:14 victor.x.qu 阅读(89) 评论(0) 推荐(0) 编辑
摘要:进程间通信(inter-process communication 或 interprocess communication,简写 IPC)是指两个或两个以上进程(或线程)之间进行数据或信号交互的技术方案。 文件 没错,文件就是进程间通信的一种方式。 信号(signal) 像Ctrl+C退出之类或k 阅读全文
posted @ 2023-01-03 14:13 victor.x.qu 阅读(165) 评论(0) 推荐(0) 编辑
摘要:什么是网络协议? 在网络中,协议是一套用于格式化和处理数据的规则。网络协议就像计算机的一种共同语言。一个网络中的计算机可能会使用截然不同的软件和硬件,然而,协议的使用使它们能够相互通信。 标准化协议就像计算机可以使用的共同语言,类似于来自世界不同地区的两个人可能不理解对方的母语,但他们可以使用共同的 阅读全文
posted @ 2023-01-03 14:12 victor.x.qu 阅读(299) 评论(0) 推荐(0) 编辑
摘要:网关软件一般分为四层或七层代理,为什么有这样区分呢? 既然我们要尝试完成一个网关,我们可能的了解一下四层、七层到底是什么,否则我们做什么呢? 这里所谈的四层代理和七层代理,便是基于OSI七层模型来划分的。 OSI 七层网络模型 OSI(Open System Interconnect),即开放式系统 阅读全文
posted @ 2023-01-03 14:12 victor.x.qu 阅读(88) 评论(0) 推荐(0) 编辑
摘要:反向代理是位于 Web 服务器前面的服务器,其将客户端(例如 Web 浏览器)请求转发到这些 Web 服务器。反向代理通常用于帮助提高安全性、性能和可靠性。为了更好地理解反向代理的工作原理以及它可以提供的好处,我们来理解什么是代理。 什么是代理 代理也被叫做网络代理,是一种比较特殊的网络服务,允许一 阅读全文
posted @ 2023-01-03 14:11 victor.x.qu 阅读(651) 评论(0) 推荐(0) 编辑
摘要:Gateway 定义是什么? 百度百科解释: 网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。 网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。 使用在不同的通信协议、 阅读全文
posted @ 2023-01-03 14:10 victor.x.qu 阅读(1191) 评论(0) 推荐(0) 编辑
摘要:本教程将向大家介绍如何构建一个高性能,动态化,http、tcp的api gateway。 不仅包含一个完整可用的代码框架,也具有完整的实践教程,按图索骥即可拥有编写api gateway的能力。 具体内容 : https://fs7744.github.io/nature/ 目录 知识预备篇 概念介 阅读全文
posted @ 2023-01-03 14:09 victor.x.qu 阅读(22) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示