kafka对服务器的要求_kafka是什么?如何下载部署呢?
Kafka是由Apache软件基⾦会开发的⼀个开源流处理平台,由Scala和Java编写。Kafka是⼀种⾼吞吐量的分布式发布订阅消息系统,它可以处理消费者在⽹站中的所有动作流数据。 这种动作(⽹页浏览,搜
索和其他⽤户的⾏动)是在现代⽹络上的许多社会功能的⼀个关键因素。 这些数据通常是由于吞吐量的要求⽽通过处理⽇志和⽇志聚合来解决。
Kafka架构图
⼀、利⽤ Apache Kafka 系统架构的设计思路
1、⽹络游戏下载apache
假设我们正在开发⼀个在线⽹络游戏平台,这个平台需要⽀持⼤量的在线⽤户实时操作,玩家在⼀个虚拟的世界⾥通过互相协作的⽅式⼀起完成每⼀个任务。由于游戏当中允许玩家互相交易⾦币、道具,我们必须确保玩家之间的诚信关系,⽽为了确保玩家之间的诚信及账户安全,我们需要对玩家的 IP 地址进⾏追踪,当出现⼀个长期固定 IP 地址忽然之间出现异动情况,我们要能够预警,同时,如果出现玩家所持有的⾦币、道具出现重⼤变更的情况,也要能够及时预警。此外,为了让开发组的数据⼯程师能够测试新的算法,我们要允许这些玩家数据进⼊到 Hadoop 集,即加载这些数据到 Hadoop 集⾥⾯。
对于⼀个实时游戏,我们必须要做到对存储在服务器内存中的数据进⾏快速处理,这样可以帮助实时地发出预警等各类动作。我们的系统架设拥有多台服务器,内存中的数据包括了每⼀个在线玩家近 30 次访问的各类记录,包括道具、交易信息等等,并且这些数据跨服务器存储。
我们的服务器拥有两个⾓⾊:⾸先是接受⽤户发起的动作,例如交易请求,其次是实时地处理⽤户发
起的交易并根据交易信息发起必要的预警动作。为了保证快速、实时地处理数据,我们需要在每⼀台机器的内存中保留历史交易信息,这意味着我们必须在服务器之间传递数据,即使接收⽤户请求的这台机器没有该⽤户的交易信息。为了保证⾓⾊的松耦合,我们使⽤ Kafka 在服务器之间传递信息 。
2、Kafka 特性
Kafka 的⼏个特性⾮常满⾜我们的需求:可扩展性、数据分区、低延迟、处理⼤量不同消费者的能⼒。这个案例我们可以配置在 Kafka 中为登陆和交易配置同⼀个主题。由于 Kafka ⽀持在单⼀主题内的排序,⽽不是跨主题的排序,所以我们为了保证⽤户在交易前使⽤实际的IP 地址登陆系统,我们采⽤了同⼀个主题来存储登陆信息和交易信息。
当⽤户登陆或者发起交易动作后,负责接收的服务器⽴即发事件给 Kafka。这⾥我们采⽤⽤户 id 作为消息的主键,具体事件作为值。这保证了同⼀个⽤户的所有的交易信息和登陆信息被发送到 Kafka 分区。每⼀个事件处理服务被当作⼀个 Kafka 消费者来运⾏,所有的消费者被配置到了同⼀个消费者组,这样每⼀台服务器从⼀些 Kafka 分区读取数据,⼀个分区的所有数据被送到同⼀个事件处理服务器 (可以与接收服务器不同)。当事件处理服务器从 Kafka 读取了⽤户交易信息,它可以把该信息加⼊到保存在本地内存中的历史信息列表⾥⾯,这样可以保证事件处理服务器在本地内存中调⽤⽤户的历史信息并做出预警,⽽不需要额外的⽹络或磁盘开销。
⼆、Kafka服务安装
了解了Kafka⼀些很基础的概念后,还是需要动⼿去体验它是如何操作的。下⾯是在CentOS7的⼀些安装过程。
1、服务⽂件下载
2、修改配置
主要需要修改的配置⽂件有:server.properties,配置⽂件kafka⽬录下的配置⽂件夹下。
修改内容如下:
# listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://:9092
# Hostname and port the broker will advertise to producers and consumers.
advertised.listeners=PLAINTEXT://:9092
# A comma separated list of directories under which to store log files
log.dirs=/tmp/kafka-logs
简单的说明
listeners配置服务监控的套接字的地址
advertised.listeners配置收件⼈通知的⽣产者和消费者的主机名和端⼝
log.dirs配置消息数据存储的⽬录
3、启动服务
Kafka使⽤的是1.1.0的版本,内部⾃带了Zookeeper那么就不需要额外的下载Zookeeper了。
3.1⾸先启动Zookeeper服务
nohup ./bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log &
3.2启动Kafka服务
nohup ./bin/kafka-server-start.sh config/server.properties > kafka.log &
简单提⼀下,nohup和&是为了让Zookeeper和Kafka的服务能够在后台运⾏,并执⾏命令输出的⽇志分别记录到对应⽂件中去;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论