博客
关于我
Github优秀项目推荐-SOFABolt 是蚂蚁金融服务集团开发的一套基于 Netty 实现的网络通信框架。
阅读量:689 次
发布时间:2019-03-17

本文共 999 字,大约阅读时间需要 3 分钟。

SOFABolt 项目介绍

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

这款框架自然而然地诞生,主要目标是帮助开发者解决网络通信中的复杂问题。通过将大量底层通信逻辑抽象化,开发者可以将更多精力投入到业务逻辑实现上,而不是苦苦折腾网络底层的问题。

核心功能介绍

SOFABolt 提供了丰富的通信功能,涵盖以下核心模块:

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

    -based 于 Netty 的高效网络 IO 和线程模型,确保高性能。
    -支持智能化的连接管理(无锁建立连接、定时断链、自动重连)。
    -灵活的通信模型支持多种场景:有向通信(oneway)、同步通信(sync)、异步通信(future)、回调通信(callback)。
    -完善的超时控制机制,避免长时间等待。
    -批量解包和批量处理器功能,提升数据传输效率。
    -心跳机制与 IDLE 事件处理,保证长连接稳定性。

  • 协议框架 ( protocol-skeleton )

    -支持命令与命令处理器,轻松定义业务逻辑。
    -灵活的编解码处理器,可定制具体协议需求。
    -心跳触发器,优化服务器资源使用。

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

    -基于可扩展的 RPC 协议,支持分隔式反序列化。
    -采用 FailFast 机制,确保请求处理效率。
    -可配置的用户请求处理器(UserProcessor)。
    -双向通信支持,灵活满足业务需求。

  • 如何使用

    SOFABolt 提供两种主要使用场景:

  • 简单使用模式

    -快速搭建远程通信框架,无需深入研究私有协议细节。
    -通过内置 RPC 通信协议,轻松启动客户端与服务器。
    -注册自定义的用户请求处理器即可完成远程调用。

  • 定制化模式

    -复用 SOFABolt 的基础通信模型和协议接口。
    -基于私有协议定制 Command 类型、Command 处理器、编解码处理器等实现模块。

  • 如何贡献

    代码开源,欢迎在签署协议后提交贡献代码,具体细节请参考项目文档。

    版权协议

    对代码进行修改和变更需遵守相关协议,详情请参考完整协议文档。

    核心技术栈

    本文中提及的技术点包括 Netty 网络框架、微服务架构、消息中间件等相关技术。


    如果你有关于 SOFABolt 或相关技术的任何疑问,欢迎在技术讨论群中交流!

    转载地址:http://agdez.baihongyu.com/

    你可能感兴趣的文章
    输出对象的值——踩坑
    查看>>
    angular2项目里使用排他思想
    查看>>
    折线图上放面积并隐藏XY轴的线
    查看>>
    failed to push some refs to git
    查看>>
    在苹果Mac上如何更改AirDrop名称?
    查看>>
    1110 Complete Binary Tree (25 point(s))
    查看>>
    541【毕设课设】基于单片机电阻电感电容RLC测量仪系统
    查看>>
    568【毕设课设】基于单片机多路温度采集显示报警控制系统设计
    查看>>
    基于8086交通灯系统仿真设计(微机原理设计资料)
    查看>>
    解读域名管理之:域名注册机构介绍
    查看>>
    找中位数
    查看>>
    这些运维发展方向及系统运维技能都不了解,怎么能吃透Linux??
    查看>>
    自动化测试——UI自动化测试的痛点
    查看>>
    如何将萌推商品主图、属性图、详情图批量保存到电脑的方法
    查看>>
    2021年N1叉车司机模拟考试及N1叉车司机考试软件
    查看>>
    【奇淫巧技】Java动态代理(JDK和cglib)
    查看>>
    2021-05-11 现代操作系统 《现代操作系统 第4版》第3章 内存管理——总结(分段,分页,段页)(转载)
    查看>>
    【Stimulsoft Reports.Net教程】使用DesignerFx
    查看>>
    攻防世界 Pwn 新手
    查看>>
    mybtis-plus 出现 Wrong namespace
    查看>>