tonydeng / springboot-rpc-samples

Spring Boot RPC Samples

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Spring Boot RPC's Samples

Build Status
Coverage
Lines of code
License: MIT

RPC

RPC只是描绘了ClientServer之间的点对点调用流程,包括stub、通信、RPC消息解析等部分,在实际应用中,还需要考虑服务的高可用、负载均衡等问题,所以产品级的RPC框架除了点对点的RPC协议的具体实现外,还应包括服务的发现与注销、提供服务的多台Server的负载均衡、服务的高可用等更多的功能。目前的RPC框架大致有两种不同的侧重方向,一种偏重于服务治理,另一种偏重于跨语言调用。

服务治理型RPC框架有DubboDubboXMotan等,这类的RPC框架的特点是功能丰富,提供高性能的远程调用以及服务发现及治理功能,适用于大型服务的微服务化拆分以及管理,对于特定语言(如Java)的项目可以十分友好的透明化接入。但缺点是语言耦合度较高,跨语言支持难度较大。

跨语言调用型的RPC框架有ThriftgRPCHessianHprose等,这一类的RPC框架重点关注于服务的跨语言调用,能够支持大部分的语言进行语言无关的调用,非常适合于为不同语言提供通用远程服务的场景。但这类框架没有服务发现相关机制,实际使用时一般需要代理层进行请求转发和负载均衡策略控制。

Thrift

https://thrift.apache.org/

The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages.

Thrift介绍

Armeria

https://armeria.github.io/

Asynchronous RPC/REST library built on top of Java 8, Netty, HTTP/2, Thrift and gRPC

Armeria介绍

gRPC

https://grpc.io/

A high performance, open-source universal RPC framework

gRPC介绍

Gateway

About

Spring Boot RPC Samples


Languages

Language:Java 96.8%Language:Thrift 3.2%