kiss-rpc特点:1.轻量级,简单易用。支持idl和手动协议两种方式。模拟函数调用方式更符合rpc远程调用方式。易修改易用,已有代码直接发布使用数据格式支持向后兼容,采用flatbuffer协议,兼容性更好,速度更快。支持多值返回特性,支持超时机制,比grpc、thrift、dubbo快几倍甚至几十倍。支持snappy压缩算法,压缩速度快,性能优越。支持流水线数据压缩、动态数据压缩、按需数据压缩,应用场景灵活广泛。开发环境*环境:linux,unix,windows,macOS*传输协议:flatbufferfordlang(需安装此依赖库,https://github.com/huntlabs/g...*压缩协议:snappy(需安装这个依赖库,https://github.com/google/sna...*开发语言:dlang*编译器:dub*github:https://github.com/huntlabs/kiss-rpc*Developernotes:[Developmentnotes关于kiss-rpc使用的压缩方式数据压缩:使用googlesnappy压缩技术,支持强制压缩和动态压缩方式,灵活的压缩方式可以适用于各种场景动态压缩技术:当数据包大于200字节或者当设置了阈值,数据包就会被压缩,否则数据包不会被压缩,有利于空间利用和性能提升,响应也会根据请求动态压缩数据。单次请求压缩:针对单次请求请求进行压缩,响应也会按照请求的数据包压缩方式进行压缩。管道压缩:数据包可以在指定的管道上进行压缩。待开发的数据加密:采用多证书加密和单证书加密,更安全。负载均衡、反向代理:主动发现服务器,动态感知集群状态。Kissrpc同步异步测试:*环境:ubuntu16.04lts(64-bit)*硬件:xeoncpue3-1230@3.3GHzx8*内存:8G*网络:localhost(localloopback)kissrpcflatbufferversiontest:single连接100wQPS同步测试,耗时:20秒,平均每秒5wQPS,单连接100wQPS异步测试,耗时5秒,平均20wQPS1000并发异步测试1000并发,100wQPS异步测试,耗时:5秒,每秒平均QPS:20W其他rpc性能对比测试:(http://blog.csdn.net/jek12345...***海量互联网业务系统只有分布式架构才能解决,分布式开发的基石就是RPC;本文主要关注两种开源RPC框架(gRPC、ApacheThrift),以及GoLang和C++两种开发语言的性能对比分析。测试场景下,client和server都是单进程长连接,单连接内发起1w(5w)次rpc调用,需要时间计算;client和server都是单进程短连接,一共发起1w(5w)个连接,每个连接调用一次RPC,耗时计算;4个client进程并发,每个进程有一个10wrpc的长连接,服务端为单进程多线程(协程),计算耗时;由于语言不同,耗时统计存在偏差,比如程序中boost.timer计算的耗时明显偏小,所以统一使用linux命令time来计算耗时;1.单进程下,长短连接,两种RPC框架,两种主流语言对比总结:总体上看,长连接性能优于短连接,性能差距更大超过两次;与Go语言的两个RPC框架相比,Thrift的性能明显优于gRPC,性能差距也超过一倍;与Thrift框架Language下的两个RPC框架相比,Go和C++在长连接下的RPC性能基本处于同一个数量级,在短连接下,Go的性能大约是C++的两倍;与Thrift&C++下的TSimpleServer和TNonblockingServer相比,在单进程客户端长连接场景下,由于线程管理开销,TNonblockingServer性能不如TSimpleServer;但在短连接的情况下,主要开销是连接建立,线程池管理开销可以忽略;两套RPC框架和两种语言非常稳定,50000次请求时间是1w次的5倍左右;2、多进程(线程、协程)下,两大RPC框架和两大语言的对比
