写点什么

AxonIQ 发布最新的事件存储数据库 AxonDB

  • 2018-03-20
  • 本文字数:1229 字

    阅读完需:约 4 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

AxonIQ 公司最近发布了 AxonDB ,一款用于事件溯源的数据库,支持事务和基于推送的事件发布模式。为了确保数据库的性能不受存储容量的影响,AxonDB 的架构在读取数据方面下了功夫。AxonIO 方面的评测表明,即使在处理大量事件时,AxonDB 的性能仍然十分稳定。

AxonDB 支持完整的 ACID 事务模型,也就是说,可以在单个事务中插入多个事件。一致性是通过单调增长的唯一性序列号来实现的,所有事件必须持有一个这样的序列号。为了在高吞吐的情况下保证持久性,需要搭建 AxonDB 集群。

在往 AxonDB 插入事件时,事件不仅会被保存起来,还会被发送给事件监听器和事件处理器,从而避免了定时轮询,降低了延迟。

AxonDB 的其他特性包括:

  • 使用 Java 开发。
  • 直接操作文件,不使用任何底层的数据库系统。
  • 只允许以追加的方式插入事件。
  • 内置支持快照。
  • 支持临时的查询,包括使用 XPath——可以通过这种方式达到调试等目的。
  • 支持集群,集群只有一个主节点,写入事件时采用法定节点数原则。
  • 支持从传统数据库或 MongoDB 迁移到 AxonDB。

AxonIQ 的商务总监 Frans van Buul 在一次演讲中强调,甘特的研究数据表明,基于事件的架构(Event-Driven Architecture,EDA)是 2018 年的十大技术趋势之一,而事件溯源就属于 EDA 的一种。

AxonIQ 的团队之所以要设计这款全新的数据库,是因为他们找不到一款可以支持以下特性的事件存储数据库,比如:

  • 支持读取单个聚合中的所有事件,或者读取从某个时间点之后的所有事件。
  • 按照写入顺序读回事件。
  • 一次写入多个事件,并保证原子性,只能读取已提交的事件。
  • 性能不受存储大小的影响,支持快照。
  • 只支持追加方式写入,没有必要支持随机性的插入,不允许更新或删除,因为它们是不可变的。
  • 将存储过的事件发布给事件监听器。

RDBMS 对原子性有很好的支持,但性能是硬伤。当需要存储的事件很多时,性能就得不到保证。

文档数据库(如 MongoDB)可以存储大量的数据,但对事务的支持不太好。解决办法是将多个事件保存在同一个文档中,但这样会导致其他方面的问题。

Kafka 高度可伸缩,虽然是为保存临时消息而设计,但也可以无限制地保存消息。但在读取一个聚合中的事件时仍然存在问题,虽然可以使用 topic,但无法扩展到数百万个聚合。

由 Greg Young 领导开发的 Event Store 是另一个为事件溯源而设计的存储引擎。它把大部分的逻辑包含在了引擎当中,而 van Buul 希望能够把逻辑与存储分开。

基于上述的几点原因,他们最后决定自己开发一个新的数据库,专注于支持事件溯源。于是,AxonDB 诞生了——一款商业数据库,提供了 4 个版本,其中一个是免费的开发者版本(包含了文档)。

注:即将发布的 MongoDB 4.0 将支持跨文档事务

AxonIQ 提供了一个 GDPR 模块,确保事件中的个人数据使用加密秘钥进行加密,通过删除秘钥就可以移除个人数据。

2018 年 9 月 21 号将会有一场关于 Axon 产品的推介会

查看英文原文: AxonDB, a New Implementation of an Event Store

2018-03-20 19:002076
用户头像

发布了 731 篇内容, 共 473.2 次阅读, 收获喜欢 2008 次。

关注

评论

发布
暂无评论
发现更多内容

史上最全面‘java监听器’解读,读完就能用进项目

Java架构师迁哥

全面 Severless 化只需要 7天!看南瓜电影的云上升级

阿里巴巴中间件

阿里巴巴 中间件

犯”集资诈骗罪“、二审判6年的CTO | 法庭上的CTO(21)

赵新龙

CTO 法庭上的CTO

阿里P8大牛亲自讲解!Android高级工程师面试实战,Android岗

欢喜学安卓

android 程序员 面试 移动开发

侵犯著作权、判刑两年半的 CTO |法庭上的CTO(22)

赵新龙

CTO 法庭上的CTO

被砍伤的技术VP | 法庭上的CTO(24)

赵新龙

CTO 法庭上的CTO

十大经典排序算法最强总结(含Java、Python码实现)

Java 面试 算法

时空大数据与智能技术的时代共舞,百度地图给2020的答案

脑极体

互联网大厂有哪些分库分表的思路和技巧?

冰河

分布式数据库 分库分表 分布式存储 数据一致性 数据同步

散布消极言论被开除的总监 | 法庭上的CTO(25)

赵新龙

CTO 法庭上的CTO

10次面试,2份offer —— 大龄程序员 2020 求职记录

escray

面试 架构师训练营第 1 期

甲方日常 77

句子

工作 随笔杂谈 日常

天下武功,唯”拆“不破之架构篇二 | 技术人应知的创新思维模型 (9)

Alan

架构 技术 技术人应知的创新思维模型 七日更 28天写作

我对2021的期待,从合上这份2020日历开始

脑极体

百分点智能对话技术探索实践

DataFunTalk

AI

阿里P8大牛亲自讲解!6年菜鸟开发面试字节跳动安卓研发岗,成功收获美团,小米安卓offer

欢喜学安卓

android 程序员 面试 移动开发

Serverless 在 SaaS 领域的最佳实践

阿里巴巴中间件

阿里巴巴 中间件

开设赌场的CTO | 法庭上的CTO(23)

赵新龙

CTO 法庭上的CTO

2020盘点之手机失窃事件复盘分析

石君

信息安全 资金安全 手机失窃

小说内容理解

DataFunTalk

AI 推荐系统

“让专业的人做专业的事”,畅捷通与阿里云的云原生故事

阿里巴巴中间件

云计算 云原生

架构师训练营第一周作业

Mark

鸟枪换炮,利用python3对球员做大数据降维(因子分析得分),为C罗找到合格僚机

刘悦的技术博客

Python 数据分析 特征选择 降维

腾讯T2手把手教你!字节跳动历年校招Android面试真题解析,含BATJM大厂

欢喜学安卓

android 程序员 面试 移动开发

生产环境全链路压测建设历程 23:FAQ 3、4 适配改造,目标压力

数列科技杨德华

全链路压测 七日更

总结2020:5个月出版两本书,日更公众号是一种怎样的体验?

冰河

程序员 程序人生 年终总结

网络模拟器:Cisco Packet Tracer 设备登陆实验

C语言编程:入门指南(一周内学懂)

计算机与AI

c

云原生架构-静态代码扫描SonarQube超时

云原生实验室

DevOps 云原生 jenkins SonarQube Pipeli

工具词典:中立观点

lidaobing

维基百科 28天写作

58同城风控平台演进

DataFunTalk

架构 中台

AxonIQ发布最新的事件存储数据库AxonDB_语言 & 开发_Jan Stenberg_InfoQ精选文章