kafka学习笔记1:测试环境搭建
最近因为架构中引入了kafka,一些之前在代码中通过RPC调用强耦合但是适合异步处理的内容可以用kafka重构一下.
考虑从头学一下kafka了解其特性和使用场景。
环境选择
首先是测试环境的搭建,平时使用的是win,但kafka以及zk在win上会存在一些bug(例如 https://issues.apache.org/jira/browse/KAFKA-1194),最好还是在linux平台上搭建.
虚拟机是一个不错的选择但开销比较大,日常使用的笔记本8G内存开启虚拟机不是很方便,bash on windows是个不错的选择.
(另在Store中可以下载ubuntu等子系统,现在只限于insider)

在组件中开启后重启电脑更新.
环境搭建
重启后,在命令行或者powershell中输入bash进入环境.

但这里的环境和外部的windows不互通,windwos装了java也无法在bash中使用.
需要先安装一些额外的组件.
java安装

输入后选择一个即可(这里选择了openjdk-8-jre-headless)
zookeeper
kafka依赖zk
简单的关系如下(图片来源kafka权威指南):

所以使用kafka之前需要配置好zk.
cd ~
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar -zxf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 /usr/local/zookeeper
mkdir -p /var/lib/zookeeper
vim /usr/local/zookeeper/conf/zoo.cfg
/usr/local/zookeeper/bin/zkServer.sh start
zoo.cfg的内容和zoo_sample.cfg大致相同,将dataDir换为/var/lib/zookeeper即可.
内容如下:
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
启动后zk在2181端口运行
kafka
kafka安装过程类似.
这里学习使用0.9.0.1版本,去年2月发布.
和所看的书保持一致避免出现不兼容问题导致书中例子无法运行阻碍进度(新版本的功能之后再额外学习).
wget http://mirror.bit.edu.cn/apache/kafka/0.9.0.1/kafka_2.11-0.9.0.1.tgz
tar —zxf kafka 2.11-0.9.0.1.tgz
mv kafka 2.11-0.9.0.1 /usr/local/kafka
mkdir /tmp/kafka—logs
/usr/local/kafka/bin/kafka—server—start.sh -daemon /usr/local/kafka/config/server.properties
创建topic并验证:
# /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181
--replication-factor 1 --partitions 1 --topic test
Created topic "test".
# /usr/local/kafka/bin/kafka-topics.sh --zookeeper localhost:2181
--describe --topic test
Topic:test PartitionCount:1 ReplicationFactor:1 Configs:
Topic: test Partition: 0 Leader: 0 Replicas: 0 Isr: 0
同时zk的/brokers/topics下会多出一个test.
至此整个安装过程就结束了.
上面的/usr/local/kafka/config/server.properties是broker的配置,其中一些配置的含义如下:
broker.id
都必须要有一个id 默认是0
在一个集群里必须唯一port
监听的端口 默认是9092
指定1024以下的端口要用root跑 但不建议zookeeper.connent
连接zk的地址 默认是localhost的2181
格式是hostname:port/path
默认path不写是根log.dirs
log块的存储位置
可以用,分隔存多个
一个分区的日志会存在一个路径下num.recovery.threads.per.data.dir
用来启动和结束时做日志恢复相关
和dirs的数量相关 如果是3 dirs数量是2 那会有6个线程num.partitions
一个新的topic会有多少个分区
分区数只能比这个数字大 不能比这个小
kafka学习笔记1:测试环境搭建的更多相关文章
- Nutch1.7学习笔记:基本环境搭建及使用
Nutch1.7学习笔记:基本环境搭建及使用 作者:雨水,时间:2013-10-31博客地址:http://blog.csdn.net/gobitan 说明:Nutch有两个主版本1.x和2.x,它们 ...
- Hadoop学习笔记(3)——分布式环境搭建
Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...
- 【自动化学习笔记】_环境搭建Selenium2+Eclipse+Java+TestNG_(一)
目录 第一步 安装JDK 第二步 下载Eclipse 第三步 在Eclipse中安装TestNG 第四步 下载Selenium IDE.SeleniumRC.IEDriverServer 第五步 下 ...
- Mybatis学习笔记之一(环境搭建和入门案例介绍)
一.Mybatis概述 1.1 Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了go ...
- oracle学习笔记1(环境搭建)
学习的开始先剧透一下,本人有点笨,本来想用oracle vbox,装个red hat+oracle,但是虚拟机一直报错,0x00000000内存不能written.所以便想到其他的办法,刚好接触了go ...
- Hadoop学习笔记—14.ZooKeeper环境搭建
从字面上来看,ZooKeeper表示动物园管理员,这是一个十分奇妙的名字,我们又想起了Hadoop生态系统中,许多项目的Logo都采用了动物,比如Hadoop采用了大象的形象,所以我们可以猜测ZooK ...
- Flink学习笔记:Flink开发环境搭建
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- php学习笔记1--开发环境搭建:apache+php+mysql
php开发环境搭建:apache + php + mysql1.下载apache,php及mysql安装包2.安装apache:下载的apache若是.msi可直接双击,按指示一步一步安装:(若操作系 ...
- Spring4学习笔记一:环境搭建与插件安装、基本概念理解
一:环境搭建 1:开发环境:JDK安装.Eclipse安装 2:数据库:Mysql.Sequel Pro(数据库可视化操作工具) 3:web服务器:Tomcat下载,并且把tomcat配置到Eclip ...
随机推荐
- Cow Exhibition 变种背包
Cow Exhibition Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Subm ...
- bzoj1027 [HNOI2004]打鼹鼠
[HNOI2004]打鼹鼠 2014年5月2日2,8605 Description 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿Q编写了一个打鼹鼠 ...
- httpd网页身份认证
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- 考了3年,工作四年,零基础在职终于拿到CFA证书
大家都知道CFA Charterholder是独有的全球公认的投资管理从业人员高职业水平和道德水准的有力证明,是金融界卓越专业成就的象征:CFA资格强调和遵循极其严格的职业操守和道德准则,世界各主要发 ...
- WPF通过代码动态的加载样式
tabitem.SetResourceReference(TabItem.StyleProperty, "mainTabItemStyle"); tabitem.Content = ...
- iOS四种多线程(swift和oc)
在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项.当然也会给出几种多线程的案例,在实际使用中感受它们的区别.还有一点需要说明的是,这篇文章将会使用 Swift 和 ...
- 【学习】苹果iPhone safari浏览器样式重置修复按钮圆角bug
iPhone safari浏览器中,input按钮会按苹果的默认UI来渲染,例如,写的按钮明明是这个样的: 但是实际就会是这个样子: 怎么办呢? 为按钮添加:-webkit-appearance: n ...
- SAP的 消息 弹出窗口(备忘)
DATA: i_smesg TYPE tsmesg WITH HEADER LINE. i_smesg-msgty = 'E'. i_smesg-arbgb = '. i_smesg-txtnr = ...
- 声明数组变量/// 计算所有元素的总和/打印所有元素总和/输出/foreach循环/数组作为函数的参数/调用printArray方法打印
实例 下面是这两种语法的代码示例: double[] myList; // 首选的方法 或 double myList[]; // 效果相同,但不是首选方法 创建数组 Java语言使用new操作符来创 ...
- memcached+狀態模式+工廠方法使用
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...