2021SC@SDUSC
之前我们主要分析了seahub部分的代码,这次我们先转向proset部分的代码,在之后我们还会继续分析seahub。
Proset
Proset主要的代码集中在elasticsearch以及python中的seafes和seafevents。之前我已经初步分析过elasticsearch,它是一种分布式、RESTful 风格的搜索和数据分析引擎。现在我们来先看一下elasticsearch部分。
先展示一下elasticsearch文件目录。
bin包含了一些脚本文件,里面包括启动elasticsearch,安装插件等;
config是配置文件目录,里面有包括es配置文件elasticsearch.yml、JVM 配置文件jvm.options和日志配置文件log4j2.properties;
modules包含所有的es模块;
plugins包含所有已经安装的插件。
最后的三个文件基本上是关于elasticsearch的一些说明文件。
这次我们先分析一下config文件夹中非常重要的elasticsearch.yml文件。
elasticsearch.yml
elasticsearch为大多数设置提供了合理的默认设置。我们可以通过此文件来配置节点。
cluster.name: my-application
配置es的集群名称。es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分。
node.name: node-1
设置节点的名称。
node.attr.rack: r1
向节点添加自定义属性。
path.data: /path/to/data
存储数据的目录路径。
path.logs: /path/to/logs
日志文件的路径。
bootstrap.memory_lock: true
启动时锁定内存。确保堆大小设置为可用内存的一半左右并且允许进程的所有者使用此限度、
network.host: 192.168.0.1
将绑定地址设置为特定IP(IPv4或IPv6)。
http.port: 9200
为HTTP设置自定义端口。
discovery.zen.ping.unicast.hosts: ["host1", "host2"]
设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。主机的默认列表为[“127.0.0.1”、“[::1]”。
discovery.zen.minimum_master_nodes: 3
通过配置大多数节点(符合条件的主节点总数/2+1)来防止“脑裂”。当两(多)个节点同时认为自已是唯一处于活动状态的服务器从而出现争用资源的情况,这种争用资源的场景即是所谓的“脑裂”。
gateway.recover_after_nodes: 3
设置集群中N个节点启动时进行数据恢复 。
action.destructive_requires_name: true
删除索引时需要显式名称。
后续我还会继续分析proset的其他文件以及seahub部分的代码。