# klein **Repository Path**: bleemliu/klein ## Basic Information - **Project Name**: klein - **Description**: Klein 是一个基于 Paxos 的分布式集合工具库,包括分布式ArrayList、分布式 HashMap、分布式缓存、分布式锁等。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2023-01-09 - **Last Updated**: 2024-12-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: paxos, Cache ## README ### [English](readme.md)

感谢JetBrains提供的免费授权.
Open source: Gitee | Github | CodeChina
文档: Gitbook

   

 

# 介绍 ![](logo.svg) Klein是一个基于Paxos的分布式集合工具库,包括分布式Cache、分布式消息队列、分布式List、分布式Map、分布式Lock等。。它有趣的地方在于:您可以不依赖任何中间件,保证各个成员之间的数据一致。 你可以理解Klein是一个通过Maven依赖到您项目中的分布式工具。我们希望它可以替换掉您现有的Redis、消息中间件、注册表、配置中心等。 如果您对分布式消息队列、分布式List、分布式Map、分布式Lock兴趣的话,我们可以分享现有相应的设计,您可以参与到编码工作当中来。😆😆😆 **Look forward to your star⭐** # 使用 ### 引入klein ```xml com.ofcoder.klein.core klein-core {last-version} ``` ### 启动 ``` Klein instance = Klein.startup(); instance.awaitInit(); KleinCache cache = KleinFactory.getInstance().createCache("klein"); cache.put("hello", "klein"); KleinCache lock = KleinFactory.getInstance().createLock("klein"); cache.acquire(1, TimeUnit.SECONDS); ``` ### 配置 所有可配置的参数,请查看:`com.ofcoder.klein.KleinProp` 你可以通过System#setProperty设置,也可以获取到KleinProp对象 ``` System.setProperty("klein.id", "2") // 或者 KleinProp prop = KleinProp.loadIfPresent(); ``` # Jepsen 测试 [Run on Gitpod](https://gitpod.io/#/github.com/shihuili1218/klein)