[聚合文章] MQTT---HiveMQ源码详解(三)配置加载

消息系统 2017-12-19 14 阅读
config-urml
config-urml

初看这样的uml图保证所有人都是一脸懵逼,没关系,且听我一一道来。

1、由上一篇我们可以知道config读取是在main方法中就通过HiveMQConfigurationServiceFactory的静态方法create创建。

2、请记住config.xml里面的配置,其实config.xml的根就是HiveMQConfigurationService,他持有了
GeneralConfigurationService
ListenerConfigurationService
MqttConfigurationService
InternalConfigurationService
ThrottlingConfigurationService
PersistenceConfigurationService
SharedSubscriptionsConfigurationService
RestConfigurationService
ClusterConfigurationService
这些接口定义在hivemq spi上都可以看到其源码,有兴趣的朋友可以自行查看。

3、ConfigFile说白了就是config.xml的File的一个holder。

4、HiveMQConfigurationServiceFactory通过,ConfigurationReader来进行对config.xml进行读取,并给上述的那么多service进行初始化赋值。

5、ConfigurationReader通过EnvironmentVariableReplacer把环境变量替换到config.xml中的占位符中,具体的占位符语法情参照hivemq官网的文档。

6、那么通过上述流程就读取出了对应的配置,同时通过spi的形式将上述一堆service提供给Plugin使用。


MQTT交流群:221405150

RocketMQ交流群:10648794

NewSQL交流群:153575008

注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。