[3]elasticsearch源码深入分析——Setting和Environment
本篇为ElasticSearch源码分析系列文章的第三篇,上文解释了ElasticSearch的启动过程,其中多处涉及到了Setting,Settings和Environment类,所以本篇就以这几个类为出发点,详细研究ElasticSearch的源码架构。
Setting
Setting<T>类位于common/settings包下,封装了典型的环境设定,比如:value,parsing,scope。在ElasticSearch或者任何ElasticSearch插件中使用到的设定,都是用这个类型安全(通过提供Property的枚举类)且通用的设定类搭配AbstractScopedSettings类来设定工程参数的。一般封装完善的基础设施类工程都会提供类似于ElasticSearch中的Setting这种环境设定类型的完善封装类。
Setting继承于ToXContentToBytes,由于ToXContentToBytes是ToXContent的继承类,该实现支持将对象序列化为BytesReference,所以该类是支持序列化的。该类的继承关系如图所示:
相关文章