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确认

 

消息重发(有次数限制)

 

批次发送

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值