分布式内存计算存储中间件ignite技术01

Owen Jia 2021年01月22日 167次浏览

分布式内存计算平台: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