Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/RabbitTeam/RabbitCloud
A lightweight cross-platform RPC.
https://github.com/RabbitTeam/RabbitCloud
rpc
Last synced: 2 months ago
JSON representation
A lightweight cross-platform RPC.
- Host: GitHub
- URL: https://github.com/RabbitTeam/RabbitCloud
- Owner: RabbitTeam
- License: apache-2.0
- Created: 2016-06-21T02:35:11.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-07-28T03:14:41.000Z (over 2 years ago)
- Last Synced: 2024-06-01T06:33:57.932Z (8 months ago)
- Topics: rpc
- Language: C#
- Homepage:
- Size: 4.79 MB
- Stars: 335
- Watchers: 59
- Forks: 130
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Rabbit RPC
A lightweight cross-platform RPC.
## Features
1. Apache License 2.0 protocol open source
2. Supports client load balancing (polling and random)
3. Support ZooKeeper and file sharing the service coordination
4. Runtime client proxy generation (based Roslyn)
5. Pre-generated client agent (based Roslyn)
6. Abstract codec (JSON and ProtoBuffer)
7. Abstract transmission channel (DotNetty)
8. Exception information transfer (Local exceptions to the server runtime can be passed to the client)
9. **NET Core Project structure**
10. **Cross-platform**## Overview
![](http://images2015.cnblogs.com/blog/384997/201607/384997-20160708082111186-595090265.png)
### Rabbit.Rpc
1. Rpc core class library, has the following functions:
2. Service Id generation
3. Transfer the message model
4. Type conversion
5. Service routing abstraction
6. Serializer abstraction (the default provides JSON serializer)
7. Transport abstraction
8. Codec abstraction (default provides JSON codec implementation)
9. Client runtime (address resolver, address selector, remote call service)
10. Service-side runtime (service entry management, service executor, service discovery abstraction, RpcServiceAttribute tagging service discovery implementation)### Rabbit.Rpc.ProxyGenerator
Service Agent Builder, provides features:1. Service agent implementation generation
2. Service agent instance creation### extensions
#### Rabbit.Rpc.Codec.ProtoBuffer
ProtoBuffer protocol codec implementation.#### Rabbit.Rpc.Coordinate.Zookeeper
Service Routing Management Based on ZooKeeper.#### Rabbit.Transport.DotNetty
Implementation of DotNetty Transmission.### tools
#### Rabbit.Rpc.Tests
Unit test project.#### Rabbit.Rpc.ClientGenerator
Pre-production service agent tool, provides the following functions:1. Generate the service proxy implementation code file
2. Generate the service agent to implement the assembly file## Performance Testing
Test environmentOS | 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### Windows10 + NETCoreApp1.0 + JSON protocol
loop 10,000
first 2626ms
second 2597ms
third 2581ms### Windows10 + NETCoreApp1.0 + ProtoBuffer protocol
loop 10,000
first 2567ms
second 2617ms
third 2474ms### Ubuntu16.04-x64 + NETCoreApp1.0 + JSON protocol
loop 10,000
first 3205ms
second 3252ms
third 2837ms### Ubuntu16.04-x64 + NETCoreApp1.0 + ProtoBuffer protocol
loop 10,000
first 3391ms
second 3391ms
third 3574ms## related articles
* [拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc](http://www.cnblogs.com/ants/p/5652132.html)
* [.NET轻量级RPC框架:Rabbit.Rpc](http://www.cnblogs.com/ants/p/5605754.html)## communication
* [QQ Group:384413261(RabbitHub)](http://jq.qq.com/?_wv=1027&k=29DzAfj)
* [Email:[email protected]](mailto:[email protected])