A lightweight cross-platform RPC.
- Apache License 2.0 protocol open source
- Supports client load balancing (polling and random)
- Support ZooKeeper and file sharing the service coordination
- Runtime client proxy generation (based Roslyn)
- Pre-generated client agent (based Roslyn)
- Abstract codec (JSON and ProtoBuffer)
- Abstract transmission channel (DotNetty)
- Exception information transfer (Local exceptions to the server runtime can be passed to the client)
- NET Core Project structure
- Cross-platform
- Rpc core class library, has the following functions:
- Service Id generation
- Transfer the message model
- Type conversion
- Service routing abstraction
- Serializer abstraction (the default provides JSON serializer)
- Transport abstraction
- Codec abstraction (default provides JSON codec implementation)
- Client runtime (address resolver, address selector, remote call service)
- Service-side runtime (service entry management, service executor, service discovery abstraction, RpcServiceAttribute tagging service discovery implementation)
Service Agent Builder, provides features:
- Service agent implementation generation
- Service agent instance creation
ProtoBuffer protocol codec implementation.
Service Routing Management Based on ZooKeeper.
Implementation of DotNetty Transmission.
Unit test project.
Pre-production service agent tool, provides the following functions:
- Generate the service proxy implementation code file
- Generate the service agent to implement the assembly file
Test environment
OS | CPU | Memory | disk | network | VM |
---|---|---|---|---|---|
Windows 10 x64 | I7 3610QM | 16GB | SSD | 127.0.0.1 | no |
Ubuntu 16.04 x64 | I7 3610QM | 4GB | SSD | 127.0.0.1 | yes |
loop 10,000
first 2626ms
second 2597ms
third 2581ms
loop 10,000
first 2567ms
second 2617ms
third 2474ms
loop 10,000
first 3205ms
second 3252ms
third 2837ms
loop 10,000
first 3391ms
second 3391ms
third 3574ms