Nepxion-Thunder(QQ 群 471164539)发布在https://github.com/Nepxion/
- 1 ServerExecutor.java - 服务端运行器接口
interfaze :接口名(例如com.nepxion.thunder.test.service.UserService)
applicationEntity包含四个参数:application(应用名),group(组名),host(服务地址),port(端口)。应用名和组名的作用,一是为了管理方便,二是防止同名接口的出现
ServerExecutor.java作用是根据接口名+应用名+组名+服务地址+端口发布一个服务 - 2 AbstractServerExecutor.java - ServerExecutor.java的抽象实现,具体逻辑到各个通信中间件的去实现
- 3 ServerExecutorAdapter.java - 继承AbstractDominationExecutor.java,服务端处理逻辑的封装适配,分为三部分:处理结果(安全访问的拦截),处理异常,处理监控。服务端的处理是异步多线程
- 4 ClientExecutor.java - 调用端运行器接口
ClientExecutor.java作用是根据接口名+应用名+组名+服务地址+端口获取一个服务,对服务上下线后的回调 - 5 AbstractClientExecutor.java - ClientExecutor.java的抽象实现,具体逻辑到各个通信中间件的去实现
- 6 ClientExecutorAdapter.java - 继承AbstractDominationExecutor.java,调用端处理逻辑的封装适配,分为四部分:处理同步/异步返回结果(异步心跳和广播忽略),处理异常,处理监控。同步模式下,用CyclicBarrier做异步模拟同步等待
-
7 ClientInterceptor.java - 调用端代理拦截器
ClientInterceptor.java作用是提供异步调用,同步调用,广播调用三种方式接口 - 8 AbstractClientInterceptor.java - 调用端代理拦截器的抽象实现,具体逻辑到各个通信中间件的去实现
- 9 ClientInterceptorAdapter.java - 调用端代理拦截器的处理逻辑封装适应。主要是同步的处理逻辑,异步不同通信中间件方式不一样,不做封装
- 10 DominationExecutor.java - 服务治理器接口
- 11 AbstractDominationExecutor.java - DominationExecutor.java的抽象实现,主要处理监控和事件输出
-
12 ProtocolException - 协议异常类
Thunder在通信过程中,以序列化的对象为消息载体,基础消息类是ProtocolMessage,派生类ProtocolRequest为请求载体,派生类ProtocolResponse为响应载体 -
13 ProtocolMessage.java - 序列化类
private String messageId; // UUID.randomUUID()的随机字符串,作为消息的唯一ID private String traceId; // 全局跟踪ID private String interfaze; // 接口名 private String metho; // 方法名 protected Class<?>[] parameterTypes; // 参数类型 protected Object[] parameters; // 参数值 private boolean async; // 异步或者同步请求 private String callback; // 回调接口名(只用于异步方法) private long timeout; // 超时时间(只用于同步方法) private boolean broadcast; // 广播模式(广播模式前提必须是异步请求) private boolean heartbeat; // 心跳模式 private boolean feedback; // 是否需要服务端反馈结果(只用于异步方法,有一种调用方式,客户端只把请求发送出去,不需要服务端返回) private long processStartTime; // 调用的业务处理起始时间 private long processEndTime; // 调用的业务处理结束时间 private long deliverStartTime; // 调用的网络传输起始时间 private long deliverEndTime; // 调用的网络传输结束时间 private String fromCluster; // 消息从哪个集群发出 private String fromUrl; // 消息从哪个Url发出 private String toCluster; // 消息发往哪个集群 private String toUrl; // 消息发往哪个Url private Object requestSource; // 请求Source(一般是IP:Port格式的字符串),只作为消息队列MQ Selector用 private Object responseSource; // 响应Source(一般是(IP:Port格式的字符串),只作为消息队列MQ Selector用
-
14 ProtocolRequest.java - 调用端发送到服务端的请求类,继承于ProtocolMessage.java,序列化类
private ReferenceConfig referenceConfig; // 包含secretKey(密钥),version(版本)等,发送到服务端,用于匹配
-
15 ProtocolResponse.java - 服务端返回到调用端的响应类,继承于ProtocolMessage.java,序列化类
private Object result; // 调用的结果
相关推荐
Nepxion Thunder是一个基于Java的分布式RPC框架,集成了Netty、Hessian、Kafka、ActiveMQ、Tibco、Zookeeper、Redis、Spring Web MVC、Spring Boot和Docker等技术。它支持多协议、多组件和多序列化,为开发者提供了...
Coroutine是基于Kilim/Promise JDeferred的协程式驱动框架,基于Apache Zookeeper的分布式规则存储和动态规则变更通知。 主要特性: 1. 基于微服务框架理念设计 2. 支持同步/异步调用 3. 支持串行/并行调用 4....
Nepxion Thunder是一款基于Netty + Hessian + Kafka + ActiveMQ + Tibco + Zookeeper(Curator Framework) + Redis + FST + Spring + Spring Web MVC + Spring Boot + Docker分布式RPC调用框架。架构思想主要是来自...
yinheli/docker-thunder-xware:latest 镜像打包下载 群晖 NAS DSM 系统,只要三步使用 Docker 安装迅雷远程下载
在压缩包"thunder-master"中,包含了Thunder框架的源码和其他相关资源。开发者可以通过查看源码,了解其内部实现原理,也可以直接使用它来快速搭建自己的GraphQL服务。在实际开发过程中,结合Go语言的标准库和第三方...
该项目是一款基于Kilim、Promise JDeferred、Zookeeper和Spring Boot技术的协程驱动分布式...该框架支持Nepxion Thunder、Dubbo和Motan等RPC调用的集成,并通过规则配置实现调用聚合,适用于构建高性能的分布式系统。
wine-thunder_0.6-2_all.deb用于在linux系统下,使用wine直接按装的迅雷软件,实现高速下载,在ubunut,fedora等linux版本中,实现直接点击安装
"thunder-master"这个压缩包子文件名可能代表项目的主分支或主代码库,这在Git等版本控制系统中很常见,"master"通常指的是默认分支,存放着项目的最新稳定版本。解压后,用户可以访问到项目的源代码、文档、构建...
Go-Thunder是一个基于BoltDB数据库的交互式Shell工具,主要设计用于方便地与BoltDB数据库进行交互,提供了一种命令行界面来操作和管理数据。BoltDB本身是Go语言实现的一个轻量级、文件存储的键值对数据库,它以其...
【压缩包子文件的文件名称列表】"thunder-oms" 这个文件名可能代表“Thunder Operation Management System”(迅雷运营管理系统),或者是一种特定的模块或服务。它可能包含了项目的源代码、配置文件、测试脚本等,...
A10-Thunder_1030S方案白皮书.pdf
标题中的“系统工具-文件下载-thunder_3.4.0.4338.zip”表明这是一款系统工具,具体来说是与文件下载相关的。这里的“thunder”很可能指的是迅雷,一个在中国广为人知的下载管理软件。版本号“3.4.0.4338”指示这是...
A10-Thunder_6430S方案白皮书.pdf
在使用Thunder时,用户应首先下载并解压“muesli-thunder.zip”文件,得到“thunder-master”目录。然后按照项目提供的安装指南编译并安装Thunder,最后通过命令行启动Thunder,开始探索和操作BoltDB数据库。对于...
docker pull yinheli/docker-thunder-xware:latest 创建一个下载目录. 用于挂载卷 mkdir data 运行 docker run -d \ --name=xware \ --net=host \ -v $(pwd)/data:/app/TDDOWNLOAD \ yinheli/docker-thunder-...
3D-Thunder-Lightning.zip,受航母指令启发的开源未来动作飞行模拟器游戏,3D建模使用专门的软件来创建物理对象的数字模型。它是3D计算机图形的一个方面,用于视频游戏,3D打印和VR,以及其他应用程序。
A10 Thunder 930方案白皮书 A10 Thunder 930是A10 Networks公司推出的统一应用服务网关(UASG),采用64位系统、1U硬件,提供了极具性价比的解决方案。该设备基于A10极具扩展性的灵活高级核心操作系统(ACOS)架构...
Thunderbird是一款由Mozilla基金会开发的开源邮件客户端,它集成了电子邮件、新闻组、RSS阅读器和日历功能,为用户提供了一站式的通信解决方案。Thunderbird91.0b4是该软件的一个版本,其中“91.0b4”表示的是版本号...
《A10 Thunder 5430S方案白皮书》是针对A10 Networks公司推出的Thunder 5430S高性能负载均衡解决方案的一份详细技术文档。在IT行业中,负载均衡是一项至关重要的技术,它确保了网络服务的高可用性和性能优化。A10 ...
Thunder Android OkHttp util package let response callback at MainThread(UIThread), also it‘s lifecycle safety. ⚠️ Thunder‘s code is based on SugarTask(Very nice code