zoukankan      html  css  js  c++  java
  • ICE第三篇------一些疑难点

    1 间接代理

    参考http://blog.sina.com.cn/s/blog_53e8499c0100lkoo.html

    IceGrid用于支持分布式网络服务应用,一个IceGrid域由一个注册表(Registry)和任何数目的节点(Node)构成。注册表(Registry)和节点(Node)一起合作管理一些信息以及包含一些应用(Application)的服务进程。每项应用(Application)被指定在特定节点上的服务。这个注册表(Registry)持久记录了这些信息,而节点(Node)负责启动和监测其指定的服务器进程。对于一个典型的配置,一个节点(Node)运行在一台计算机(称之为Ice服务器主机)。注册表(Registry)并不消耗很多处理器时间,所以它常常是和一个节点(Node)运行在同一台计算机上的,注册表(Registry)还可以和一个节点(Node)可以运行在同一进程中.如果需要容错,注册表(Registry)还可以用主从式的设计支持复制(Replication)。

    注册表(Registry)的主要责任,是解决作为Ice定位服务的间接代理问题,当客户端第一次尝试使用一种间接代理,客户端Ice run time首先连接注册表(registry),注册表将间接代理的符号信息转化为直接代理的endpoint,然后客户端和直接代理建立一个连接。通过适配器复制,同名适配器可以分布在多个节点上,间接代理可以映射到多个节点上的直接代理,在运行时由注册表服务根据负载均衡自动选择一个直接代理给客户端。

    使用间接代理时,客户端可以用以下方式直接获取服务对象代理:

    MyProxy=theObject@theAdapter  // 对象@适配器

    更简单一点的话可以用以下方式

    MyProxy=theObject  // 对象

    2.6.1 分布式部署

    在部署IceGrid分布式服务时,需要启动注册表服务(icegridregistry),并配置注册表服务地址端口、通信协议和注册信息保存的目录地址(ICE的注册信息保存为BerkeleyDB的数据库文件):

    IceGrid.Registry.Client.Endpoints=tcp-p 4061

    IceGrid.Registry.Data=/opt/ripper/registry

     

    在服务器节点中和客户端都需要配置注册表服务的地址端口和通信协议:

    Ice.Default.Locator=IceGrid/Locator:tcp -h 172.0.0.1 -p4061


    参考这个位置http://blog.chaoskey.com/2008/04/24/10

    Ice::ObjectPrx proxy =
        communicator>stringToProxy("factory@EncoderAdapter");
    Ripper::MP3EncoderFactoryPrx factory =
        Ripper::MP3EncoderFactoryPrx::checkedCast(proxy);
    Ripper::MP3EncoderPrx encoder = factory>createEncoder();
    注意:客户端使用一个MP3EncoderFactory对象的间接代理。这个字符串代理从字面上来看,是"标识为EncoderAdapter的对象适配器中的一个标识为factory的对象". 这个编码服务器创建这个对象适配器,并确保对象适配器使用此标识符。由于每个对象适配器被唯一标识,注册器(Registry)可以很容易确定的服务器创造了适配器和返回一个适当的Endpoint给客户端.
    这个客户端调用 checkedCast 是在这个factory对象上的第一个远程调用,因此,这个定位请求在这个调用过程中被执行。随后调用 createEncoder 是直接发送给服务器而没有IceGrid的进一步参与.


  • 相关阅读:
    单例模式中的懒汉式以及线程安全性问题
    单例模式中的饿汉模式
    自我管理的8个好习惯
    从java字节码角度看线程安全性问题
    工作上的建议
    从线程的优先级看饥饿问题
    多线程存在哪些风险
    DirectX SDK (June 2010)安装错误S1023,解决方法
    Microsoft DirectX SDK 2010 版本下载
    如果程序集是从 Web 上下载的,即使它存储于本地计算机,Windows 也会将其标记为 Web 文件,http://go.microsoft.com/fwlink/?LinkId=179545
  • 原文地址:https://www.cnblogs.com/catkins/p/5270621.html
Copyright © 2011-2022 走看看