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的各组件,并启动各组件。依次介绍各组件。
网友评论