业务了解—Kheka

Kheka

问题提出
  • 有什么业务
  • 每个业务的架构
  • 测试是怎么写的

一、业务

  • 主源、备源、ES、数据的压测
  • shell脚本

二、kheka-1.2.4-状态码和回源状态码

1、概念
  • heka

    • 目前主流的后端日志都采用的标准的elk模式,分别负责日志存储、收集和日志可视化
    • 日志文件多样,分布在各个不同的服务器,为了便于二次开发,提出了heka
    • heka对日志的处理流程为输入、分割、解码、过滤、 编码、输出。单个heka服务内部的数据流通过heka定义的message数据模型在各个模块内进行流转
    • heka内置了常用的大多数模块插件:输入插件和解码插件
  • 状态码

    • 当浏览者访问网页时,浏览器会向所在服务器发出请求,当浏览器接收并显示网页前,网页所在服务器会返回一个包含HTTP状态码的信息头,用以响应浏览器的请求
    • 分类:1xx 2xx 3xx 4xx 5xx
  • 回源

    • CDN领域的专用词,指的是CDN服务器从源站获取所要分发的内容
    • CDN服务器一般不主动回源,只有当用户向CDN请求资源而资源不存在或者已过期,才会向源站请求资源,即回源
    • CDN域名回源就是搜索引擎的蜘蛛在爬行的过程中直接抓取源地址上的内容,而不是存在各个节点上的缓存内容
    • 回源域名是CDN领域的专业术语,是直接用ip进行回源,但是客户源站有多个ip,且ip地址会经常变化,对于CDN厂商来说,为了避免经常更改配置(回源ip),会采用回源域名方式进行回源,这样即使源站的ip变化了,也不影响原有的配置
  • 机器

    • 堡垒机
    • 跳板机
      • 也称堡垒机,是一类可作为跳板批量操作远程设备的网络设备,是系统管理员和运维人员常用的操作平台之一。
    • 中控机
      • *控制系统的核心部分,是一台连接多项控制系统的机器。中控主机的主体即*控制系统
      • *控制系统是指对声、光、电等各种设备进行集中管理和控制的设备
  • 大数据

    • cache
      • 缓存
    • live
      • live_server 具有实时加载功能的小型服务器,可以使用它来破解html/css/javascript,但是不能部署最终站点。可以在项目中实时使用live_server作为一个实时服务器实时查看开发的网页或项目效果
    • relay
      • relay log,中继日志,一般情况下,它在mysql主从同步读写分离集群的从节点才开启,主节点一般不需要这个日志
      • 它是一个中介临时的日志文件,用于存储从节点master节点同步过来的binlog日志的内容,它里面的内容和mater节点的binlog日志里面的内容是一致的,然后slave节点从relaylog日志文件中读取数据应用到数据库中,来实现数据的主从复制
  • rpm

    • linux下的一种软件的可执行程序,软件包管理器,通过它能够更加轻松容易地实现软件的安装
    • 在一个操作系统下,需要安装实现各种功能的软件包,这些软件包一般都有各自的程序,比较复杂,同时还要解决软件包的版本、安装、配置、卸载的自动化问题,RedHat针对自己的系统提出了一个比较好的办法来管理成千上百的软件,这就是RPM管理系统。在系统中安装rpm管理系统以后,只要符合rpm文件标准的打包的程序都可以方便的安装、升级、卸载
  • .toml文件

    • 配置文件的使用由来已久,从ini/xml/json/yaml/toml,语言的表达能力越来越强,同时书写便捷性也在不断提升,toml是github ceo创建的语言,其目标是成为一个小规模的易于使用的语义化配置文件格式,toml被设计为可以无二义性的转换为一个哈希表
2、操作
  • 登录跳板机,登录测试环境(cache/relay/live)
  • 登录relay,随后登录cache
  • 在cache机和relay机中安装rpm包
  • 检查配置文件,重启服务,查看系统日志
  • 日志监控
3、get
  • 日志
    • cache——kingsoft字段日志
    • dorado——回源日志
    • live——直播CDN计量日志

三、kheka-collect模板测试

  • 步骤
    • 安装
    • 启动命令start recoder
    • 测试方法,与kheka-flux类似

四、kheka-flux模板测试

1、概念
  • 涉及的业务有直播和点播

  • 数据采集

    • 数据源:开放数据源、爬虫抓取、传感器、日志采集

    • 日志采集

      • 统计用户的操作,可以在前端进行埋点,在后端进行脚本收集、统计、来分析网站的访问情况,以及使用瓶颈等。

      • 方式一:通过web服务器采集,httpd/Nginx/Tomcat都自带日志功能,互联网公司有自己的海量数据采集工具,多用于系统日志采集,例如Hadoop的Chukwa、Cloudera的Flume、Facebook的Scribe等。这些工具均采用分布式架构,能够满足每秒数百MB的日志数据采集和传输需求

      • 方式二:自定义采集用户行为,使用JSP代码监听用户的行为,AJAX异步请求后台记录日志

2、操作
  • 设置cache、live机器可以免密登录到relay机
  • 安装部署说明——提供脚本部署和手动部署两种方式
  • 脚本部署
    • 安装自动化脚本—live、cache、relay机器自动化部署脚本
    • 脚本步骤—下载rpm包并安装,修改配置文件、重启kheka-flux程序
    • 执行
  • 手动部署
    • 测试点播,hostname改成点播hostname
    • sudo rpm -u //包升级
    • 修改配置cache.toml
  • 重启服务
  • 系统日志
  • 模板路径
  • 测试方法说明
    • 1、生产原始日志
    • 2、接收relay机器上聚合后产生的数据
    • 3、将原始日志打入对应的采集日志文件
    • 4、解码脚本,解析第一步生产出来的原始日志,将日志进行decode输出,得到中间日志
    • 5、过滤聚合中间日志,得到输出脚本
    • 6、结果对比脚本,将3与5中输出的日志进行对比,如果数据内容和数据条数与内容一致,那么测试通过
  • 测试脚本说明(以cache为例)
    • 脚本分为cache和live两部分
    • 1、clone项目到cache机器,将cache文件夹下的download_detail_test文件夹拷贝到cache的/root目录下
    • 2、找到日志监控路径,将对应的shell脚本拷贝到该路径下,并赋予执行权限
    • 3、结构对比

五、kheka主备对比

1、获取数据
  • (如果提供原始数据,一般默认从relay取数据,有时从spark取数据)

    • 主源:开发提供索引或者直接提供数据
    • 备源:开发提供原始数据或者跑好的数据
  • relay取数据

    • 直接执行python3 kheka_server.py模板名称,获取数据
  • spark取数据

    • 启动spark进程,进入目录, sh 对应文件.sh
    • 查看topic
    • 获取数据
2、概念
  • spark(计算引擎)
    • 一种与hadoop相似的开源集群计算环境,不同之处在于,spark启用了内存分布数据集,除了能够提供交互式查询外,还可以优化迭代工作负载
    • 专为大规模数据处理而设计的快速通用的计算引擎
  • kafka
    • 开源流处理平台,一种高吞吐量的分布式发布订阅消息系统,可以处理消费者在网站中的所有动作数据流
    • 目的是通过hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息
  • zookeeper
    • 分布式、开放源码的分布式应用程序协调服务,是hadoop和hbase的重要组件
    • 为分布式服务提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等
    • 目标是封装好复杂容易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户
上一篇:查询带参接口引入本地缓存


下一篇:初学Django:第七天,Redis的配置和使用