`
cywhoyi
  • 浏览: 413262 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

支持分布式的callback

阅读更多

项目背景:

       之前在某次培训的分享中,谈到rxjava、vertx等开源框架,也了解到callback概念,在分享的中某位童鞋谈到分布式下callback如何处理,说实话在当时的环境能够通过几句话描述callback都比较困难,更何况描述分布式下的callback,所以本文我想通过基于jgroup的方式,更好阐述我的理解如何处理分布式下的callback。

 

 

 



 

 

public class ReplyingCallback implements CommandCallback<Object, Object> {

    private final JChannel channel;
    private final Serializer serializer;

    private static final Logger logger = LoggerFactory.getLogger(ReplyingCallback.class);
    private final Address address;

    public ReplyingCallback(JChannel channel, Address address, Serializer serializer) {
        this.address = address;
        this.channel = channel;
        this.serializer = serializer;
    }

    @Override
    public void onSend(CommandMessage<?> commandMessage, Object result) {
        try {
            channel.send(address, new ReplyMessage(commandMessage.getIdentifier(),
                                                   result,
                                                   null, serializer));
        } catch (Exception e) {
            logger.error("Unable to send reply to command [name: {}, id: {}]. ",
                         commandMessage.getCommandName(), commandMessage.getIdentifier(), e);
            throw new CommandResponseProcessingFailedException(String.format(
                    "An error occurred while attempting to process command response of type : %s, Exception Message: %s",
                    result.getClass().getName(), e.getMessage()), e);
        }
    }

 

 

 

 

  • 大小: 78.2 KB
分享到:
评论

相关推荐

    基于Go的分布式游戏服务器框架mqant.zip

    特性分模块机制基于 golang 协程,开发过程全程做到无 callback 回调,代码可读性更高RPC 支持本地和远程自动切换远程 RPC 默认使用 rabbitmq,未来可以添加更多种类的通信协议网关采用 MQTT 协议,无需再开发客户端...

    lambdaws-instant-api:从任何 Javascript 函数创建可扩展的分布式 API 端点

    从任何 Javascript 函数创建可扩展的分布式公共 API 端点。 由 AWS Lambda 和 Lambdaws 提供支持。 用法 安装 npm install lambdaws-instant-api或克隆这个 repo。 创建即时函数 var lamdawsInstantApi = require ...

    PySipder是一个Python爬虫程序.rar

    分布式架构 示例代码: from pyspider.libs.base_handler import * class Handler(BaseHandler): crawl_config = { } @every(minutes=24 * 60) def on_start(self): self.crawl('http://scrapy.org/', ...

    ThinkPHP v3.0.1 开发板.zip

    库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。   使用ThinkPHP,你可以更方便和快捷的开发和部署...

    rpc:第一届阿里巴巴中间件性能竞赛的远程过程调用(RPC)程序

    一个简单的RPC框架 RPC(Remote Procedure Call )——远程过程调用,它是一种通过网络从远程计算机程序上...3.支持异步调用,提供future、callback的能力。 4.能够传输基本类型、自定义业务类型、异常类型(要在客户

    JAVA_API1.6文档(中文)

    java.rmi.dgc 为 RMI 分布式垃圾回收提供了类和接口。 java.rmi.registry 提供 RMI 注册表的一个类和两个接口。 java.rmi.server 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 ...

    java jdk-api-1.6 中文 chmd

    java.rmi.dgc 为 RMI 分布式垃圾回收提供了类和接口。 java.rmi.registry 提供 RMI 注册表的一个类和两个接口。 java.rmi.server 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 ...

    java api最新7.0

    java.rmi.dgc 为 RMI 分布式垃圾回收提供了类和接口。 java.rmi.registry 提供 RMI 注册表的一个类和两个接口。 java.rmi. 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 java....

    Android路由框架ARouter分析

    一、路由方案  原生的路由方案缺点: 显式:直接的类依赖,耦合严重 隐式:规则集中式管理,协作困难 Manifest扩展性较差 跳转过程无法控制 失败无法降级 ARouter的优势: 使用注解,实现了映射关系自动...支持直接

    Java 1.6 API 中文 New

    java.rmi.dgc 为 RMI 分布式垃圾回收提供了类和接口。 java.rmi.registry 提供 RMI 注册表的一个类和两个接口。 java.rmi.server 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 java....

    JavaAPI1.6中文chm文档 part1

    java.rmi.dgc 为 RMI 分布式垃圾回收提供了类和接口。 java.rmi.registry 提供 RMI 注册表的一个类和两个接口。 java.rmi.server 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 ...

    JavaAPI中文chm文档 part2

    java.rmi.dgc 为 RMI 分布式垃圾回收提供了类和接口。 java.rmi.registry 提供 RMI 注册表的一个类和两个接口。 java.rmi.server 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 ...

    [Java参考文档]

    java.rmi.dgc 为 RMI 分布式垃圾回收提供了类和接口。 java.rmi.registry 提供 RMI 注册表的一个类和两个接口。 java.rmi.server 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 ...

    [Java参考文档].JDK_API 1.6

    java.rmi.dgc 为 RMI 分布式垃圾回收提供了类和接口。 java.rmi.registry 提供 RMI 注册表的一个类和两个接口。 java.rmi.server 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 java....

    JDK_1_6 API

    java.rmi.dgc 为 RMI 分布式垃圾回收提供了类和接口。 java.rmi.registry 提供 RMI 注册表的一个类和两个接口。 java.rmi.server 提供支持服务器端 RMI 的类和接口。 java.security 为安全框架提供类和接口。 java....

    单点登录源码

    [阿里云OSS](project-bootstrap/aliyun-oss-post-callback.png) &gt; zheng-api 服务网关,对外暴露统一规范的接口和包装响应结果,包括各个子系统的交互接口、对外开放接口、开发加密接口、接口文档等服务,可在该...

    asp.net知识库

    关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--序 XCodeFactory3.0完全攻略--基本思想 XCodeFactory...

Global site tag (gtag.js) - Google Analytics