linux 的各项安装以及kafka的使用

为了把 kafka代码跑起来, 搭了一天的环境。

具体如下: 在 windows系统中,增加虚拟机CentOS, 然后在CentOS中安装jdk,maven,zk,idea,kafka等必须的软件。

CentOS与本地windows的交互 使用xshell软件 加上 rz,sz 命令。

安装linux jdk:
https://www.cnblogs.com/shihaiming/p/5809553.html

安装linux zk:
https://www.cnblogs.com/jimmy-muyuan/p/8748006.html

安装linux maven:
https://www.cnblogs.com/freeweb/p/5241013.html

安装linux idea:
https://blog.csdn.net/YF_Li123/article/details/79951048

安装linux kafka:
https://www.cnblogs.com/unqiang/p/5166770.html
 

代码见: [email protected]:tuyf/kafka.git

代码中 主要包含以下几个样例:

第一个样例: Java访问Kafka实例: ProducerSample 和 ConsumerSample 。 

ConsumerSample 能正常跑起来,ProducerSample  在跑起来的时候,报了以下错误(未解决):

第二个样例: Spring 整合java, 最终的结果是 使用在 spring配置文件中 配置的

kafkaTemplate 实现类 来实现消息的发送, 见类SpringProducer 和 spring-kafka.xml

成功跑起来的。

第三个样例:基于Kafka 用户行为的数据采集

在package report中 的代码 。 该样例有自己的页面, 使用tomcat之类的容器跑起来之后,点击 会触发后台的采集动作。

第四个样例:日志收集,针对分布式环境下,各台机器上 都有自己的日志; 需要统一收集起来,进行精确的查询。

第五个样例:基于kafka的流量削峰:

是一个电商的秒杀场景: 使用tomcat把 样例跑起来之后,进入秒杀页面,发现中文乱码。

点击立即秒杀,后台报错, 一看是 redis没有配置的问题。

kafka的实践建议:

分区: 一般建议 partition的数量 要大于或等于消费者的数量, 这样可以实现最大并发。

复制:kafka使用了zk实现了去中心化的功能,复制 保证了kafka在部分节点不可用时,依然保持整体的可用性。

复制是针对分区的,一个分区有多个 副本,副本被保存在Broker上。 

副本有两种类型: leader副本(每个分区都会有)和follower副本。

为了保证一致性,所有生产者和消费者的请求 都会经过leader, 二follower不处理客户端的请求(职责是在leader宕机时,替代leader)。

消息发送:

1 立即发送

2 同步发送

3 异步发送

消息发送确认:

1 不等确认

2 只等leader确认

3 等leader和follower确认

消息重发(有次数限制)

批次发送

猜你喜欢

转载自blog.csdn.net/tuyf_hs/article/details/88351531