同步RPC存在线程利用率低、超时时间难以确定、雪崩效应等缺点。异步RPC能较好的解决这些问题。
RPC的本质是要使得微服务远程调用像调用本地方法一样无感。
JDK Serializable
, FST
只适用于Java;Protobuf
, Thrift
, Avro
支持多种语言,但都需要先通过IDL(接口描述语言,Interface description language)定义Schema;Avro
和Kryo
序列化后的数据最小,FST
和Kryo
序列化时间开销表现最好;Hessian
支持多语言,无需IDL定义Schema,对Java数据类型、语法的支持最佳。
Spring cloud gateway
👉 webflux
👉 project reactor
👉 netty
👉 epoll
验签:防接口被肆意调用 client对request签名,server对请求进行验签。 鉴权:防调用没有权限的接口 token鉴权,实际上验签、鉴权通常是一同处理的,例如:OAuth2 验证请求的timestamp:...
前言 服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化的,也是无法预先确...
其实所谓的高并发,如果你要理解这个问题呢,其实就得从高并发的根源出发,为啥会有高并发?为啥高并发就很牛逼? 我说的浅显一点,很简单,就是因为刚开始系统都是连接数据库的,但是要知道数据库支撑到每秒并发两三千的时候,基本就快完了。所以才有说,很...