总结-开思-数据集成平台-V1.0
2021-07-31
总结
架构
设计阶段应注重异常流程的设计, 否则写出来的没有经过设计的异常处理代码会非常臃肿.
流处理程序中, 应保证元数据的一致性
即一个元数据应该只对应一个特定的数据体. 即使元数据里面的内容是相同的, 也不能随意的更换它
当系统较复杂时, 类型键的命名应该具体, 以避免歧义.
- 正例: 数据业务类型: 商品 / 订单
- 反例: 数据类型: 商品 / 订单
代码评审
审核代码时不应只注意代码的规范, 还应注意新旧代码的一致性
- 比如命名和方法名的语义性
Elasticsearch
ES 限制最大的查询结果为 10000 条. 超过后即使分页查询第 10001 条也会报错
解决方案: 将限制由 10000 改为 10000001
2
3
4PUT _all/_settings?preserve_existing=true
{
"index.max_result_window" : "10000000"
}
避免 Index 中的字段动态, 因为可能会导致整个 ES 服务超时
由于 ES 会为 Index 的每个新增的字段创建一个 mapping, 当 Index 中字段过多时, mappings 会非常多.
创建或删除 document 时由于会改变字段的 mapping, 会占用非常多的 CPU 时间. 从而导致整个 ES 服务超时.
每个 Index 尽量保证字段不变或很少变