# dledger **Repository Path**: anxiaole/dledger ## Basic Information - **Project Name**: dledger - **Description**: DLedger源码阅读、文档 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2022-01-16 - **Last Updated**: 2024-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Introduction 介绍 [![Build Status](https://www.travis-ci.org/openmessaging/dledger.svg?branch=master)](https://www.travis-ci.org/search/dledger) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.openmessaging.storage/dledger/badge.svg)](http://search.maven.org/#search%7Cga%7C1%7Copenmessaging-storage-dledger) [![Coverage Status](https://coveralls.io/repos/github/openmessaging/openmessaging-storage-dledger/badge.svg?branch=master)](https://coveralls.io/github/openmessaging/openmessaging-storage-dledger?branch=master) [![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html) A raft-based java library for building high-available, high-durable, strong-consistent commitlog, which could act as the persistent layer for distributed storage system, i.e. messaging, streaming, kv, db, etc. > 一个基于 raft 的 java 库,用于构建高可用、高持久、强一致的 commitlog,可以作为分布式存储系统的持久层,即消息传递、流式传输、kv、db 等。 Dledger has added many new features that are not described in the [original paper](https://raft.github.io/raft.pdf). It has been proven to be a true production ready product. > Dledger 增加了许多 [原论文](https://raft.github.ioraft.pdf) 中没有描述的新特性。它已被证明是真正的生产就绪产品。 ## Features 特征 * Leader election * Preferred leader election * [Pre-vote protocol](https://web.stanford.edu/~ouster/cgi-bin/papers/OngaroPhD.pdf) * High performance, high reliable storage support * Parallel log replication between leader and followers * Asynchronous replication * High tolerance of symmetric network partition * High tolerance of asymmetric network partition * [Jepsen verification with fault injection](https://github.com/openmessaging/openmessaging-dledger-jepsen) > * 领袖选举 > * 首选领导人选举 > * [投票前协议](https://web.stanford.edu/~ouster/cgi-bin/papers/OngaroPhD.pdf) > * 高性能, 高可靠存储支持 > * 领导者和追随者之间的并行日志复制 > * 异步复制 > * 对称网络分区的高容忍度 > * 非对称网络分区的高容忍度 > * [使用故障注入进行 Jepsen 验证](https://github.com/openmessaging/openmessaging-dledger-jepsen) ### New features waiting to be added 等待添加的新功能 ### * State machine * Snapshot * Multi-Raft * Dynamic membership & configuration change * SSL/TLS support > * 状态机 > * 快照 > * 多筏 > * 动态成员资格和配置更改 > * SSLTLS 支持 ## Quick Start 快速开始 ### Prerequisite 先决条件 * 64bit JDK 1.8+ * Maven 3.2.x ### How to Build 如何构建 ``` mvn clean install -DskipTests ``` ### Run Command Line 使用命令行启动 * Get Command Usage ``` java -jar target/DLedger.jar ``` * Start DLedger Server 启动服务端 ``` nohup java -jar target/DLedger.jar server & ``` * Append Data to DLedger 追加数据 ``` java -jar target/DLedger.jar append -d "Hello World" ``` * Get Data from DLedger 获取数据 ``` java -jar target/DLedger.jar get -i 0 ``` ## Contributing 贡献 We always welcome new contributions, whether for trivial cleanups, big new features. We are always interested in adding new contributors. What we look for are series of contributions, good taste and ongoing interest in the project. If you are interested in becoming a committer, please let one of the existing committers know and they can help you walk through the process. > 我们总是欢迎新的贡献,无论是琐碎的清理,还是大的新功能。我们总是有兴趣添加新的贡献者。我们寻找的是一系列贡献、良好的品味和对该项目的持续兴趣。如果您有兴趣成为一名提交者,请让其中一位现有的提交者知道,他们可以帮助您完成整个过程 ## License [Apache License, Version 2.0](https://github.com/openmessaging/openmessaging-storage-dledger/blob/master/LICENSE) Copyright (C) Apache Software Foundation [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fopenmessaging%2Fopenmessaging-storage-dledger.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fopenmessaging%2Fopenmessaging-storage-dledger?ref=badge_large)