Coinpaprika 是领先的加密货币市场数据平台,为用户提供关于价格数据、历史趋势、市值、交易量以及数百家交易所众多加密货币的其他相关指标的全面见解。通过使用开放 API 直接连接到近 370 家交易所,并积极致力于集成去中心化交易所,Coinpaprika 旨在为开发者、投资者和企业提供一个用户友好、透明且可靠的加密货币领域信息来源。
从 InfluxDB 过渡到 ClickHouse 以提高性能和可扩展性
在采用 ClickHouse 之前,Coinpaprika 将 InfluxDB 用于其时间序列数据,并将 MySQL 用于事务数据。然而,随着数据的增长,他们在 InfluxDB 方面面临着一些挑战。团队难以从系统中获得有用的指标,并且延长查询时间范围通常会导致服务器过载。此外,他们还遇到了由于合并数据块而导致响应时间的问题。开源版本的 InfluxDB 缺乏内置的复制和可扩展性,这对于 Coinpaprika 的基础设施至关重要。
Coinpaprika 的首席执行官兼联合创始人 Radosław Wesołowski 描述了他们评估各种时间序列数据库以增强平台能力的过程:“我们决定研究不同的供应商,例如 TimescaleDB、CockroachDB 和 ClickHouse,但在进行了一些初步测试后,我们认为 ClickHouse 是这些供应商中最好的选择。”
选择 ClickHouse 作为其时间序列数据库的决定并非草率。Coinpaprika 在其决策过程中评估了几个因素,包括:
- 活动部件和组件的数量 - Coinpaprika 更喜欢 ClickHouse 的单二进制架构,而不是 TimescaleDB 的多层架构。
- 社交媒体上的新闻报道 - ClickHouse 得到了 Cloudflare 和 Uber 等大公司的认可。
- 培训材料的可用性 - Coinpaprika 找到了充足的资源来支持他们的学习。
- Slack 上的社区 - ClickHouse 社区提供了宝贵的帮助和知识。
- 存储大小和查询吞吐量 - ClickHouse 展示了令人印象深刻的性能指标,符合 Coinpaprika 的需求。
- 销售团队的参与度 - Coinpaprika 希望尽可能独立完成,而竞争对手似乎急于转向企业解决方案。
- 技术的成熟度和工具 - ClickHouse 提供了成熟、功能丰富的技术栈。
自从切换到 ClickHouse 以来,该平台的性能、查询并发性和可扩展性都得到了显着提升。他们设法在短短三个月内使用 ClickHouse 开发了产品的初始版本。在此过程中,他们尝试了不同的编解码器并优化了数据结构。在最初设置成功后,他们决定将所有数据迁移到 ClickHouse。
Coinpaprika 的 Go 和 Gorm 与 ClickHouse 的集成
Coinpaprika 基础设施的重要方面之一是他们选择的编程语言和工具。该平台 99% 基于 Go,他们使用名为 Gorm 的开源 ORM 以及官方 ClickHouse 客户端。这种设置使他们能够与 ClickHouse 无缝集成,从而更轻松地构建和维护他们的解决方案。Gorm 提供的开箱即用支持使团队能够快速方便地实现他们的需求。
Coinpaprika 的架构:平衡公共和私有基础设施
Coinpaprika 系统设计由分布在公共和私有基础设施上的许多服务组成。为了优化成本,大多数 CPU 和磁盘密集型部件都托管在本地。面向用户的界面为了获得最佳用户体验(低延迟)而分布在全球公共云基础设施中。
使用 ClickHouse 增强 Coinpaprika 的性能和查询并发性
ClickHouse 即使在受到更高查询并发的情况下也能提供低延迟的能力对于 Coinpaprika 至关重要,他们需要有效地处理每秒约 150 个请求。这种性能水平对于市场上其他解决方案来说是难以实现的。ClickHouse 的高并发性确保 Coinpaprika 可以始终如一地向用户提供准确、最新的数据。此外,物化视图和预计算聚合有助于优化数据存储和检索,从而提高免费和付费用户查找历史信息的性能。
Grafana 仪表板显示了白天典型的查询分布。平均查询时间约为 7 毫秒,这保证了他们的客户获得最佳的开发者体验。
Coinpaprika 选择采用 ClickHouse 作为其时间序列数据库,这显着提高了平台的性能。性能、查询并发性和可扩展性的优势使 Coinpaprika 能够为加密货币领域的开发者、投资者和企业提供可靠且用户友好的体验。与其现有 Go 和 Gorm 基础设施的无缝集成进一步优化了他们的开发流程。随着加密货币市场的不断发展,Coinpaprika 可以自信地依赖 ClickHouse 强大而灵活的数据存储解决方案来支持其增长,并保持其作为领先市场数据平台的地位。
了解更多信息:https://coinpaprika.com/