Skip to content

XiaoSanchez/Bootstrap-RPC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bootstrap RPC Framework

HandwrittenRPC is an open-source RPC (Remote Procedure Call) framework that facilitates seamless communication between service providers and consumers, enabling remote method invocation which builds from scratch. The framework is built on top of Netty for efficient network communication and leverages ZooKeeper for service discovery and governance. With a focus on performance, extensibility, and robustness, HandwrittenRPC offers essential features such as load balancing, circuit breaking, traffic isolation, and more.

Key Features

  1. Netty-based Communication: HandwrittenRPC utilizes the Netty framework to establish efficient and reliable network communication. It implements a custom protocol to encapsulate RPC requests and responses, ensuring smooth data exchange between service providers and consumers.

  2. Load Balancing Strategies: The framework includes a sophisticated load balancing mechanism with support for multiple strategies, including round-robin, consistent hashing, and shortest response time. The load balancing framework follows the template method pattern, allowing easy integration of custom algorithms through subclassing.

  3. Resilience Patterns: HandwrittenRPC incorporates rate limiting and circuit breaking mechanisms to enhance the resilience of both client and server components. This safeguards the system from overload and prevents cascading failures.

  4. Traffic Isolation: To ensure the separation of core functionalities from non-core processes, HandwrittenRPC implements traffic isolation through business grouping. This prevents interference between critical operations and peripheral tasks.

  5. Serialization and Compression: The framework promotes code extensibility by offering multiple serialization and compression tools through the factory pattern. It employs SPI (Service Provider Interface) and XML configuration for maximum flexibility.

  6. Seamless Spring Boot Integration: HandwrittenRPC provides a Spring Boot starter that seamlessly integrates the framework with Spring Boot applications. This simplifies the setup process and enables developers to quickly adopt and leverage the capabilities of HandwrittenRPC.

Getting Started

To get started with HandwrittenRPC, follow these steps:

  1. Clone the Repository: Clone the HandwrittenRPC GitHub repository to your local machine.

  2. Dependency Setup: Ensure you have Java and Maven installed. Include the HandwrittenRPC dependency in your project's Maven configuration.

  3. Service Provider Setup: Implement your service providers and register them with HandwrittenRPC. Annotate your service interfaces and provide the necessary configuration.

  4. Consumer Integration: Integrate HandwrittenRPC with your consumer applications by adding the required configuration and annotations.

  5. Load Balancing and Circuit Breaking: Explore the different load balancing strategies and circuit breaking mechanisms provided by HandwrittenRPC. Customize them according to your application's requirements.

  6. Spring Boot Integration: If you're using Spring Boot, include the HandwrittenRPC Spring Boot starter in your project to simplify integration and configuration.

For detailed instructions and examples, refer to the Documentation.

Contributions and Feedback

HandwrittenRPC welcomes contributions from the community. If you encounter issues, have ideas for improvements, or want to contribute new features, please submit an issue or create a pull request on GitHub.

License

HandwrittenRPC is released under the MIT License. Feel free to use, modify, and distribute the framework in your projects.

Acknowledgments

We would like to express our gratitude to the open-source community for their continuous support and contributions. HandwrittenRPC has been made possible through the dedication and effort of contributors worldwide.


Note: This README provides a high-level overview of the HandwrittenRPC framework. For in-depth information, usage instructions, and examples, please refer to the official Documentation.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages