1. IceGrid的优势:
a. Location Service
b. On-demand Server activation
按需启动,对于配置的节点(node)无需启动,在客户端向icegrid请求一个服务代理时,icegrid发现这个服务存在但没有被启动,会激活这个adapter所属的server或者让这个apapter向其注册。
c. Application distribution
IcePath2为你提供了各个分布服务器上的部署功能,能够帮你保持必要的程序和文件的同步。
d. Replication and load balance
IceGrid提供一种服务的多台服务器的服务组成一个逻辑上组,当客户端使用间接绑定的时候,可以获得他们任意一个的代理。Icegrid同时时监控着每一个服务器的系统负载,根据负载来给客户端分配代理。
e. Session & resource allocation
客户端可以建立一个session来独占某个对象或者代理甚至服务器。IceGrid会阻止其他的客户端使用这个分配的资源,知道客户端释放它。
f. 错误规避
当有多个节点时,ice在建立连接失败的情况下会多次尝试多个连接。
g. 动态查找
你可以在客户端通过查找的方式,查找多所有的代理端口信息,并由你决定使用那个代理。
h. 状态监测
IceGrid提供监控接口,你可以使用监控接口来整合你现有的监控系统。
i. 管理
iceGrid提供了命令行方式和图形化方式管理你的应用
j. 部署
你可以通过xml文件利用部署符来简单的部署你的系统。
2. IceGrid的应用程序结构。
IceGird的应用程序主要包括:registry(注册表服务器)和若干个节点。
registry里有一个数据库,他存储着对象和节点之间的关系信息。registry不需要对系统不会带来多要负担,所以可以将registry和node同时部署在一个服务器上。
IceGrid的复制能力(replication)给我们的系统结构带来了很大的灵活性,这种复制能力是依赖于适配器(adapter)的。每个请求时registry来决定那个adapter将被使用,服务器就是多个适配器组合而成,但是icegrid要求每个服务器的名字必须是唯一的。
3. IceGrid应用中需要解释的几个名词:
a. Replica Group
一组对象适配器的集合。一个服务可以建立任意多个Replica Group,每个Group需要单一的名字。
在均衡时,就是根据group组中的成员来选择哪个成员提供服务。
b. Node
节点,分布的一组服务。
4. Config文件说明
a. registry配置说明
i. IceGrid.Registry.Client.Endpoints=tcp -p 4061
registry的连接端口信息,必须配置端口号。节点就是通过Ice.Default.Locator来的定义来确定与 registry连接的接口信息。
ii. IceGrid.Registry.AdminPermissionVerifer
这个属性控制着icegrid的管理权
iii. IceGrid.Registry.Data
Registry数据库的文件目录
iv. IceGrid.Registry.DynamicRegistration
设置一个非零值,定义是否允许服务器注册他们的对象适配器。默认情况下IceGrid不允许在没有icegrid部署符部署的情况下server注册他的regsitry。
b. 客户端配置
你需要在客户端配置Ice.Default.Locator,定义的端口信息要和resigstry的IceGird.Registry.Client.Endponits一致,让客户端知道registry的端口进行通信。在客户端也只需要知道这一个端口,因为客户端每次会像registry询问代理的端口地址,registry返回给客户端代理的地址后,客户端直接与代理连接了,并且在没有销毁的情况这个链接应该是个长连接。
c. 配置服务器端
服务端的配置这里省略了,因为后面的部署描述符里会配置服务端的信息,所有用部署描述符的方式不需要服务器端的配置文件。
5. 使用部署描述符部署
部署描述符,描述了我们整个应用上的节点信息。
<icegrid>
<application name="simple">
<node name="Node1">
<server id="HelloServer" exe="java" activation="on-demand">
<option>-jar</option>
<option>test.jar</option>
<adapter name="Hello" register-process="true">
<object identity="hello" type="::test:Hello" property="Identity"/>
</adapter>
</server>
</node>
</application>
</icegird>
a. Application
应用标签,name属性定义它的名字
b. Node
节点标签,他应该代表了一个物理上的节点,节点必须有唯一的名字。
c. Server
一个服务器(逻辑上的),更确切的说应该能够通过exe命令的启动的一个服务程序。exe就是启动这个服务的命令,这个命令不能是exe或者.sh执行文件(这点我搞了1天才明白,把我害苦了)。activation属性,是设置服务的启动方式,on-demand是按需启动,这样你只需只需要通过icegridnode 加载了node的配置文件,然后通过icegridadmin加载registry配置文件,并通过iceadmin管理工具部署了部署描述符,你的客户端就可以访问你设计的复杂的分布式应用,所有的服务会在需要时被启动。option标签是exe执行命令命令行的参数。这样的配置就相当与你使用java -jar test.jar启动。
d. Adapter
适配器的定义,这个name非常重要,你需要在整个应用中取唯一的名字(好象是),在客户端的时候就是通过StringToProxy("Hello")这个名字来通过registry查找这个适配器,并返回给你这个适配器的端口信息,你的prxoyHelper.checkCast(Ice.ObjectPrx)的时候,就直接和返回的端口信息的adapter建立了连接。Register-process属性定义了是否这个节点是否可以被icegrid关闭。
6. 启动你的icegrid应用
先加载节点信息:
icegridnode --Ice.Config=/opt/demo/config.properties
然后加载registry信息
Icegridadmin --Ice.Config=/opt/demo/config.properties
到了icegriadmin的命令行下添加你的部署描述符文件
Application add "/opt/demo/appliation.xml"
客户端和服务端程序都必须继承自Ice.Application。
- 浏览: 1925668 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
x593106671:
写的真不错
对研发团队里技术分享的一些思考 -
Ann-phei:
大神 您好~我是博文视点编辑安娜,可否加我微信或QQ 8030 ...
ElasticSearch的Java Api基本操作入门指南 -
feifeiwudi:
feifeiwudi 写道发现了一个 Elasticsearc ...
ElasticSearch的Java Api基本操作入门指南 -
feifeiwudi:
发现了一个 Elasticsearch 2.3.3 JAVA ...
ElasticSearch的Java Api基本操作入门指南 -
风火轮子:
基于大数据技术推荐系统算法案例实战教程网盘下载:https:/ ...
大数据/数据挖掘/推荐系统/机器学习相关资源
发表评论
-
万字总结Java 9~15新特性
2021-09-11 21:36 464Java9 发布于 2017 年 9 月 21 日 。作为 ... -
架构制图:工具与方法论
2021-07-18 20:08 1026架构制图:工具与方法论 前言 “架构制图”这词乍 ... -
性能优化
2021-07-18 19:56 940性能问题和Bug不同,后 ... -
【冬察冬见】FFmpeg系列学习笔记
2021-03-16 18:32 669【冬察冬见】FFmpeg系列 ... -
有关创新的一些思考
2021-03-04 16:41 503引子 创造力是人类最变通的工具,创造机会 ... -
浅谈面试官的培养
2021-03-04 16:38 471技术面试是一个工程师成长到一定阶段后必然要承担的一项工作,优 ... -
冬察冬见·全视角再议晋升
2021-03-02 17:48 433冬察冬见·全视角再议晋升 【前言】 又是一年春来 ... -
冬察冬见·晋升-晋升的那些事儿1
2021-03-04 11:34 22432020.08.20 集团技术通道各个子通道通过直播向所有 ... -
物联网MQTT实战
2020-11-04 16:08 6350、MQTT服务器选型 比较流行的开源 MQTT ... -
大小公司都适用的架构选型工具箱(涵盖上百个组件)
2020-10-17 21:20 379本篇内容涵盖14个方面,涉及上百个框架和工具。会有你喜 ... -
elasticsearch使用踩坑
2020-06-17 21:20 421es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊? ... -
【冬察冬见】读书日话高效读书
2020-04-23 10:47 349【冬察冬见】读书日话 ... -
【冬察冬见·荐书】4·23世界读书日 80本书单推荐承包你一年的书单
2020-04-22 18:52 390前言 笔者平均每年保持90-100本书的学习进度,09年 ... -
快速上手 AB Test
2020-01-14 10:05 419什么是 A/B Testing? 关于 A/B 有很多层 ... -
优雅的微服务架构下的鉴权
2020-01-10 17:57 1311从单体应用架构到分布式应用架构再到微服务架构,应用的安全访问 ... -
知识图谱的构建
2020-01-07 20:57 979随着互联网业务的发展,产生了大量的数据,数据经过分析会推动业 ... -
宜信微服务架构落地及其演进
2020-01-06 09:46 557一、应用服务架构演进及微服务架构介绍 1.1 应用架构的 ... -
MySQL性能优化神技
2019-10-27 14:43 591MySQL 应用优化。包括数据类型,数据表查询/修改,索引和 ... -
REST协议解密(原创)
2019-10-14 10:32 663REST协议解密 REST 全称是什么?RE ... -
大型互联网公司分布式ID方案总结
2019-09-16 19:44 473ID是数据的唯一标识,传统的做法是利用UUID和数据库 ...
相关推荐
IceGrid应用配置手册
将研发文档中的01 项目部署到IceGrid中,集群部署支持负载均衡。资源中包含视频教程讲解,以及文档和相关的软件包
IceGrid配置说明文档,说明了如何配置 IceGrid分布式架构
IceGrid配置中文手册, 完整描述各种IceGrid配置说明
ICE中文文档 十分清晰 学习ICE的必备手册 不包含gird部分
ZeroC ICE集群搭建 ICE安装目录: /home/apps/cpplibs...通常会存在多台机器,每台机器上面启动一个icegridnode, 文件node.id指定了icegridnode的Name,一般文件内容为hostname(ctrl.sh会取hostname来操作当前文件夹下的
《ZeroC Ice权威指南》是业界第一本关于Ice这个知名开源分布式RPC中间件的纸质书籍,全书内容涵盖了分布式系统架构概述、RPC原理、Ice基础源码研读、高级进阶、多语言调用、性能调优、SSL安全调用、IceGrid运维与...
• Part V, Ice Services, covers the services provided with Ice, such as IceGrid (a sophisticated deployment tool), Glacier2 (the Ice firewall solution), IceStorm (the Ice messaging service), and ...
Ice Grid 服务器微型架构。。。。
本文通过阅读ICE开发白皮书,总结了核心内容,并通过例子演示。
Ice英文版的详细讲解,可以让你很好的了解到Ice一切的工作
IceGridGUI控制台工具,直观关停、显示ice服务 提供工作效率
ICEGrid Glacier2 IcePatch2
著名的中间件Ice IceGrid 管理工具文档
ICE C# Demo 例子中有ICEGrid, ICEBox ,IceStorm等。
zeroc-icejs 用于 JavaScript 运行时的 Ice 安装 您可以使用npm或bower安装 Ice for JavaScript。 新产品经理 $ npm install zeroc-icejs --save ...var IceGrid = require ( 'zeroc-icejs' ) . Ice
《ZeroC Ice权威指南》是业界第一本关于Ice这个知名开源分布式RPC中间件的纸质书籍,全书内容涵盖了分布式系统架构概述、RPC原理、Ice基础源码研读、高级进阶、多语言调用、性能调优、SSL安全调用、IceGrid运维与...