What Is Zeze
Zeze是一个基于一致性缓存的分布式事务并发应用框架。Zeze也是一个Key-Value数据库。 分布式是Zeze的特性,并发是Zeze的要求。一个分布式并发银行系统有一万个窗口, 但所有人都去一个窗口排队,这样的系统显然不能很好的运行。分布式是数据在多台 机器间可以安全的共享,并发是对应用的要求-即应用自己的需求需要能并发起来。
这个世界是天然并发的
Git
Maven
<!-- https://mvnrepository.com/artifact/com.zezeno/zeze-java -->
<dependency>
<groupId>com.zezeno</groupId>
<artifactId>zeze-java</artifactId>
<version>1.5.5</version>
</dependency>
特性
- 数据易访问
访问数据库完全透明。开发人员使用xml定义数据结构,定义表格,生成代码,然后通过存 取接口访问数据,数据存储就跟访问程序内的一个普通类一样,任何和数据库的交互全部被 封装好。
- 数据完整性严格保护
支持事务。由于事务,几乎任何错误都不会损坏数据。
- 高可用
很容易把服务器设计成无状态的,这样可以把请求分配到任意一台服务器。自然任何一台服 务器退出都不会影响系统的可用性。
- 高性能
在缓存命中的情况下,没有任何远程访问。
- 易使用
简单直接的编程接口,直接融入编程语言。支持java&c#。可以让开发人员直面需求,把注 意力放到业务上,能极大的降低开发成本。虽然是多线程分布式事务,但开发起来, 就跟单进程单线程的程序一样。
- 简单易用的网络通讯
Zeze提供一套简单易用的网络框架,直接把网络请求映射到处理函数。开发人员只需要根 据业务实现逻辑代码即可。网络框架同时支持同步异步。
什么样的应用最匹配Zeze
- 应用自然拥有较高的并发。
这样便于把负载分布到多个服务器上。
- 访问的数据具有较高的局部性和重复性。
这样可以充分利用Zeze的缓存。 比如游戏,当玩家登录后被分配到一台服务器,以后玩家 的请求大多数都操作自己的数据。多数时候,不同玩家访问的数据是独立进行,没有交叉, 同一个数据会在登录期间,重复被访问。所以游戏是很适合使用Zeze的。 推广一步,一般来说,多数长期在线的应用都适合使用Zeze。 无法充分利用上Zeze的特性,但也可以使用Zeze的系统。比如支付系统。其中个人交易 的请求虽然能并发,但请求都是突发的,操作的数据(账户)基本没有不会重复,这样无法 充分利用缓存,效率上最终接近后端数据库的性能。支付系统的公司到个人之间的交易能利 用上缓存,但由于交易是重要操作,一般会采用马上保存的模式,所以对其中公司账户缓存 的利用仅限于读。