跳表
· 阅读需 1 分钟
跳表本质上是一种链表,允许您在其上进行二分查找。它通过添加额外的节点来实现这一点,使您能够‘跳过’链表的某些部分。通过随机投掷硬币来创建额外节点,跳表的搜索、插入和删除操作的时间复杂度应为 O(logn)。
用例
- LevelDB MemTable
- Redis SortedSet
- Lucene 倒排索引
跳表本质上是一种链表,允许您在其上进行二分查找。它通过添加额外的节点来实现这一点,使您能够‘跳过’链表的某些部分。通过随机投掷硬币来创建额外节点,跳表的搜索、插入和删除操作的时间复杂度应为 O(logn)。
用例
总之,在选择公共 API、API 网关或 BFF(前端后端)网关的工具时,我更喜欢 GraphQL,因为它具有尾随结果、批处理嵌套查询、性能追踪和显式缓存等功能。
JSON RPC | GraphQL | REST | gRPC | |
---|---|---|---|---|
用例 | 以太坊 | Github V2、Airbnb、Facebook BFF / API 网关 | Swagger | 高性能、谷歌、内部端点 |
单一端点 | ✅ | ✅ | ❌ | ✅ |
类型系统 | ✅,与 JSON 一样弱 无 uint64 | ✅ 无 uint64 | ✅ w/ Swagger 无 uint64 | ✅ 有 uint64 |
定制结果 | ❌ | ✅ | ❌ | ❌ |
批处理嵌套查询 | ❌ | ✅ | ❌ | ❌ |
版本控制 | ❌ | 模式扩展 | 是,使用 v1/v2 路由 | protobuf 中的字段编号 |
错误处理 | 结构化 | 结构化 | HTTP 状态码 | 结构化 |
跨平台 | ✅ | ✅ | ✅ | ✅ |
游乐场 UI | ❌ | GraphQL Bin | Swagger | ❌ |
性能追踪 | ? | Apollo 插件 | ? | ? |
缓存 | 无或 HTTP 缓存控制 | Apollo 插件 | HTTP 缓存控制 | 尚未原生支持,但仍可使用 HTTP 缓存控制 |
问题 | 缺乏社区支持和工具链 Barrister IDL | 42.51 kb 客户端包大小 | 多个端点的非结构化,便携性差。 | Grpc-web 开发进行中,140kb JS 包。兼容性问题:并非所有地方都支持 HTTP2 和 grpc 依赖 |
面试是员工寻找未来同事的过程,在此过程中,他们 寻找信号来回答以下三个关键问题:
以上任何一个关键问题都无法在没有良好沟通的情况下回答。 你的工作将被那些沟通能力比你更强的人取代。
领导者 = 激励自我牺牲的愿景者
。没有说服能力,领导者就不存在。Apache Kafka 是一个分布式流处理平台。
它的抽象是一个 ==队列==,并且它具有
它可以应用于