SOFA BOLT源码解析之概述

本文介绍了SOFABolt,一个基于Netty的网络通信框架,由蚂蚁金服开发。SOFABolt提供基础通信功能如连接管理、超时控制,以及私有协议定制实现,包括RPC通信协议。它支持Oneway、Sync、Future、Callback四种通信模型。文章详细阐述了连接事件处理器、用户请求处理器的实现,以及如何扩展序列化器。此外,还讨论了高级功能,如IO线程处理机制、用户处理器多线程池、请求处理超时控制等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1  概述

        关于SOFA Bolt的文档来自于Alipay开源社区,链接地址为:

        https://github.com/alipay/sofa-bolt

        https://github.com/alipay/sofa-bolt/wiki/SOFA-Bolt-Handbook

        此处直接引用该文档内容,主要是便于大家理解源码解析部分。

1.1  介绍

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

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

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

        Bolt 名字取自迪士尼动画-闪电狗,是一个基于 Netty 最佳实践的轻量、易用、高性能、易扩展的通信框架。这些年我们在微服务与消息中间件在网络通信上解决过很多问题,积累了很多经验,并持续的进行着优化和完善,我们希望能把总结出的解决方案沉淀到 SOFABolt 这个基础组件里,让更多的使用网络通信的场景能够统一受益。 目前该产品已经运用在了蚂蚁中间件的微服务 (SOFARPC)、消息中心、分布式事务、分布式开关、以及配置中心等众多产品上。

1.2  功能介绍

        SOFABolt 的基础功能包括:

        1.  基础通信功能 ( remoting-core )

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

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

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

            ●  超时控制

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

            ●  心跳与 IDLE 事件处理

        2.  协议框架 ( protocol-skeleton )

            ●  命令与命令处理器

            ●  编解码处理器

            ●  心跳触发器

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

            ●  RPC 通信协议的设计

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

            ●  请求处理超时 FailFast 机制

            ●  用户请求处理器 ( UserProcessor )

            ●  双工通信

1.2.1  基础功能

        1.  实现用户请求处理器 (UserProcessor)

        我们提供了两种用户请求处理器,SyncUserProcessor 与 AsyncUserProcessor。二者的区别在于,前者需要在当前处理线程以return返回值的形式返回处理结果;而后者,有一个 AsyncContext 存根,可以在当前线程,也可以在异步线程,调用sendRespons

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

任性之闲来无事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值