MyGit

hekate-io/hekate

Fork: 2 Star: 18 (更新于 2024-12-11 09:12:05)

license: Apache-2.0

Language: Java .

Java Library for Distributed Services

最后发布版本: v.4.1.3 ( 2022-12-09 22:18:55)

官方网址 GitHub网址

Hekate.io

Java Library for Distributed Services

build codecov Maven Central Javadocs

License

Open source Apache License v2.0

Features

  • Distributed Service Discovery

    • Decentralized Service Discovery (based on performance-optimized Gossip protocol)
    • Easy integration into existing infrastructure
      • Clouds (based on Apache JClouds)
        • Amazon EC2 and S3
        • Google Cloud Storage and Compute Engine
        • Azure Blob Storage
        • etc
      • Kubernetes
      • ZooKeeper
      • Etcd
      • Consul
      • IP Multicast
      • Shared Database (JDBC-based)
      • Shared File System
    • User-defined Service Properties and Roles
    • Cluster Event Listeners
    • Service Topology Views and Filtering APIs
    • Health Monitoring and Split-brain Detection
  • Messaging

    • Synchronous and Asynchronous Messaging (backed by Netty)
    • Cluster-aware Load Balancing and Routing
    • SSL/TLS Encryption of Network Communications (optional)
    • Back Pressure Policies
    • Error Retry Policies
    • Pluggable Serialization
      • Google Protocol Buffers (work in progress)
      • JDK Serialization
      • Manual Serialization
  • Remote Procedure Calls (RPC)

    • Type-safe Invocation of Remote Java Services
    • Automatic Discovery and Load Balancing
    • Synchronous and Asynchronous APIs
    • Multi-node Broadcasting and Aggregation of Results
    • Back Pressure Policies
    • Error Retry Policies
    • ...and everything from the "Messaging" section above:)
  • Cluster-wide Singleton Service (aka Leader Election )

    • Decentralized Leader Election
    • Followers are Aware of the Current Leader
    • Leader can Dynamically Yield Leadership
  • Distributed Locks

    • Synchronous and Asynchronous Reentrant Locks
    • Decentralized Lock Management
    • Configurable Lock Groups (aka Lock Regions)
  • Spring Boot/Framework Support (optional)

    • Spring Boot Auto-configurations and @Annotations
    • Spring-compliant Beans
    • Spring XML Schema
  • Metrics

  • Raft-based Replicated State Machines (work in progress)

Documentation

Code Examples

Quickstart for Standalone Java Application

public class MyApplication{
    public static void main(String[] args) throws Exception {
        Hekate hekate = new HekateBootstrap()
            .withNamespace("my-cluster")
            .withNodeName("my-node")
            .join();
        
        System.out.println("Cluster topology: " + hekate.cluster().topology());
    }
}

Quickstart for Spring Boot Application

@EnableHekate // <-- Enable Hekate integration.
@SpringBootApplication
public class MyApplication {
    @Autowired
    private Hekate hekate;

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
    
    @PostConstruct
    public void start(){
        System.out.println("Cluster topology: " + hekate.cluster().topology());
    }
}

More Examples:

Please see the hekate-io/hekate-examples project for more examples.

Maven artifacts

  • For projects based on Spring Boot:
<dependency>
    <groupId>io.hekate</groupId>
    <artifactId>hekate-spring-boot</artifactId>
    <version>4.1.3</version>
</dependency>
  • For projects based on Spring Framework:
<dependency>
    <groupId>io.hekate</groupId>
    <artifactId>hekate-spring</artifactId>
    <version>4.1.3</version>
</dependency>
  • For standalone applications:
<dependency>
    <groupId>io.hekate</groupId>
    <artifactId>hekate-core</artifactId>
    <version>4.1.3</version>
</dependency>

How to build

Software requirements:

  • Latest stable Java SDK (8, 11, 17)
  • Latest stable Docker (required for tests only)

Build (no tests):

  • cd to the project's root folder
  • run ./mvnw clean package -DskipTests=true

Build (with tests):

  • cd to the project's root folder
  • make a copy of test.properties file with name my_test.properties
  • edit my_test.properties according to your environment
  • run docker-compose up -d to prepare Docker-based testing infrastructure
  • run ./mvnw clean package

Release History

最近版本更新:(数据更新于 2024-10-28 14:19:58)

2022-12-09 22:18:55 v.4.1.3

2022-05-13 04:16:13 v.4.1.2

2022-05-11 22:38:18 v.4.1.1

2022-04-04 00:38:28 v.4.1.0

2021-03-21 04:41:37 v.4.0.0

2020-10-25 00:21:14 v.3.11.0

2020-07-04 23:20:56 v.3.10.0

2020-05-09 03:07:28 v.3.9.0

2020-03-01 03:58:36 v.3.8.0

2020-02-08 20:52:44 v.3.7.0

主题(topics):

cloud, cluster, discovery, distributed, java, kubernetes, messaging, microservices, scalability, spring-boot

hekate-io/hekate同语言 Java最近更新仓库

2024-12-20 19:54:15 mybatis-flex/mybatis-flex

2024-12-19 21:53:46 spring-projects/spring-boot

2024-12-19 21:25:16 Stirling-Tools/Stirling-PDF

2024-12-19 16:28:14 Tornaco/Thanox

2024-12-19 10:42:01 alibaba/nacos

2024-12-18 20:58:34 dromara/forest