open-resty 服务安装kafka插件

从github下载

作者:程序那点事儿 日期:2023/11/16 22:01


lua-resty-kafka 插件安装

下载代码后直接解压

  1. mkdir -p /usr/local/openresty/modules/ #创建一个目录,存放lua插件
  2. cd /usr/local/openresty/modules/ #进入目录
  3. rz -y #上传lua插件lua-resty-kafka-master.zip
  4. unzip lua-resty-kafka-master.zip #解压后删除lua-resty-kafka-master.zip
  5. mv lua-resty-kafka-master kafka #名字太长了,重命名一下(可以忽略这一步)

编写一个案例测试

创建一个lua目录, 该目录下创建一个lua文件

  1. mkdir /usr/local/openresty/nginx/lua #创建一个lua目录,存放lua脚本
  2. cd /usr/local/openresty/nginx/lua #进入lua目录下
  3. vim items-access.lua #创建一个lua文件,内容如下
    --引入json解析库
    local cjson = require("cjson")
    --kafka依赖库
    --是基于nginx.conf文件的lua_package_path配置路径下引入lua文件
    local client = require "resty.kafka.client"
    local producer = require "resty.kafka.producer"
    --配置kafka的连接地址
    local broker_list = {{host = "192.168.10.104", port=9092},{host = "192.168.10.105", port=9092},{host = "192.168.10.106", port=9092}
    }
    --创建生产者
    local pro = producer:new(broker_list, {producer_type="async"})--获取ip
    local headers = ngx.req.get_headers()
    local ip = headers["X-REAL-IP"] or headers["X_FORWARDER_FOR"] or ngx.var.remote_addr or "0.0.0.0"--定义消息内统
    local logjson = {}
    logjson["uri"] = ngx.var.uri
    logjson["ip"] = ip
    logjson["token"] = "Bearer ITHEIMA"
    logjson["actime"] = os.date("%Y-%m-%d %H:%m:%S")--发送消息 
    local offset, err = pro:send("logitems", nil, cjson.encode(logjson))--页面跳转
    local uri = ngx.var.uri
    uri = string.gsub(uri, "/web", "")
    ngx.exec(uri)
  4. vim /usr/local/openresty/nginx/conf/nginx.conf #引入插件,注意"?"前面是"/"
        #lua插件位置lua_package_path "/usr/local/openresty/modules/kafka/lib/?.lua;;";server {listen       80;server_name  localhost;#/web开始的请求,做日志记录,然后跳转到下面的locationlocation /web/items/ {content_by_lua_file /usr/local/openresty/nginx/lua/items-access.lua;}}
  5. 重启open-restry
    nginx -s reload
  6. 访问测试
    http://192.168.10.100/web/items/S1235433012779413504.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1547740.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

SOMEIP_ETS_136: SD_Option_Length_shorter_GT_0_as_specified_for_type

测试目的: 验证DUT能够处理一个UDP选项长度小于其类型所指定长度的SubscribeEventgroup消息,并以SubscribeEventgroupNAck作为响应或完全忽略该请求。 描述 本测试用例旨在确保DUT遵循SOME/IP协议,当接收到一个UDP选项长度小于其类型所指定…

WPS在表格中填写材料时,内容过多导致表格不换页,其余内容无法正常显示 以及 内容过多,导致表格换页——解决方法

一、现象 1,内容过多导致表格不换页,其余内容无法正常显示 2,内容过多,导致表格换页 二、解决方法 在表格内右击,选择表格属性 在菜单栏选择行,勾选允许跨页断行,点击确定即可 1&#xff0…

windows安装Redis以后配置远程访问

修改配置文件: 第一个地方: 第二个地方: 启动服务: redis-server .\redis.windows.conf 可能需要重启计算机 经过实测,这个配置文件也得改: 如果不想重启计算机,可以执行下面的命令重启…

代码随想录冲冲冲 Day56 图论Part8

117. 软件构建 这道题是使用拓扑排序的方法 看多个任务有优先级的情况下 怎么排序 对应到这道题就是文件排序 首先要记录每一个点的入度,当一个点的入度为0时,就说明这个点是顶点 然后记录每一个点向那些点相连 之后建立一个queue 寻找一个入度为0的…

基于quill2.0的富文本编辑器,Fluent Editor,支持表格,图片,表情等

官网&#xff1a;Fluent Editor | 基于 Quill 2.0 的富文本编辑器 安装 npm i opentiny/fluent-editor quill 使用案例 <template><div class"publish-form-container"><!-- TODO --><div ref"quillEditorRef" class"quill…

python的逻辑控制

python逻辑执行 python条件控制if嵌套循环语句内置函数range()Pass语句 python迭代器与生成器在python中创建一个迭代器生成器yield python条件控制 # 在python中&#xff0c;不使用括号将条件固定 if exp: # 条件满足则执行&#xff0c;后续语句不执行# 不使用{}将执行语句固…

Java框架学习(mybatis)(01)

简介&#xff1a;以本片记录在尚硅谷学习ssm-mybatis时遇到的小知识 详情移步&#xff1a;想参考的朋友建议全部打开相互配合学习&#xff01; 官方文档&#xff1a; MyBatis中文网https://mybatis.net.cn/index.html 学习视频&#xff1a; 067-mybatis-介绍和对比_哔哩哔…

