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不会与其他的服务冲突。

  • 相关阅读:
    SQL入门经典(九) 之自定义函数
    SQL入门经典(八) 之存储过程
    SQL入门经典(七) 之脚本和批处理
    SQL入门经典(六) 之视图
    超越阿里云,华为云网络服务竟然这么厉害!
    shanchushanchu
    2020-2022年中国云计算市场预测
    如何使用egit将本地代码提交到托管平台
    一个项目经理对主流项目管理工具的对比:禅道VS华为软件开发云
    从SVN到Git最强指南
  • 原文地址:https://www.cnblogs.com/cuizhf/p/2169944.html
Copyright © 2011-2022 走看看