SOFABolt

SOFABolt是一款网络通信框架,当你需要为应用程序配置远程通信服务的时候就可以使用这款框架,通过这款软件就可以配置多款应用程序远程服务调用具体方案,让应用程序之前的数据可以同步,从而在监控平台获取多个终端的数据,对于需要远程监控数据、监控流量变化、监控平台负载等场景很有帮助,软件基于Netty开发,您可以在SOFABoot中使用XML、在SOFABoot中使用注释、在SOFABoot中使用动态API,也可以结合SOFARPC使用,为开发者提供更便捷的应用通信服务配置方案!

相关推荐 软件介绍 下载地址
SOFABolt官方版v1.5.7 SOFABl是一款网络通信框架,当你需要为应用程序配置远程通信服务的时候就可以使用这款框架,通过这款软件就可以配置多款应用程序远程服务调用具体方案,让应用程序之前的数据可以同步,从而在监控平台获取多个终端的数据,对于需要远程监控数据、监控流量变化、监… 点击查看
CatfishCMS官方版v6.3.0 Cafish(鲶鱼)S是一款开源免费的PHP内容管理系统,不需要高深专业技术轻松搭建网站,使用简单,灵活方便,稳定快捷,风格切换,想换就换,适应不同需求!CafishCMSCafishS软件特色开源SCafish(鲶鱼)cms系统是开源的PHP程序,您可以免费使用,终生升级简单易用使… 点击查看
Hexo官方版v5.4.0 Hex是一款博客框架,可以通过这款软件帮助用户建立个人博客,方便记录自己的生活,您可以在博客上发布文章内容,可以发布图像内容,可以添加影片内容,可以附加标签内容,为用户编辑文章提供了更多选择,适合喜欢发布文章的朋友使用;软件功能丰富,可以自己选择提… 点击查看

SOFABolt软件功能

SOFABolt的基功能包括:

1、基通信功能 ( remoting-core )

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

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

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

超时控制

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

心跳与 IDLE 事件处理

2、协议框架 ( p tocol-skeleton )

命令与命令处理器

编解码处理器

心跳触发器

3、私有协议定制实现 – RPC 通信协议 ( pt ocol-implementation )

RPC 通信协议的设计

灵活的反序列化时机控制

请求处理超时 FailFast 机制

用户请求处理器 ( UserPcessor )

双工通信

SOFABolt软件特色

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

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

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

Bolt 名字取自迪士尼动画-闪,是一个基于 Netty 最佳实践的轻量、易用、高能、易扩展的通信框架。

这些年我们在微服务与消息中间件在网络通信上解决过很多问题,积累了很多经验,并持续的进行着优化和完善,我们希望能把总结出的解决方案沉淀到 SOFABolt 这个基组件里,让更多的使用网络通信的场景能够统一受益。

目前该产品已经运用在了蚂蚁中间件的微服务(SOFARPC)、消息中心、分布式事务、分布式开关、以及配置中心等众多产品上。

SOFABolt教程

开始使用SOFABoot

建立专案

1、准备环境:SOFABoot需要JDK7或JDK8,并且需要使用Apache Maven 2.2.5或更高版本进行编译。

2、生成SOFABoot项目:SOFABoot基于Spng Boot。因此,您可以使用Spng Boot的项目生成工具来生成标准的Spng Boot项目。

3、添加SOFABoot依赖关系:生成的标准Spng Boot项目直接使用Spng父依赖关系,应将其更改为SOFABoot提供的父依赖关系。父级依赖项提供并管理SOFABoot提供的各种启动程序。

将以上内容替换为以下内容:

1、Configure application.pperties: application.pperties是SOFABoot项目中的配置文件。在这里,您需要配置应用程序名称。

spng.application.name=AppName

2、介绍RPC启动器:

声明SOFABoot的xsd文件:

在要使用的XML配置文件中,将头文件xsd文件的声明配置为以下内容。这样可以使用SOFABoot定义的XML元素进行开发。

定义服务接口和实施

在上发布服务

在xml文件中配置以下内容。刷新Spng上下文后,SOFABoot在上注册服务实现,通过螺栓协议与客户端通信,并将诸如地址之类的元数据发布到注册表中心(默认情况下,本地文件用作注册表中心)。

客户咨询服务

在xml文件中配置以下内容。刷新Spng上下文后,SOFABoot会生成RPC代理Bean personReferenceBolt。这使您可以直接在代码中使用Bean进行远程调用。

运行项目

SpngBoot的启动类编码如下。上面的xml文件是使用ImportResource在此处加载的。

输出结果如下:

sync

通过此步骤,您已经完成了服务发布和参考。

在非Spng环境中使用API

SOFARPC

服务发布

服务发布的过程涉及三个类RegistryConfig,ServerConfig,PviderConfig。

1、注册表配置

1、

RegistryConfig代表注册中心。如上所述,服务注册中心的地址和端口是127.0.0.1:2181,协议是Zookeeper。

i.配置 java ServerConfig Config = new ServerConfig .setPort(8803) .setPtocol(“bolt”);ServerConfig表示运行服务的容器。上面声明了使用8803端口和bolt协议的。

1、PviderConfig

PviderConfig代表服务发布。上面声明了服务的接口,实现了运行该服务的,并最终通过该export方法发布了该服务。

服务参考

服务参考涉及两个类,即RegistryConfig和ConsumerConfig。

ConsumerConfig代表服务参考。上面声明了所引用服务接口的接口和服务注册中心,最后通过该refer方法引用该服务,以获取该服务的远程调用的代理。

在SOFABoot中使用XML

XML模式

该办法发布和XML模式的参考服务如下。sofa:代表发布服务,并sofa:reference代表引用服务。sofa:binding指示用于服务发布或参考的协议。

服务也可以通过多种协议发布,如下所示:

服务参考

服务还可以通过其他协议引用:

在SOFABoot中使用注释

使用注释进行服务发布/参考

除了常规的xml模式外,还支持在SOFABoot环境中发布和引用带有注释的服务。类似XML,我们提供 @SofaService和@SofaReference以及@SofaServiceBinding和@SofaReferenceBinding注释为多协议。

服务发布

要发布RPC服务,只需要@SofaService在Bean上添加注释即可指定接口和协议类型。

服务参考

对于需要引用远程服务的bean,只需在属或方法上添加Reference批注。这支持bolt,dubbo,rest协议。

在SOFABoot中使用动态API

使用API

SOFABoot提供了一组用于RPC服务发布和参考的编程API。直接在代码中发布和引用RPC服务很方便。与Spng的ApplicationContextAware相似,要使用编程API,首先需要实现ClientFactoryAware接口以获取编程组件API:

以DirectService为例,了解如何使用clientFactory通过编程API发布RPC服务:

在上面的代码中:

1、首先,ServiceClient通过获得对象clientFactory。

2、,构造ServiceParam包含发布服务所需的参数的对象,并使用该setInstance方法将要发布的对象设置为RPC服务,setInteceType以设置服务的接口。

3、最后,调用的服务方法ServiceClient来发布RPC服务。

通过编程API引用RPC服务的代码类似:

同样,引用一个RPC服务,代码只需要得到ReferenceClient来自ClientFactory构造一个ReferenceParam类似发布服务,下一组了服务接口,最后调用ReferenceClient的参考方法。

上一篇 2023-02-03

相关推荐

  • SOFABolt

    SOFABolt是一款网络通信框架,当你需要为应用程序配置远程通信服务的时候就可以使用这款框架,通过这款软件就可以配置多款应用程序远程服务调用具体方案,让应用程序之前的数据可以...
正在提交中,请稍等片刻...

发表回复

请登录后评论...
登录后才能评论

评论列表 (0条)