这里使用的是kafka插件是doujiang大佬的https://github.com/doujiang24/lua-resty-kafka,版本为v0.2.0。

应用场景

在nginx转发中,记录非200请求的信息,遂打算在log_by_lua*中整合信息并发送kafka消息。下面附上openresty不同阶段的说明:

set_by_lua*: 流程分支处理判断变量初始化

rewrite_by_lua*: 转发、重定向、缓存等功能(例如特定请求代理到外网)

access_by_lua*: IP 准入、接口权限等情况集中处理(例如配合 iptable 完成简单防火墙)

content_by_lua*: 内容生成

header_filter_by_lua*: 响应头部过滤处理(例如添加头部信息)

body_filter_by_lua*: 响应体过滤处理(例如完成应答内容统一成大写)

log_by_lua*: 会话完成后本地异步完成日志记录(日志可以记录在本地,还可以同步到其他机器)

摘自:执行阶段概念

发现问题

实际使用中发现,lua-resty-kafka中使用的ngx.http.tcp由于nginx内核限制的问题,API不能使用,报错如下:



又尝试了一下header_filter_by_lua和body_filter_by_lua,也都是不能使用的,看到有使用ngx.time.at相关的,但是没有找到实践方案不知该如何尝试,遂放弃

解决

在content_by_lua*阶段也尝试一下,可以,能判断出ngx.status,但是有新的报错如下:



这个应该是kakfa节点的问题。

nginx+lua+openresty+kafka相关问题汇总的更多相关文章

  1. nginx lua集成kafka

    NGINX lua集成kafka 第一步:进入opresty目录 [root@node03 openresty]# cd /export/servers/openresty/ [root@node03 ...

  2. 用Nginx+Lua(OpenResty)开发高性能Web应用

    在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡.反向代理.代理缓存.限流等场景:而把Nginx作为一个Web容器使用的还不是那么广泛.Nginx的高性能是大家公认的,而Nginx开 ...

  3. Nginx+Lua(OpenResty)开发高性能Web应用

    使用Nginx+Lua(OpenResty)开发高性能Web应用 博客分类: 跟我学Nginx+Lua开发 架构 ngx_luaopenresty 在互联网公司,Nginx可以说是标配组件,但是主要场 ...

  4. 使用Nginx+Lua(OpenResty)开发高性能Web应用

    摘自(http://jinnianshilongnian.iteye.com/blog/2280928) 在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡.反向代理.代理缓存.限流等 ...

  5. 安装Nginx+Lua+OpenResty开发环境配置全过程实例

    安装Nginx+Lua+OpenResty开发环境配置全过程实例 OpenResty由Nginx核心加很多第三方模块组成,默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用. ...

  6. 高并发 Nginx+Lua OpenResty系列(1)——环境搭建

    OpenResty是一款基于Nginx的高性能负载均衡服务器容器,简单来说是Nginx+Lua.结合了Lua语言来对Nginx进行扩展,使得在Nginx上具有web容器功能. OpenResty运行环 ...

  7. Nginx+lua+openresty精简系列

    1. CentOS系统安装openresty 你可以在你的 CentOS 系统中添加 openresty 仓库,这样就可以便于未来安装或更新我们的软件包(通过 yum update 命令).运行下面的 ...

  8. 高并发 Nginx+Lua OpenResty系列(10)——商品详情页

    本章以京东商品详情页为例,京东商品详情页虽然仅是单个页面,但是其数据聚合源是非常多的,除了一些实时性要求比较高的如价格.库存.服务支持等通过AJAX异步加载加载之外,其他的数据都是在后端做数据聚合然后 ...

  9. 高并发 Nginx+Lua OpenResty系列(9)——HTTP服务

    此处我说的HTTP服务主要指如访问京东网站时我们看到的热门搜索.用户登录.实时价格.实时库存.服务支持.广告语等这种非Web页面,而是在Web页面中异步加载的相关数据.这些服务有个特点即访问量巨大.逻 ...

  10. 高并发 Nginx+Lua OpenResty系列(3)——模块指令

    Nginx Lua 模块指令 Nginx共11个处理阶段,而相应的处理阶段是可以做插入式处理,即可插拔式架构:另外指令可以在http.server.server if.location.locatio ...

随机推荐

  1. Mysql5.5命令行修改密码(免安装)

    1. 命令行运行 mysql -uroot -p  my.ini文件设置跳过密码验证(详情见https://www.cnblogs.com/chaoge666/p/13626037.html) 2.输 ...

  2. Coursera Programming Languages, Part B 华盛顿大学 Week 3

    ML Versus Racket 同 函数编程模式 (with constructs that encourage a functional style) 不鼓励 mutation (但提供了支持 m ...

  3. shell语法1-概论、注释、变量、字符串

    如果感觉有点忘了或者有点懵,敲出来测试测试就好了 一:概论 Linux系统中一般默认使用bash,文件开头需要写#! /bin/bash,指明bash为脚本解释器chmod +x filename:使 ...

  4. go 单测

    1.在需要测试的go文件同级目录下创建${需要测试的文件名}_test.go文件 2. err, info :函数的返回值 "account-base-dd",1:传进去的参数 f ...

  5. 启动appium服务时报错,服务不通:Original error: Could not find 'apksigner.jar'

    启动时报错,服务不通:Original error: Could not find 'apksigner.jar' 是因为少了个文件,添加个文件就好了,可以参考下面的帖子. 可以参考这个帖子:http ...

  6. SpringBoot写第一个接口

    服务可以理解为一个接口,一个controller,一个做业务请求的 新建一个HelloWorldController import org.springframework.boot.SpringApp ...

  7. Spring系列之字段格式化-13

    字段格式化 Spring 3 引入了一个方便的SPI,它为客户端环境的实现Formatter提供了一个简单而健壮的替代方 Formatter Formatter实现字段格式化逻辑的SPI . pack ...

  8. sqlite3 replace函数服务器端替换一个字段中数据的例子 ;拼接字段字符串

    1.把字段filePath中所有类似 '/usr/local/Trolltech/%'的字符串都替换成   '/zzzzz/' update   EstDlpFileAttribute  set    ...

  9. Linux系统管理实战-DNS

    DNS 域名解析 DNS(domain name system) 解析方式 1.本地解析 /etc/hosts 127.0.0.1 localhost localhost.localdomain lo ...

  10. STM32任意引脚模拟IIC

    关于模拟I2C,任意接口都可模拟(未全部测试,可能存在特殊情况). 关于SDA_IN与SDAOUT:如下定义: 举例:#define MPU_SDA_IN() {GPIOA->CRL&= ...