IceGrid Node介绍


绝大多数分布式系统都有一个共同特点,即分布在各个主机上的节点进程并不是完全独立的,而是彼此之间有相互联系和通信的。集群对集群中的节点有一些控制指令,如部署、启停或者调整某些参数等。IceGrid为了达到这个目标,也设计了一个特殊的节点进程-IceGrid Node,它的目标有以下几个:

        1. 负责IceBox的装载和启停;
        2. 采集主机的负载信息;
        3. 执行控制器IceGrid Admin的指令;

        简单的说,IceGrid Node就好像一个容器,启动以后,会安装预先定义的配置文件,加载其中的IceBox,并根据要求启动或停止其中的一个或多个IceBox进程。同时定期采集底层主机的负载信息(CPU Load),这些信息用于基于主机负载的负载均衡算法调度,它同时把自己的控制端口注册到Registry中,IceGrid Admin控制器就可以对所有的IceGrid
Node集中进行远程管理,下达指令。

        Registry、IceGrid Node、IceBox之间的关系
         

        每个IceGrid Node都有一个唯一的名字,配置文件如下:node1.cfg
1
2
3
4
5
6
7
8
9
10
11
#指定主注册节点的位置
Ice.Default.Locator=IceGrid/Locator:tcp -h localhost -p 4061
#设置节点1相关数据的存储目录
IceGrid.Node.Data=D:\Java\workspace\workspace-temp\test_iceBox_registry_iceGridNode\node\data
#指定节点1用于监听客户端连接的端口号
IceGrid.Node.Endpoints=tcp -p 5062  
#指定节点1的名称        
IceGrid.Node.Name=node1 
Ice.StdErr=D:\Java\workspace\workspace-temp\test_iceBox_registry_iceGridNode\node\node.stderr.log  
#指定错误日志文件
Ice.StdOut=D:\Java\workspace\workspace-temp\test_iceBox_registry_iceGridNode\node\node.stdout.log

注意:目录要先创建好

        启动:icegridnode --Ice.Config=src/node1.cfg

IceGrid介绍


        其实就是一个Registry进程+N个IceGrid Node进程。为了方便管理和运维,又增加下面几个程序包。
        1. icegridadmin:用来管理IceGrid的命令行工具,部署或升级IceGrid,查看Gnid节点状态,启停Node中的Server实例等。
        2. IceGridGUI : 是一个 java swing application,作用等同于 icegridadmin , 不过他有图形界面,适合在windows下远程管理IceGrid。
        3. icepatch:为一组命令行工具,分Server端与Client端,是替代rsyn或FTP的好工具,用来在网格中分发和同步IceGrid应用中用户开发的Ice服务的二进制代码,方便运维过程中的服务版本升级和扩容等工作。

        为了学习icegridadmin命令,我们分别启动Registry和Node:分别开三个命令名窗口
        icegridregistry --Ice.Config=src/registry.cfg
        icegridnode --Ice.Config=src/node1.cfg
        icegridadmin -u test -p test --Ice.Default.Locator="IceGrid/Locator:tcp -h localhost -p 4061"
        进入就可以进行各种操作了,这里对这块就不进行详细介绍了,有兴趣的同学可以自己去研究。


参考
         《ZeroC Ice 权威指南》3.4


资料
        源码:链接:http://pan.baidu.com/s/1bol23FL 密码:2jf3

