贫瘠之地

出来混最重要的是什么?是出来

from size

from size 是最常见的分页方式,类比 MySQL 的 offset limit

由于 ES 是天然分布式的,数据分散在各个 shards 上,所以需要查询 from + size 的条数时,coordinate node 就向该 index 的其余的 shards 发送同样的请求,等汇总到 (shards × (from + size)) 条数时在 coordinate node 再进行一次排序,最终抽取出真正 from 后的 size 条结果

显而易见,当 shards 较多、分页深度很大时,这种方式存在很大的性能问题,这也是 ES 默认深度为 from + size <= 10000 的原因

Routing 机制

阅读全文 »

六大原则

设计原则 概述 目的
开闭原则 对扩展开放,对修改关闭 易于维护
单一职责 一个类只干一件事,实现类要单一 提升可读性
里氏替换 不要重写父类的方法 健壮性、防止错误继承
迪米特法则 最少知道,对象之间少建立联系 低耦合
接口隔离 一个接口只干一件事,接口要精简单一 高内聚
依赖倒置 高层不应该依赖低层,要面向接口编程 利于结构升级

开闭原则

Software entities like classes,modules and functions should be open for extension but closed for modifications.

一个软件实体如类,模块和函数应该对扩展开放,对修改关闭

随着业务发展需要增加新的方法,有几种方式:

阅读全文 »
0%