nginx java插件_nginx安装插件直接对接kafka集群

安装环境:

centos 6.5 64位

所需软件版本:

jdk1.8.0_171

nginx-1.12.2.tar.gz

kafka_2.11-0.10.2.1.tgz

zookeeper-3.4.5.tar.gz

scala-2.11.4.tgz

所需服务器:4台(三台安装scala、zookeeper和kafka,一台安装nginx)

【A:部署kafka集群】

1.安装jdk

yum install java-1.8.0-openjdk* -y

2.安装scala

tar -zxvf scala-2.11.4.tgz -C /usr/local/src

3.进入Scala解压目录,进行重命名

cd /usr/local/src

mv scala-2.11.4 scala

1.安装zookeeper

tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local/src

2.进入到zk的配置文件目录下,重命名文件夹并修改zookeeper配置文件

cd /usr/local/src

mv zookeeper-3.4.5 zk

cd zk

mv zoo_sample.cfg zoo.cfg

3.更改zoo.cfg两个地方:

dataDir=/usr/local/src/zk/data

文件最后新增:

server.0=172.27.16.13:2888:3888

server.1=172.27.16.12:2888:3888

server.2=172.27.16.11:2888:3888

4.返回到zk目录下,新建data目录并进入

mkdir data

cd data/

5.新建myid文件

vi myid

6.设置id,与server.0一样,这里第一台设置为0(3台机器,按0、1、2依次分配)

7.在另外两台机器上重复以上步骤,唯一不同的是myid文件依次设置不同的id

1.安装kafka上传kafka安装包并解压

tar -zxvf kafka_2.11-0.10.2.1.tgz -C /usr/local/src

2.更改文件夹名称

mv kafka_2.11-0.10.2.1 kafka

3.进入到kafka安装包config目录修改配置文件

cd kafka/config/

vi server.properties

在这个版本中主要更改3个地方

broker.id=0(3台机器,按0、1、2依次分配)

delete.topic.enable=true(命令行删除topic【真正删除还需要在/tmp/目录下删除kafka-logs文件夹】)

advertised.listeners=PLAINTEXT://172.27.16.12:9092(设置为本机的ip)

zookeeper.connect=172.27.16.13:2181,172.27.16.12:2181,172.27.16.11:2181(zookeeper地址)

4.在另外两台机器上重复以上步骤,唯一不同的是broker.id依次设置不同的id

【启动kafka集群】

1.进入到kafka安装目录

cd /usr/local/src/kafka/bin

2.启动kafka

./kafka-server-start.sh -daemon /usr/local/src/kafka/config/server.properties

3.创建topic

./kafka-topics.sh --create --zookeeper 172.27.16.13:2181,172.27.16.12:2181,172.27.16.11:2181 --replication-factor 1 --partitions 1 --topic track

./kafka-topics.sh --create --zookeeper 172.27.16.13:2181,172.27.16.12:2181,172.27.16.11:2181 --replication-factor 1 --partitions 1 --topic user

4.查看topic描述

./kafka-topics.sh --describe --zookeeper 172.27.16.13:2181,172.27.16.12:2181,172.27.16.11:2181 --topic track

./kafka-topics.sh --describe --zookeeper 172.27.16.13:2181,172.27.16.12:2181,172.27.16.11:2181 --topic user

5.查看所有topic

./kafka-topics.sh --list --zookeeper 172.27.16.13:2181,172.27.16.12:2181,172.27.16.11:2181

6.删除topic【真正删除还需要在/tmp/目录下删除kafka-logs文件夹,然后重启kafka】

./kafka-topics.sh --delete --zookeeper 172.27.16.13:2181,172.27.16.12:2181,172.27.16.11:2181 --topic track

7.关闭kafka服务

./kafka-server-stop.sh

8.创建一个消费者

./kafka-console-consumer.sh --bootstrap-server 172.27.16.13:9092,172.27.16.12:9092,172.27.16.11:9092 --topic track --from-beginning

9.创建一个生产者

./kafka-console-producer.sh --broker-list 172.27.16.13:9092,172.27.16.12:9092,172.27.16.11:9092 --topic track

10.此时在生产者窗口下输入信息,消费者即可收到消息

补充:

启动一个命令行的生产者

./kafka-console-producer.sh --broker-list 172.27.16.13:9092,172.27.16.12:9092,172.27.16.11:9092 --topic xiaoniu

启动一个命令行的消费者

./kafka-console-consumer.sh --zookeeper 172.27.16.13:2181,172.27.16.12:2181,172.27.16.11:2181 --topic my-topic --from-beginning

消费者连接到borker的地址【这个和命令行消费者不同】

./kafka-console-consumer.sh --bootstrap-server 172.27.16.13:9092,172.27.16.12:9092,172.27.16.11:9092 --topic xiaoniu --from-beginning

至此kafka集群安装完毕

【B:安装nginx及kafka插件】

1.上传nginx安装包

2.解压nginx

tar -zxvf nginx-1.12.2.tar.gz -C /usr/local/src/

3.安装git

yum install -y git

4.切换到/usr/local/src目录,然后将kafka的c客户端源码clone到本地

cd /usr/local/src

git clone https://github.com/edenhill/librdkafka

5.进入到librdkafka,然后进行编译

cd librdkafka

yum install -y gcc gcc-c++ pcre-devel zlib-devel

./configure

make && make install

6.安装nginx整合kafka的插件,进入到/usr/local/src,clone nginx整合kafka的源码

cd /usr/local/src

git clone https://github.com/brg-liuwei/ngx_kafka_module

7.进入到nginx的源码包目录下(编译nginx,然后将将插件同时编译)

cd /usr/local/src/nginx-1.12.2

./configure --add-module=/usr/local/src/ngx_kafka_module/

make

make install

8.修改nginx的配置文件

主要修改两个地方:

kafka;

kafka_broker_list 118.25.213.188:9092 118.24.12.122:9092 118.25.213.36:9092;

以及

location = /kafka/track {

kafka_topic track;

}

#这是转发另外一个topic,可以不设置

location = /kafka/user {

kafka_topic user;

}

9.启动nginx

sbin/nginx

10.查看nginx进程

ps -ef | grep nginx

netstat -anpt | grep nginx

【启动nginx,报错,找不到kafka.so.1的文件】

error while loading shared libraries: librdkafka.so.1: cannot open shared object file: No such file or directory

解决办法:加载so库

echo "/usr/local/lib" >> /etc/ld.so.conf

ldconfig

11.启动成功后,向kafka集群发送消息测试

curl localhost/kafka/track -d "message send to kafka track topic"

【补充以及报错解决:】

kafka创建topic报错解决:

创建topic的paration大于可用的boker:

创建topic 指定partitions 为5 而 borker只有一个

./bin/kafka-topics.sh -zookeeper idc007128:2181,idc007124:2181,idc007123:2181 -topic test -replication-factor 2 -partitions 5 -create

##问题

Error while executing topic command replication factor: 2 larger than available brokers: 1

解决:

-replication-factor 1 副本数为1

./bin/kafka-topics.sh -zookeeper idc007128:2181,idc007124:2181,idc007123:2181 -topic test -replication-factor 1 -partitions 1 -create

Created topic "test".

启动kafka报内存不足的错误

修改kafka-server-start.sh启动参数

export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"

你可能感兴趣的:(nginx,java插件)