一、概述

1. Kafka是由LinkedIn(领英)开发的一个分布式的消息系统,最初是用作LinkedIn的活动流(Activity Stream)和运营数据处理的基础

    a. 活动流数据包括页面访问量(Page View)、被查看内容方面的信息以及搜索情况等内容。这种数据通常的处理方式是先把各种活动以日志的形式写入某种文件,然后周期性地对这些文件进行统计分析
    b. 运营数据指的是服务器的性能数据(CPU、IO使用率、请求时间、服务日志等等数据)。运营数据的统计方法种类繁多。  

2. Kafka是一个分布式的流式处理平台,主要包含三个功能    

    a. 发布和订阅数据,类似于消息队列或者企业中的消息传递系统
    b. 存储数据的时候有容错(分布式+复本机制)和持久化机制
    c. 数据产生的时候处理记录(数据)

3. 应用场景

    a. 在系统或者应用程序之间构建可靠的数据传输的实时流管道
    b. 在转换或者响应数据流的时候构建实时流程序

4. Kafka使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。

  目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成

5.Kafla之间传输数据是使用的零拷贝技术

二、消息队列对比

1. RabbitMQ

  a. RabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正因如此,它非常重量级,更适合于企业级的开发
  b. 实现了Broker构架,这意味着消息在发送给客户端时先在中心队列排队。对路由,负载均衡或者数据持久化都有很好的支持

2. Redis

  a. Redis是一个基于Key-Value对的NoSQL数据库,开发维护很活跃
  b. 虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用

3. ZeroMQ

  a. ZeroMQ号称最快的消息队列系统,尤其针对大吞吐量的需求场景
  b. ZeroMQ能够实现RabbitMQ不擅长的高级/复杂的队列,但是开发人员需要自己组合多种技术框架,技术上的复杂度是对这MQ能够应用成功的挑战
  c. ZeroMQ仅提供非持久性的队列,也就是说如果宕机,数据将会丢失。其中,Twitter的Storm 0.9.0以前的版本中默认使用ZeroMQ作为数据流的传输(Storm从0.9版本开始同时支持ZeroMQ和Netty(NIO)作为传输模块)

4. ActiveMQ  

  a. ActiveMQ是Apache下的一个子项目  

  b. 类似于ZeroMQ,它能够以代理人和点对点的技术实现队列,

  c.类似于RabbitMQ,它少量代码就可以高效地实现高级应用场景。

5. 消息队列的优势

  a. 屏蔽生产者和消费者之间的异构型
  b.实现消峰限流

三、Kafka的适用场景

1. Messaging

  a. 对于一些常规的消息系统,kafka是个不错的选择,partitons/replication和容错,可以使kafka具有良好的扩展性和性能优势
  b. kafka并没有提供JMS中的"事务性""消息传输担保(消息确认机制)""消息分组"等企业级特性;kafka只能使用作为"常规"的消息系统,在一定程度上,尚未确保消息的发送与接收绝对可靠(比如,消息重发,消息发送丢失等)

2. Website activity tracking

  a. kafka可以作为"网站活性跟踪"的最佳工具;可以将网页/用户操作等信息发送到kafka中.并实时监控,或者离线统计分析等

3. Metric

   a. Kafka通常被用于可操作的监控数据。这包括从分布式应用程序来的聚合统计用来生产集中的运营数据提要。

4. Log Aggregatio

  a. kafka的特性决定它非常适合作为"日志收集中心";

  b. application可以将操作日志"批量""异步"的发送到kafka集群中,而不是保存在本地或者DB中;

  c. kafka可以批量提交消息/压缩消息等,这对producer端而言,几乎感觉不到性能的开支。此时consumer端可以使hadoop等其他系统化的存储和分析系统

四、Kafka的安装

1.下载安装包

  官网地址:http://kafka.apache.org/downloads.html

  wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.3.0/kafka_2.11-2.3.0.tgz

2.解压安装包

  tar -zxvf kafka_2.11-2.3.0.tgz

3.进入config目录

  cd kafka_2.11-2.3.0/config

4.编辑配置文件(根据自己需求配置,这里我最基本的配置)

  vim server.properties

  21行:broker.id=0(随意不重复即可)

  60行:配置日志路径

  123行:配置zookeeper集群

5.将kafka目录scp拷贝至另外两个主机,并更改broker.id(不重复即可)

6.启动zookeeper集群

7.启动Kafka,执行:sh kafka-server-start.sh ../config/server.properties

五、基本指令

六、参数配置

