Jafka类为整个程序的入口类,
这个类本身没有什么特别的,里面有两个小的知识点需要注意下。
这个类本身没有什么特别的,里面有两个小的知识点需要注意下。
- 在启动的时候注册了shutdownhook,虽然在杀死进程后所有的资源会得以释放,但是添加hook实现了程序终止时候的资源释放工作,可以看出作者的严谨。
具体的细节就不讲了,从main函数入口,创建对象,依次调用ServerStartable的启动,ServerStable里面包含Server,其实就是Server的startUp,初始化LogManager和SocketServer。
从这个地方可以看出,作者的设计意图,ServerStartable就是Server类的管理类,这个里面有一个逻辑就是如果传递了ConsumerConfig,那么就会启动一个EmbeddedConsumer.
![](https://i-blog.csdnimg.cn/blog_migrate/19a2ba70709dbc65b5aa92c30aa007b3.png)