阿里开源基于 Netty 实现的网络通信框架 SOFABolt | 软件推介

Posted OSC开源社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里开源基于 Netty 实现的网络通信框架 SOFABolt | 软件推介相关的知识,希望对你有一定的参考价值。


Apache 2.0

Java

跨平台

阿里巴巴


SOFABolt 是蚂蚁金融服务集团开发的一套基于 Netty 实现的网络通信框架。


  • 为了让 Java 程序员能将更多的精力放在基于网络通信的业务逻辑实现上,而不是过多的纠结于网络底层 NIO 的实现以及处理难以调试的网络问题,Netty 应运而生。

  • 为了让中间件开发者能将更多的精力放在产品功能特性实现上,而不是重复地一遍遍制造通信框架的轮子,SOFABolt 应运而生。


Bolt 名字取自迪士尼动画-闪电狗,是一个基于 Netty 最佳实践的轻量、易用、高性能、易扩展的通信框架。 目前该产品已经运用在了蚂蚁中间件的微服务 (SOFARPC)、消息中心、分布式事务、分布式开关、以及配置中心等众多产品上。


功能介绍


阿里开源基于 Netty 实现的网络通信框架 SOFABolt | 软件推介


SOFABolt 的基础功能包括:


  • 基础通信功能 ( remoting-core )

    • 基于 Netty 高效的网络 IO 与线程模型运用

    • 连接管理 (无锁建连,定时断链,自动重连)

    • 基础通信模型 ( oneway,sync,future,callback )

    • 超时控制

    • 批量解包与批量提交处理器

    • 心跳与 IDLE 事件处理

  • 协议框架 ( protocol-skeleton )

    • 命令与命令处理器

    • 编解码处理器

    • 心跳触发器

  • 私有协议定制实现 - RPC 通信协议 ( protocol-implementation )

    • RPC 通信协议的设计

    • 灵活的反序列化时机控制

    • 请求处理超时 FailFast 机制

    • 用户请求处理器 ( UserProcessor )

    • 双工通信


用法1


将 SOFABolt 用作一个远程通信框架,使用者可以不用关心如何实现一个私有协议的细节,直接使用我们内置的 RPC 通信协议。可以非常简单的启动客户端与服务端,同时注册一个用户请求处理器,即可完成远程调用。同时,像连接管理、心跳等基础功能特性都默认可以使用。 当前支持的调用类型如下图所示:


阿里开源基于 Netty 实现的网络通信框架 SOFABolt | 软件推介


  • 示例 Demo 请参考用户手册


用法2


将 SOFABolt 用作一个协议框架,使用者可以复用基础的通信模型、协议包含的接口定义等基础功能。然后根据自己设计的私有协议自定义 Command 类型、Command 处理器、编解码处理器等。如下图所示,RPC 和消息的 Command 定义结构:


阿里开源基于 Netty 实现的网络通信框架 SOFABolt | 软件推介



阿里开源基于 Netty 实现的网络通信框架 SOFABolt | 软件推介


阿里开源基于 Netty 实现的网络通信框架 SOFABolt | 软件推介


推荐阅读






点击“阅读原文”查看更多精彩内容

以上是关于阿里开源基于 Netty 实现的网络通信框架 SOFABolt | 软件推介的主要内容,如果未能解决你的问题,请参考以下文章

你真的了解Netty中@Sharable?

腾讯开源的RPC框架,要干阿里Dubbo?别打了,还不都是基于它构建!

牛啤!这个框架被大量使用,腾讯开源的RPC框架,阿里的Dubbo,都得感谢它!

如何用Netty写一个高性能的分布式服务框架?

java netty tcp服务器线程阻塞问题定位解决

netty是啥?