Kakfa概述及安装过程的更多相关文章

  1. OpenVAS漏洞扫描基础教程之OpenVAS概述及安装及配置OpenVAS服务

    OpenVAS漏洞扫描基础教程之OpenVAS概述及安装及配置OpenVAS服务   1.  OpenVAS基础知识 OpenVAS(Open Vulnerability Assessment Sys ...

  2. (转载)Oracle12g安装图解与安装过程常见问题注意事项

    首附转载地址:http://jingyan.baidu.com/article/f96699bbab21c0894e3c1bf8.html 首先,点击"setup",建议以管理员身 ...

  3. 转载 Mysql安装过程

    目录 一.概述 二.MySQL安装 三.安装成功验证 四.NavicatforMySQL下载及使用 一.概述 MySQL版本:5.7.17 下载地址:http://rj.baidu.com/soft/ ...

  4. Nginx概述和安装(1)

    一.Nginx概述 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 I ...

  5. C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节

    C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节 1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C++图形用户界面应用程序框架.它为应用程序开发者提供建立艺术级图形界面 ...

  6. hadoop1.2.1+zk-3.4.5+hbase-0.94.1集群安装过程详解

    hadoop1.2.1+zk-3.4.5+hbase-0.94.1集群安装过程详解 一,环境: 1,主机规划: 集群中包括3个节点:hadoop01为Master,其余为Salve,节点之间局域网连接 ...

  7. Bigbluebutton安装过程

    BigBlueButton安装过程(翻译) 欢迎来到BigBlueButton 1.0-beta安装指南(以下简称BigBlueButton 1.0).BigBlueButton是一个开放源代码的网络 ...

  8. MySQL详细安装过程

    目录 一.概述 二.MySQL安装 三.安装成功验证 四.NavicatforMySQL下载及使用 一.概述 MySQL版本:5.7.17 下载地址:http://rj.baidu.com/soft/ ...

  9. 深度探究apk安装过程

    一.先验知识 0.PcakageaManagerService版本号变化 1.概述 2.PackageManagerService服务启动流程 3. PackageManagerService入口 二 ...

随机推荐

  1. python3练习100题——012

    今天继续,答案都通过py3测试. 原题链接:http://www.runoob.com/python/python-exercise-example12.html 题目:判断101-200之间有多少个 ...

  2. No Delegate set : lost message:libpng error: Not a PNG file

    当出现这个问题时,是因为本来是jpg或其他格式的图片存成了png导致的.或者有的图片本来就是jpg的,Android Studio一编译,发现不是png才造成了这个问题.解决这个问题可以在Androi ...

  3. MySQL加号+ 的作用

    案例:查询员工名和员工姓,连接成一个字段,并显示为: 姓名 SELECT last_name+first_name AS 姓名 FROM employees;没有报错但姓名一下全是0 Java中的 + ...

  4. C++内存管理(new operator/operator new/operator delete/placement new)

    new operator 我们平时使用的new是new操作符(new operator),就像sizeof一样是语言内置的,不能改变它的含义,功能也是一样的 比如: string *ps = new ...

  5. caffe.bin用法

    $ ./build/tools/caffe.bin caffe.bin: command line brew usage: caffe <command><aegs> comm ...

  6. Android开发实战——记账本(5)

    开发日志——(5)     今天打算将图标的功能实现,将打开图表的选项放在右上方,所以重写MainActivity中的onOptionsItemSelected方法.增添Chart选项 public ...

  7. Codeforces Round #525 (Div. 2) C. Ehab and a 2-operation task 数学 mod运算的性质

    C. Ehab and a 2-operation task 数学 mod运算的性质 题意: 有两种对前缀的运算 1.对前缀每一个\(a +x\) 2.对前缀每一个\(a\mod(x)\) 其中x任选 ...

  8. selenium的显示等待、隐式等待

    转载:https://www.cnblogs.com/mabingxue/p/10293296.html Selenium显示等待和隐式等待的区别1.selenium的显示等待原理:显示等待,就是明确 ...

  9. VMware 搭建linux虚拟机环境

    1.任务管理器-服务 确认VMware服务是否启动 2.VMware生成网关地址 编辑--虚拟网络编辑器 VMnet8 NAT设置子网IP,子网掩码,网关 3.windows网络--更改适配器设置-- ...

  10. vue使用axios访问后台接口

    链接1:https://segmentfault.com/a/1190000012635783#item-2    // axios 使用post方式传递参数,后端接受不到,怎么解决 链接2:http ...