分类目录归档:我是修电脑的

如名,学习各种代码的记录,恼火的解决记录。

基于OpenResty 的 WEB 框架 Lor 安装初探

项目介绍: Lor是一个运行在OpenResty上的基于Lua编写的Web框架. 路由采用Sinatra风格,Sinatra是Ruby小而精的web框架. API基本采用了Express的思路和设计,Node.js跨界开发者可以很快上手. 支持插件(middleware),路由可分组,路由匹配支持string/正则模式. lor以后会保持核心足够精简,扩展功能依赖middleware来实现. lor本身也是基于middleware构建的. 推荐使用lor作为HTTP API Server,lor也已支持session/cookie/html template等功能. 框架简单示例项目lor-example 框架全站示例项目openresty-china 项目地址: https://githu……

阅读全文 »

使用 konga 来管理微服务 API 网关 kong

微服务网关kong有比较多个后台管理面板,比如比较简单的kong-dashboard,还有konga,之前在初探kong的时候,使用的就是比较简单的kong-dashboard,很多功能都没有,而且最近由于kong官方更新比较频繁,1.0之后的kong-dashboard就已经不兼容了,频繁报错,所有今天我就来使用一下另一款kong的后台管理面板:konga 官方网址:https://pantsel.github.io/konga/ 项目地址:https://github.com/pantsel/konga 项目demo:http://139.59.145.231:1337/ 安装konga 在开始安装之前,需要准备的有: 一个已经安装好的kong环境 Nodejs >= 8 (推荐8……

阅读全文 »

微服务 API 网关 Kong 中文文档发布

由于项目的原因,最近的几个月一直在学习微服务的API网关 Kong ,在这里做一个简单介绍,是一个云原生,高效,可扩展的分布式 API 网关。 自 2015 年在 github 开源后,广泛受到关注,目前已收获 1.68w+ 的 star,其核心价值在于高性能和可扩展性。由于对项目的积极维护,Kong被广泛用于从初创公司到全球5000强以及政府机构的生产中。从技术角度来说,Kong是基于Openresty的一个莹莹,Openresty是基于Nginx的,使用的语言是Lua。 官方网站:https://konghq.com 官方文档:https://docs.konghq.com 项目地址:https://github.com/Kong/kong 所以在学习过程中,首要是需要看官方文档,由于项……

阅读全文 »

Lua OpenResty 使用 protobuf 和 rabbitmq AMQP 发送和接收消息

项目中有个需求,需要使用Google的protobuf作为压缩协议,然后使用rabbitmq AMQP来发送和接收消息,在研究使用这两个工具中,遇到了有一些坑,之前有写了两篇来介绍分别使用,《 在 lua 中使用 protobuf》和《Lua OpenResty 使用rabbitmq AMQP协议发送和接收消息》 ,这里我们来结合使用一下,然后顺便解决一下lua的相关库的使用问题。 protobuf 相关步骤 1.安装 protoc 首先安装依赖库 sudo apt-get install autoconf automake libtool curl make g++ unzip 下载、解压安装包 curl -L -o protobuf-all-3.6.1.tar.gz https://gi……

阅读全文 »

微服务 API 网关 Kong 日志中文文档

日志 原文链接: https://docs.konghq.com/1.1.x/logging/ (不能保证所有的翻译都是准确无误的,所有如有翻译的不准确或错误之处,请一定记得查看原文,并欢迎留言指出)。 日志等级 日志级别在Kong的配置中设置。以下是日志级别,按照严重程度顺序递增,debug, info, notice, warn, error and crit。 debug:它提供有关插件的runloop和每个插件或其他组件的调试信息。只是在调试期间使用,因为它的消息量太多了。 info/notice:kong没有在这两个级别上产生很大的差异。提供有关正常行为的信息,其中大多数行为可以忽略。 warn:要记录任何不会导致事务丢失但需要进一步调查的异常行为,应使用警告级别。 error:用……

阅读全文 »

微服务 API 网关 Kong 代理中文文档

原文链接: https://docs.konghq.com/1.1.x/proxy/ (不能保证所有的翻译都是准确无误的,所有如有翻译的不准确或错误之处,请一定记得查看原文,并欢迎留言指出)。 代理 简介 在本文档中,我们将通过详细解释其路由功能和内部工作原理,来了解Kong的代理功能。 Kong公开了几个可以通过两个配置属性调整的接口: proxy_listen:它定义了一个地址/端口列表,Kong将接受来自客户端的公共流量并将其代理到您的上游服务(默认为8000)。 admin_listen:它还定义了一个地址和端口列表,但是这些应该被限制为仅由管理员访问,因为它们暴露了Kong的配置功能:Admin API(默认为8001)。 注意:从1.0.0开始,API实体已被删除。本文档将介绍使……

