A simple rpc framework for learning rpc-related basics only
- Build and install by maven
- Modify the address of the zookeeper registry in client/rpc.properties and server/rpc.properties
- Run RpcClientApplication and RpcServerApplication
- Test by a get request
- Use Netty (based on NIO) instead of BIO to implement network transfers.
- Use Zookeeper to manage related service address information.
- Support for multiple open source serialization mechanisms: Kryo, Hessian and Protostuff.
- Support for Netty server-side reusable Channels to improve the utilization of network connection resources.
- Support for compressing/decompressing messages using Gzip.
- Support Netty-based LengthFieldBasedFrameDecoder encoder for message body encoding and decoding.
- Add Netty heartbeat mechanism to verify the connection between client and server to avoid reconnection.
- Support load balancing algorithm for service calls, currently implementing random load balancing and consistency hash algorithm.
- Enhance the SPI mechanism to support the specification of service name, priority and scope.
- Integrating Spring, registering service provider implementation classes and service consumer beans via annotations.
- Add configurable features, such as serialization methods, registry implementations, etc., to avoid hard coding and integrate with SpringBoot autoconfiguration.
- Add unit test cases and integration test methods.
- Support Services Monitoring Center.
- Improve high availability and distribution in more ways.