同学你好:
这里是两个点:第一,文件中保存的是什么?第二,为什么要从文件中加载全量索引?
第一个问题:文件中保存的是预先存储的广告数据,可以以任意序列化的方式存储到文件中。课程中使用的是 JSON 序列化的方式保存,且放到了本地文件系统中的某一个目录下面。在多实例的情况下,这份文件是放到公共的分布式文件系统上的,例如:NFS 或 HDFS。
第二个问题:对于之后的增量索引,即对数据库中的表做了增删改操作,检索服务可以直接监听 Binlog 实现增量更新索引。但是,对于之前的数据内容怎么办呢?当然是直接读取之前保存的那份文件。但是,为什么不直接读取数据库,而是加载文件呢?这是因为,多个实例部署的时候,同时从 MySQL 中读取这一份数据,会给 MySQL 带来很大的压力。所以,才会从文件中加载全量索引。
欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!