《向量数据库指南》——Zilliz迁移服务:一键解锁跨平台数据迁移新纪元

在数据驱动的时代背景下&#xff0c;非结构化数据的处理与迁移已成为企业数字化转型中不可或缺的一环。随着向量数据库技术的飞速发展&#xff0c;尤其是像Milvus这样的高性能向量数据库系统的广泛应用&#xff0c;如何高效、安全、准确地实现数据在不同系统间的迁移&#xff0…

Arthas mc(Memory Compiler/内存编译器 )

文章目录 二、命令列表2.2 class/classloader相关命令2.2.2 mc &#xff08;Memory Compiler/内存编译器 &#xff09;举例1&#xff1a;可以通过-d命令指定输出目录&#xff1a;mc -d /temporary/tmp /temporary/tmp/AccountController.java举例2&#xff1a;通过--classLoade…

书生大模型实战营学习[7] InternLM + LlamaIndex RAG 实践

环境配置 选择30%A100做本次任务 conda create -n llamaindex python3.10 conda activate llamaindex conda install pytorch2.0.1 torchvision0.15.2 torchaudio2.0.2 pytorch-cuda11.7 -c pytorch -c nvidia pip install einops pip install protobuf安装Llamaindex cond…

2024年9月27日历史上的今天大事件早读

1540年09月27日罗马教皇正式批准耶稣会 1605年09月27日吉尔霍尔姆战役爆发 1825年09月27日世界第一条铁路在英国正式通车 1840年09月27日美国海军战略思想家马汉出生 1858年09月27日天地会起义&#xff0c;建立大成国 1910年09月27日橡胶股灾亡国录 1913年09月27日孙中山…

隆道供应商四大类服务升级全面速览!

隆道供应商服务升级&#xff0c;全流程在线业务协同场景&#xff0c;支持系统性交易协同服务和企业营销&#xff0c;通过持续深入洞察供应商的核心需求&#xff0c;对营销类、协同类、风控类及数据类四大关键服务进行了全面升级。推出一系列创新应用&#xff0c;致力于帮助供应…

项目启动错误

说明&#xff1a;记录一次项目启动&#xff0c;报数据库访问错误&#xff0c;如下&#xff1a; 错误信息&#xff1a;Invalid default&#xff1a;public abstract java.lang.Class tk.mybatis.spring.annotation.MapperScan.fatoryBean() 解决 没有引入mybatis依赖&#xff…

AlphaFold3 | 详解 AlphaFold3 的模型结构及其在不同类型的预测实验中的表现

Jumper 本文将介绍 24 年 5 月发布的 Alaphafold3&#xff0c;其以“使用 AlphaFold 3 进行生物分子相互作用的精确结构预测”为标题发表在《nature》上&#xff0c;通讯作者为 Jumper。 Jumper 具有物理、化学、生物和计算方面的丰富背景。Jumper 本科学的是物理和数学&#…

Python中的数据处理与分析:从基础到高级

在数据科学和数据分析领域&#xff0c;Python凭借其丰富的库和强大的生态系统&#xff0c;成为了最受欢迎的语言之一。本文将从基础到高级&#xff0c;详细介绍如何使用Python进行数据处理和分析&#xff0c;涵盖数据清洗、数据转换、数据可视化等多个方面。 1. 数据导入与导出…

网络安全专业,在校大学生如何赚外快,实现财富自由?零基础入门到精通,收藏这一篇就够了

如今&#xff0c;计算机行业内卷严重&#xff0c;我们不找点赚外快的路子这么行呢&#xff1f; 今天就来说说网络安全专业平时都怎么赚外快。 一、安全众测 国内有很多成熟的src众测平台&#xff0c;如漏洞盒子、火线众测、补天、CNVD、漏洞银行等。一些大厂也有自己的src&a…

下载配置Android Studio(2024年9月)

安装JAVA JDK 下载安装包 Java网站官网 Java Downloads | Oracle 我下载的是JDK Development Kit 17.0.12 downloads Windows x64 MSI Installer。 下载后打开文件&#xff0c;一路NEXT闭眼安装。 配置环境变量 设置-系统-系统高级设置-环境变量 1.新建一个系统环境变量&…

【Linux系统编程】第二十四弹---从零到一:掌握进程替换的奥秘

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、进程程序替换 1.1、替换原理 1.2、替换函数 1.3、函数解释 1.4、命名理解 1.5、代码演示 1.5.1、execl调用举例 1.5…

Dina: 1.0.1靶场

下载链接&#xff1a;https://download.vulnhub.com/dina/Dina-1-0-1.ova 一、信息收集 靶机界面 扫描主机ip arp-scan -l 扫描端口 nmap -p- -A 192.168.137.129 扫描目录 dirb http://192.168.137.129/ 打开网站 没有太多有用信息&#xff0c;点击提交后会有个目录 依旧…

HDFS分布式文件系统01-HDFS JAVA操作与联邦机制

HDFS分布式文件系统 参考学习目标第三课时知识点1-HDFS的Java API介绍知识点2-案例-使用Java API操作HDFS 第四课时知识点1-Federation机制的实现原理知识点2-Federation机制的特点知识点3-Federation机制的实现知识点4-Erasure Coding 参考 maven的setting.xml配置文件详解 …