Kafka的启动

Kafka各Server称为Broker。Broker有自己的状态每个状态都是BrokerStates这个sealed trait的子类,trait在scala中相当于JAVA的interface,sealed在scala中主要用于模式匹配有两个作用

1,其修饰的trait,class只能在当前文件里面被继承,

2,用sealed修饰这样做的目的是告诉scala编译器在检查模式匹配的时候,让scala知道这些case的所有情况,scala就能够在编译的时候进行检查,看你写的代码是否有没有漏掉什么没case到,减少编程的错误。

共有以下的实现类,也就有一下几种状态,

case object NotRunninge  xtends BrokerStates {val state: Byte =0 }//未运行

case object Starting extends BrokerStates {val state: Byte =1 }//启动中

case object RecoveringFromUncleanShutdown  extends BrokerStates {val state: Byte =2 }//从上次异常恢复中

case object RunningAsBroker  extends BrokerStates {val state: Byte =3 }//已启动

case object PendingControlledShutdown  extends BrokerStates {val state: Byte =6 }//controlled关闭

case object BrokerShuttingDown  extends BrokerStates {val state: Byte =7 }//关闭broker


kafka的启动类是Kafka.scala

读出传入的参数

这个参数一般为config/server.properties,启动的配置文件进行解析,获取一个Properties

生成KafkaServer实例

把上面获取的Properties包装为KafkaConfig,传给KafkaServer的构造函数,调用KafkaServer的start方法启动。KafkaServer是个门面类包含了一些Kafka的各组件,并启动各组件。依次介绍各组件。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Scala与Java的关系 Scala与Java的关系是非常紧密的!! 因为Scala是基于Java虚拟机,也就是...
    灯火gg阅读 3,479评论 1 24
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,841评论 18 139
  • ** 今天看了一下kafka官网,尝试着在自己电脑上安装和配置,然后学一下官方document。** Introd...
    RainChang阅读 5,039评论 1 30
  • 姓名:周小蓬 16019110037 转载自:http://blog.csdn.net/YChenFeng/art...
    aeytifiw阅读 34,742评论 13 425
  • 最开始的时候,我想写的是 骄意明悟 ~~当初是我阴差阳错写错了字,娇写成了骄~~ 这戓许是福至心灵造成的吧!...
    骄意似明阅读 272评论 0 0