zoukankan      html  css  js  c++  java
  • 关于ResolverService

    ResolverService使用的消息包括ResolverQueryMsg和ResolverResponseMsg,这些消息中只能加载字符串类型的数据,因此不能支持序列化,无法利用序列化带来的好处。无法序列化使得许多设计模式没有了用武之地。

    一个解决方式是将对象序列化后的字节数组重新编码为字符串(可以借助某些库例如commons-codec实现),但是这样处理是否太丑了;而且有违ResolverService的原意(否则它就应该提供二进制传输的能力)。

    在使用管道进行通信时是支持二进制消息的。

    ----------------------------------------------------------------------------------------------------------

    ResolverService只能注册一个handler,那么所有的请求、响应都必须在这个handler中处理吗?

    DiscoveryService底层也是使用ResolverService,它又是怎么对请求/响应进行处理的,它不会与其他在同一个对等组中使用ResolverService(比如我们自己利用ResolverService实现的某些功能) 的功能冲突么???有时间参考一下DiscoveryService的源代码,看看它是怎样做到ResolverService在功能上的隔离的。

    现在想想DiscoveryService也有同样的问题啊? 凡是注册过的监听器,只要有消息,都会收到通知。但怎样知道是不是自己感兴趣的消息呢?

    -----------------------------------------------------------------------------------------------------------

    唔,刚看了下源代码,不同服务使用的ResolverService会注册不同的handler,它们的键值不同(通常是服务通告的ModuleClassID)。

    因此多个使用ResolverService的服务之间不会冲突,DiscoveryService不会与其他的服务冲突。

  • 相关阅读:
    Linux下运行java项目
    Matlab 绘图完整入门
    Matlab命令合集 妈妈再也不用担心我不会用matlab了
    详尽全面的matlab绘图教程
    拉格朗日乘子法 那些年学过的高数
    【转】几款网络仿真软件的比较
    正则表达式30分钟入门教程 ——堪称网上能找到的最好的正则式入门教程
    并发编程详细整理
    高并发通信模型NIO
    Java并发编程的艺术笔记(九)——FutureTask详解
  • 原文地址:https://www.cnblogs.com/cuizhf/p/2169944.html
Copyright © 2011-2022 走看看