搜索引擎在数据量逐步扩大之后,分布式搜索是必经之路。搜索引擎的分布式除了要考虑数据分片之外,更重要还需要考虑数据的有状态以及各组件的状态流转。在这里分享一下基于ZK设计分布式搜索引擎的一些经验和思考落地情况,包含了从单机版本到分布式版本的演进。
面对互联网系统的三高(高可用,高性能,高并发),数据库方面我们多会采用分库分表策略,如此必然会面临另一个问题,分库分表策略下如何生成数据库主键?那么今天针对此问题,我们就聊聊如何设计一款“百万级”的分布式ID生成器。
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,削峰填谷等问题。实现高性能、高可用、可伸缩和最终一致性架构。
本文尝试从 CommonJS 和 ES Module 两者规范的差异,详细说明该配置是如何影响 tsc 编译结果的。
单元测试是我们常用的验证代码正确性的工具,但是如果只用来验证正确性的话,那就是真是 “大炮打蚊子”--大材小用,它还可以帮助我们评判代码的抽象程度与设计水平。本文还会提出一个以“可测试性”为目标,不断迭代重构代码的思路,利用这个思路,面对任何复杂的代码,都能逐步推导出重构思路。为了保证直观,本文会以一个 “生产者消费者” 的代码重构示例贯穿始终。最后还会以业务上常见的 Excel 导出系统为例简单阐述一个业务上的重构实例。
资源预测是项目管理过程中的一个环节,即通过搭建合适的数据模型,对未来的项目人力资源投入情况进行有效预测,可以更加精准的完成项目资源规划并能及时发现问题进行相关调整。
为什么要使用单元测试? 1. 运行快:如果由测试同学手工测试,可能测试周期很长,对于功能比较复杂的功能,测试同学可能并不能完整覆盖所有预期链路,也可能由于某些操作而错过一些关键性步骤。2. 减少回归成本:使用单元测试,可以在每次修改代码后重新运行整套测试,尽可能保证新代码不会破坏现有功能。3. 优化代码结构:当代码耦合度非常大时,可能很难进行单元测试。为代码编写测试将自然地按照预期功能分离你的类。