分布式内存计算平台:apache ignite
ignite技术
ignite是一款具有内存计算速度的分布式存储服务中间件,PB级处理能力。
它是apache一级开源项目,目前star有3.6k+,fork有1.6k+,最新稳定版2.9.1,测试版3.0.0,一个成熟的商业开业中间件产品,具有颠覆性。
ignite有几个显著的特性
- 分布式存储数据库
- 内存级性能计算服务
- 横向扩展可至上千个节点,PB级能力
- 多种持久化能力,自身外支持DBMS,MQ类数据库
- 分布式事务ACID支持
- 支持K-V和SQL两种数据结构
- 源代码开源
- 支持jar方式定制化集成,也支持ZIP方式独立部署
- 支持java、c++、node、php、python、c#
- 机器学习、数据流、服务网格
官方文档非常完整细致,可以帮助快速落地,样例代码丰富,差不多3周左右时间可以说对于使用上已经没啥问题了,但是进阶掌握需要不少时间。
场景
我这边的场景是用java将ignite技术以jar方式集成到服务内,整个应用作为数据平台,完全定制化ignite,未来随着发展再逐步横向扩展延伸。
小的场景作为缓存使用,大的场景作为计算数据平台
ignite技术目前来看非常适合几个地方:
1、比如常规的mysql和redis组合的业务场景,直接用ignite替代,剩下数据同步、失效、穿透等等各种问题;ignite既支持sql也支持kv方式数据存储,同时支持常规的sql语句查询结构。
2、分布式存储和并行计算平台,也有点数据中心概念,ignite将这些特性集中为一体,机器学习这种PB数据常规做法根本搞不定。
3、分布式事务,这个多少人头疼了多少年。
运行维护
ignite集群基本是自动的,心跳、数据再平衡、同步等;同时它支持rest api进行集群的状态获取和管理,如node上线下、cache删除新增;拥有各种状态event提供给开发中做钩子。
同时还提供几个封装好的工具,可以拿来直接使用。
- control.sh 控制管理集群节点,生成快照、查看数据等
- visor.sh 监控集群状态
- control center WebUI的监控工具
补充
不久的将来有可能成为行业标配,apache基金会投入很高,目前在高速迭代推进ignite技术生态。
官网:https://ignite.apache.org
代码库:https://github.com/apache/ignite
样例代码库:https://github.com/apache/ignite/tree/master/examples