第二阶段模块二(Kafka)

一、作业要求

 

使用Kafka做日志收集

 

需要收集的信息:

1、用户ID(user_id)

2、时间(act_time)

3、操作(action,可以是:点击:click,收藏:job_collect,投简历:cv_send,上传简历:cv_upload)

4、对方企业编码(job_code)

1、HTML可以理解为拉勾的职位浏览页面

2、Nginx用于收集用户的点击数据流,记录日志access.log

3、将Nginx收集的日志数据发送到Kafka主题:tp_individual

 

架构:

HTML+Nginx+ngx_kafka_module+Kafka

提示:

学员需要自己下载nginx,配置nginx的ngx_kafka_module,自定义一个html页面,能做到点击连接就收集用户动作数据即可。

作业需提交:

1、html的截图+搭建的过程+结果截图以文档或视频演示形式提供。

2、作业实现过程的代码。

(注意:1、需要把搭建过程用文档写清楚,2、运行效果:在html上点击相应的连接或按钮,应该在Kafka中看到有消息流进来,效果最好以视频形式演示。)


二、实现步骤

1. 安装 Nginx 和 ngx_kafka_module

1.1 安装 librdkafka

# 在安装nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel、git
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel git

# 需要先安装 librdkafka,否则会报下面这个错
## fatal error: librdkafka/rdkafka.h: No such file or directory
cd /opt/lagou/servers
git clone https://github.com/edenhill/librdkafka

# 下载完成后配置并编译
cd /opt/lagou/servers/librdkafka
./configure
make && make install

 

1.2 安装 Nginx 和 ngx_kafka_module

cd /opt/lagou/software
# 下载 nginx 安装包
wget https://nginx.org/download/nginx-1.19.6.tar.gz
# 解压安装包
tar -zxvf nginx-1.19.6.tar.gz -C ../servers/

cd /opt/lagou/servers
# 下载 ngx_kafka_module 安装包
git clone https://github.com/brg-liuwei/ngx_kafka_module

cd /opt/lagou/servers/nginx-1.19.6
# 配置
./configure --add-module=/opt/lagou/servers/ngx_kafka_module/

# 编译
make && make install

# 修改配置文件前需要先启动 zookeeper 和 Kafka,启动成功后创建 topic
kafka-topics.sh --create --zookeeper linux121:2181,linux122:2181,linux123:2181 --replication-factor 1 --partitions 3 --topic tp_individual

# 修改配置文件
vim /usr/local/nginx/conf/nginx.conf

image.png

# 启动 nginx
./sbin/nginx
# 启动 kafka 消费者窗口
kafka-console-consumer.sh --bootstrap-server linux121:9092,linux122:9092,linux123:9092 --from-beginning --topic tp_individual
# 测试
curl linux121:81/kafka/log -d "hello world" -v

image.png

image.png

测试成功

 

1.3 编写 html 文件

下载 jquery-3.5.1.min.js 文件,编写 html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>拉勾教育</title>
</head>
<script src="./jquery-3.5.1.min.js"></script>
<body>
  <input id="user_id" type="text" value="zz-001" hidden="hidden">
  <input id="job_code" type="text" value="LG000001" hidden="hidden">
  <button id="click" class="action" act_type="click">点击</button>
  <button id="collect" class="action" act_type="job_collect">收藏</button>
  <button id="send" class="action" act_type="cv_send">投简历</button>
  <button id="upload" class="action" act_type="cv_upload">上传简历</button>
  <label id="label"></label>
  </body>
  <style>
      .action {
          height: 30px;
          font-family: 微软雅黑;
          font-size: 14px;
          color: rgb(255, 255, 255);
          border: none;
          font-weight: bold;
          border-radius: 4px;
      }

      #click {
          background-color: rgb(136, 50, 50);
      }

      #collect {
          background-color: rgb(211, 126, 69);
      }

      #send {
          background-color: rgb(204, 192, 85);
      }

      #upload {
          background-color: rgb(121, 155, 102);
      }
  </style>
  <script>
      $(document).ready(function () {
          $(".action").click(function () {
              var user_id = $("#user_id").val();
              var act_time = new Date();
              var action = this.getAttribute("act_type")
              var job_code = $("#job_code").val();
              var log = "{\"user_id\":\""+user_id+"\",\"act_time\":\""+act_time+"\",\"action\":\""+action+"\",\"job_code\":\""+job_code+"\"}";
              $.ajax({
                  url: "http://linux121:81/kafka/log",
                  type: "POST",
                  dataType: "json",
                  data: log
              })
          });
      })
  </script>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值