文章内容输出来源:拉勾教育Java高薪训练营
学习心得
课程介绍
第六阶段 分布式消息服务中间件进阶
模块二 高吞吐消息中间件Kafka
本模块对Kafka集群原理和消息流处理流程、组件机制、流处理基础等进行深入讲解,对从架构选型角度对三种MQ进行比较。
作业内容
使用Kafka做日志收集。
一、需要收集的信息:
1、用户ID(user_id)
2、时间(act_time)
3、操作(action,可以是:点击:click,收藏:job_collect,投简历:cv_send,上传简历:cv_upload)
4、对方企业编码(job_code)
二、工作流程:
1、HTML可以理解为拉勾的职位浏览页面
2、用户的操作会由Web服务器进行响应。
3、同时用户的操作也会使用ajax向Nginx发送请求,nginx用于收集用户的点击数据流。
4、Nginx收集的日志数据使用ngx_kafka_module将数据发送到Kafka集群的主题中。
5、只要数据保存到Kafka集群主题,后续就可以使用大数据组件进行实时计算或其他的处理了,比如职位推荐,统计报表等。
三、架构:
HTML+Nginx+ngx_kafka_module+Kafka
ngx_kafka_module网址:https://github.com/brg-liuwei/ngx_kafka_module
注意问题:由于使用ngx_kafka_module,只能接收POST请求,同时一般Web服务器不会和数据收集的Nginx在同一个域名,会涉及到使用ajax发送请求的跨域问题,可以在nginx中配置跨域来解决。
四、实战步骤:
- 安装Kafka
- 安装Nginx
- 配置ngx_kafka_module,注意跨域配置
- 开发HTML页面
课程目录及观看建议
2倍速模式
课程3小时
作业2小时
***
必看
**
建议看
*
可不看
作业说明
实现思路
软件版本
jdk-8u261-linux-x64
zookeeper-3.4.14
kafka_2.12-1.0.2
nginx-1.15.6
ngx_kafka_module
相关问题
-
nginx安装问题
安装nginx时遇到一个小问题。注意第一步解压nginx安装包后的文件为待编译的安装程序,所以不要解压到待安装目录,否则会编译安装时会发生文件冲突。
第二步进行编译安装时,安装后的运行目录通过
./configure --prefix=/opt/nginx-1.15.6
指定。 -
html访问跨域问题
软件运行环境搭建在虚拟机192.168.0.111中,如果用本机的html通过ajax访问,会发生跨域问题。
解决方法为将html也部署到虚拟机的nginx中,并且ajax请求地址改为192.168.0.111。具体参看nginx相关配置。
实现步骤
安装JDK
安装zookeeper
修改配置文件/opt/zookeeper-3.4.14/conf/zoo.cfg
:数据目录
设置环境变量/etc/profile
,生效配置,并启动zookeeper安装kafka
修改配置文件/opt/kafka_2.12-1.0.2/config/server.properties
:数据目录和zookeeper地址
设置环境变量/etc/profile
,生效配置,并启动kafka安装nginx
安装相关类库
准备好ngx_kafka_module,https://github.com/brg-liuwei/ngx_kafka_module
编译nginx,设置nginx配置文件/opt/nginx-1.15.6/conf/nginx.conf
启动nginx。启动nginx时报错,加载so库。html(拉勾职位信息页面)
测试流程
- 启动kafka消费端
- 打开拉勾职位浏览页面
- 依次点击:点击查看(click),收藏(job_collect),投简历(cv_send),上传简历(cv_upload)
- 查看nginx的access.log
- 查看kafka消费端信息