阅读全文 »

Lua OpenResty 使用rabbitmq AMQP协议发送和接收消息

如果想要在openresty中使用AMQP协议发送和接收消息的话,需要使用到一个第三方库。地址为:https://github.com/mengz0/amqp 。 当然,首先你得在自己的环境中安装一个rabbitmq,或者使用远程的rabbitmq也可以。 openresty也是要安装一下的,这里就不啰嗦了。 第一步:安装第三方库 luarocks install amqp 如果没有安装 luarocks 可以安装一下luarocks。 第二步:使用amqp发送&接收消息 可以直接参考https://github.com/mengz0/amqp 中的例子,但是这个库的例子写的非常简略,导致很多参数需要你自己去源码中查看,我在这个例子中列举了一些常用的参数,可以参考使用一下。 发送消息……

阅读全文 »

在 lua 中使用 protobuf

安装protobuf 具体步骤可以参考官方文档https://github.com/protocolbuffers/protobuf/blob/master/src/README.md 这里只列出一些其中比较的重要的步骤。 先安装一些依赖的库 sudo apt-get install autoconf automake libtool curl make g++ unzip 然后下载需要的安装包 curl -L -o protobuf-all-3.6.1.tar.gz https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-all-3.6.1.tar.gz 接着解压 tar -xzvf pro……

阅读全文 »

微服务 API 网关 Kong 插件开发 – 插件配置

原文地址:https://docs.konghq.com/1.1.x/plugin-development/plugin-configuration/(不能保证所有的翻译都是准确无误的,所有如有翻译的不准确或错误之处,请一定记得查看原文,并欢迎留言指出)。 简介 大多数情况下,您的插件可以配置为满足您的所有用户需求。当插件被执行的时候,您的插件的配置存储在Kong的数据存储区中,以检索它并将其传递给handler.lua方法。 配置由Kong中的Lua表组成,我们称之为 schema。它包含用户在通过Admin API启用插件时将设置的键/值属性。Kong为您提供了一种验证用户插件配置的方法。 当用户向Admin API发出请求以启用或更新给定Service,Route和/或Consumer……

阅读全文 »

微服务 API 网关 Kong 插件开发 – 文件结构

原文地址:https://docs.konghq.com/1.1.x/plugin-development/file-structure/ (不能保证所有的翻译都是准确无误的,所有如有翻译的不准确或错误之处,请一定记得查看原文,并欢迎留言指出)。 本章假定你已经会使用Lua语言 介绍 将您的插件视为一组Lua模块。本章中描述的每个文件都被视为一个单独的模块。如果他们的名字遵循这个约定,Kong将检测并加载你的插件的模块: kong.plugins.<plugin_name>.<module_name> 您的模块当然需要通过package.path变量访问,可以通过lua_package_path配置属性调整您的需求。但是,安装插件的首选方法是通过LuaRocks,它与……

阅读全文 »

微服务 API 网关 Kong 插件开发 – 安装/卸载插件

原文地址:https://docs.konghq.com/1.1.x/plugin-development/entities-cache/ (不能保证所有的翻译都是准确无误的,所有如有翻译的不准确或错误之处,请一定记得查看原文,并欢迎留言指出)。 介绍 Kong的自定义插件由Lua源文件组成,这些源文件需要位于每个Kong节点的文件系统中。本指南将为您提供逐步说明,使Kong节点了解您的自定义插件。这些步骤应该应用于Kong集群中的每个节点,以确保每个节点上都有自定义插件。 打包源 您可以使用常规打包策略(例如tar),也可以使用LuaRocks包管理器为您执行此操作。我们推荐使用LuaRocks,因为它在使用其中一个官方分发包时与Kong一起安装。 使用LuaRocks时,您必须创建一个r……

阅读全文 »

微服务 API 网关 Kong 插件开发 – 缓存自定义实体

原文地址:https://docs.konghq.com/1.1.x/plugin-development/entities-cache/ (不能保证所有的翻译都是准确无误的,所有如有翻译的不准确或错误之处,请一定记得查看原文,并欢迎留言指出)。 介绍 您的插件可能需要经常访问每个请求 和/或 响应的自定义实体(在前一章中可见)。通常,加载它们一次并将它们缓存在内存中会显着提高性能,同时确保数据存储区不会因负载增加而受到压力。 考虑一个api-key身份验证插件,需要在每个请求上验证api-key,从而在每个请求中从数据存储区加载自定义凭据对象。当客户端提供api-key以及请求时,通常你会查询数据存储区以检查该密钥是否存在,然后,阻止请求或检索 Consumer ID以识别用户,这将在每个……

阅读全文 »