hekate-io/hekate
Fork: 2 Star: 18 (更新于 2024-11-18 05:34:15)
license: Apache-2.0
Language: Java .
Java Library for Distributed Services
最后发布版本: v.4.1.3 ( 2022-12-09 22:18:55)
Hekate.io
Java Library for Distributed Services
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
- Clouds (based on Apache JClouds)
- 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
- Internal Metrics Recording and Publishing via Micrometer.io
-
Raft-based Replicated State Machines (work in progress)
Documentation
-
Javadocs (Follow
the White Rabbit[« start here]
marks) - Reference Guide (coming soon...)
- Spring Boot Properties Reference
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>
- Other artifacts:
-
Cluster Bootstrapping (seed node discovery)
- hekate-jclouds-core - Integration with Apache JClouds for cloud environments.
- hekate-jclouds-aws - Extended integration with Amazon EC2 cloud.
- hekate-kubernetes - Integration with Kubernetes
- hekate-zookeeper - Integration with Apache ZooKeeper
- hekate-etcd - Integration with Etcd
- hekate-consul - Integration with Consul
-
Cluster Bootstrapping (seed node discovery)
How to build
Software requirements:
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 namemy_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
-
v.4.1.3 (25-Nov-2022) - [release notes]
-
v.4.1.2 (12-May-2022) - [release notes]
-
v.4.1.1 (11-May-2022) - [release notes]
-
v.4.1.0 (3-Apr-2022) - [release notes]
-
v.4.0.0 (20-Mar-2021) - [release notes]
-
v.3.11.0 (24-Oct-2020) - [release notes]
-
v.3.10.0 (4-Jul-2020) - [release notes]
-
v.3.9.0 (8-May-2020) - [release notes]
-
v.3.8.0 (29-Feb-2020) - [release notes]
-
v.3.7.0 (3-Feb-2020) - [release notes]
-
v.3.6.0 (13-Oct-2019) - [release notes]
-
v.3.5.0 (14-Aug-2019) - [release notes]
-
v.3.4.1 (4-Jul-2019) - [release notes]
-
v.3.4.0 (29-Jun-2019) - [release notes]
-
v.3.3.0 (19-Apr-2019) - [release notes]
-
v.3.2.0 (5-Apr-2019) - [release notes]
-
v.3.1.0 (28-Mar-2019) - [release notes]
-
v.3.0.0 (19-Mar-2019) - [release notes]
-
v.2.6.0 (22-Aug-2018) - [release notes]
-
v.2.5.0 (4-Aug-2018) - [release notes]
-
v.2.4.1 (15-Jul-2018) - [release notes]
-
v.2.4.0 (15-Jul-2018) - [release notes]
最近版本更新:(数据更新于 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-11-21 20:32:01 spring-projects/spring-boot
2024-11-21 09:44:43 Card-Forge/forge
2024-11-19 23:42:52 spring-projects/spring-authorization-server
2024-11-18 21:40:12 4379711/lol-helper
2024-11-16 22:50:41 xuxueli/xxl-job
2024-11-16 19:06:35 Stirling-Tools/Stirling-PDF