本文主要是介绍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
代码见: git@github.com: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确认
消息重发(有次数限制)
批次发送
这篇关于linux 的各项安装以及kafka的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!