RPC
Dubbo
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容,详见后面描述。
Motan
Motan是新浪微博开源的一个Java 框架。它诞生的比较晚,起于2013年,2016年5月开源。Motan 在微博平台中已经广泛应用,每天为数百个服务完成近千亿次的调用。
rpcx
rpcx是Go语言生态圈的Dubbo, 比Dubbo更轻量,实现了Dubbo的许多特性,借助于Go语言优秀的并发特性和简洁语法,可以使用较少的代码实现分布式的RPC服务。
gRPC
gRPC是Google开发的高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。本身它不是分布式的,所以要实现上面的框架的功能需要进一步的开发。
thrift
thrift是Apache的一个跨语言的高性能的服务框架,也得到了广泛的应用。
消息队列
ZeroMQ
ZeroMQ是以库的形式存在,由应用程序加载、运行即可。但是ZeroMQ仅提供非持久性的消息队列。
ActiveMQ
ActiveMQ需要目标机器上已经安装了Java。
RabbitMQ
RabbitMQ需要Erlang环境。
MSMQ
微软产品。
Kafka
MetaMQ
RocketMQ
zbus
阿里云商业MQ
redismq
缓存
ehcache
redis
分布式二级缓存ehredis
J2Cache
分布式Session
使用Redis存储用户状态数据。
分布式锁
任务调度
定时任务
调用监控
metrics
限流、降级、熔断机制
hystrix
统一配置中心
服务注册与发现
客户端发现
服务端发现
安全控制
数据追踪
分布式下的微信和微信第三方