/rpc-framework

a simple rpc-framework

Primary LanguageJava

rpc-framework

A simple rpc framework for learning rpc-related basics only

Start

  1. Build and install by maven
  2. Modify the address of the zookeeper registry in client/rpc.properties and server/rpc.properties
  3. Run RpcClientApplication and RpcServerApplication
  4. Test by a get request

TODO

  • 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.