ZeroC Ice IceGrid Node和IceGrid的更多相关文章

  1. Zeroc Ice 负载均衡之Icegrid simple

    最近学习Icestorm的replicated例子,在本地计算机上面跑通了,但在两台机器上(一台服务器192.168.0.113,一台客户端192.168.0.188),怎么都跑不通.上网求助,大家给 ...

  2. ZeroC Ice Ice Registry实现负载均衡

    Registry介绍         对于多个IceBox集群该怎么负载均衡?以服务注册表Registry为依托的Service Locator组件,以及依赖其而诞生的强大的分分布式框架-IceGri ...

  3. 用Python开发Zeroc Ice应用

    Zeroc Ice简介   Zeroc ICE(Internet Communications Engine ,互联网通信引擎)是目前功能比较强大和完善的RPC框架,支持跨平台.跨语言调用.它非常灵活 ...

  4. ZeroC Ice 暂记

    摘自: http://weibo.com/p/1001603869896789339575 原文地址: http://www.oschina.net/question/865233_242146 吴治 ...

  5. Ubuntu16.04下ZeroC ICE的安装与使用示例(Qt C++ 和 Java)

    项目需求:在Ubuntu16.04系统下安装并使用ICEgrid 3.7进行c++和Java Springboot开发环境的通信,下面逐一介绍各个步骤的详解: 一:Ice Lib的安装 参考官网地址: ...

  6. Zeroc Ice 发布订阅者之demo Icestorm之clock

    刚刚在服务端(192.168.0.113)和客户端跑通(192.168.0.188),在这里记录,作为备忘. 第一步:读readme,先用vs2010生成subscriber.exe和publishe ...

  7. ZeroC Ice启用SSL通讯的配置

    Zeroc ICE ( Internet Communications Engine )中间件号称标准统一,开源,跨平台,跨语言,分布式,安全,服务透明,负载均衡,面向对象,性能优越,防火墙穿透,通讯 ...

  8. ZEROC ICE 跨平台间程序调用 java版

    前言: 本来建博客是为了和大家分享一些前端的开发经验和心得呢,但是阴差阳错,第一篇技术博客确实关于跨平台,跨语言服务端调用的解决方案---ZEROC ICE. 最近一个项目涉及到java.python ...

  9. Zeroc Ice Slice语言使用 HelloWorld

    Slice介绍         为了开发多语言支持的RPC服务,需要一种中立的新语言来定义这个服务接口,以便各个编程语言能够准确无误地理解和翻译接口,为此Ice设计了Slice语言.Ice开发的第一步 ...

随机推荐

  1. FFmpeg的HEVC解码器源代码简单分析:解码器主干部分

    ===================================================== HEVC源代码分析文章列表: [解码 -libavcodec HEVC 解码器] FFmpe ...

  2. Universal-Image-Loader 图片异步加载类库的使用

    这个图片异步加载并缓存的类已经被很多开发者所使用,是最常用的几个开源库之一,主流的应用,随便反编译几个火的项目,都可以见到它的身影. 可是有的人并不知道如何去使用这库如何进行配置,网上查到的信息对于刚 ...

  3. 自己动手实现一个Android Studio插件

    在使用Android Studio开发的时候,大部分人都会使用一些插件来提高开发效率,例如我们所熟知的butternife,selector,,GsonFormat等,这些分别从不同的原理来帮助我们提 ...

  4. CUDA5.5 的环境变量设置

    为了方便,我写了这个文件用于设置cuda5.5的环境变量. 其中有些环境变量可能用不到,大家根据需要修改就是了. export CUDA_HOME=/usr/local/cuda-5.5 export ...

  5. mysql数据库连接池使用(二)实现自己的数据库连接池

    上一个章节,我们讲了xml文件的解析框架XMLConfiguration的使用,不懂的可以参考 Apache Commons Configuration读取xml配置具体使用. 这个章节主要实现自己的 ...

  6. 【unix网络编程第三版】阅读笔记(二):套接字编程简介

    unp第二章主要将了TCP和UDP的简介,这些在<TCP/IP详解>和<计算机网络>等书中有很多细致的讲解,可以参考本人的这篇博客[计算机网络 第五版]阅读笔记之五:运输层,这 ...

  7. Eclipse中查看没有源码的Class文件的方法

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/18798473 本文作者:sushengmiyan 我们在使用Eclipse的时候,经常 ...

  8. UNIX环境高级编程——信号

    一.信号生命周期 从信号发送到信号处理函数的执行完毕. 对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个重要的阶段,这三个阶段由四个重要事件来刻画:信号诞生:信号在进 ...

  9. 理解WebKit和Chromium: JavaScript引擎简介

    转载请注明原文地址:http://blog.csdn.net/milado_nju 1. 什么是JavaScript引擎 什么是JavaScript引擎?简单来讲,就是能够提供执行JavaScript ...

  10. 从websphere6.1迁移到weblogic10.3的问题总结

     系统采用war包的方式部署. 问题一: ####<2011-3-29 下午05时17分43秒 CST> <Info> <ServletContext-/MIS-be ...