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。
- 浏览: 1982776 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 570Java9 发布于 2017 年 9 月 21 日 。作为 ... -
架构制图:工具与方法论
2021-07-18 20:08 1088架构制图:工具与方法论 前言 “架构制图”这词乍 ... -
性能优化
2021-07-18 19:56 1013性能问题和Bug不同,后 ... -
【冬察冬见】FFmpeg系列学习笔记
2021-03-16 18:32 768【冬察冬见】FFmpeg系列 ... -
有关创新的一些思考
2021-03-04 16:41 561引子 创造力是人类最变通的工具,创造机会 ... -
浅谈面试官的培养
2021-03-04 16:38 526技术面试是一个工程师成长到一定阶段后必然要承担的一项工作,优 ... -
冬察冬见·全视角再议晋升
2021-03-02 17:48 487冬察冬见·全视角再议晋升 【前言】 又是一年春来 ... -
冬察冬见·晋升-晋升的那些事儿1
2021-03-04 11:34 23002020.08.20 集团技术通道各个子通道通过直播向所有 ... -
物联网MQTT实战
2020-11-04 16:08 7740、MQTT服务器选型 比较流行的开源 MQTT ... -
大小公司都适用的架构选型工具箱(涵盖上百个组件)
2020-10-17 21:20 436本篇内容涵盖14个方面,涉及上百个框架和工具。会有你喜 ... -
elasticsearch使用踩坑
2020-06-17 21:20 509es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊? ... -
【冬察冬见】读书日话高效读书
2020-04-23 10:47 404【冬察冬见】读书日话 ... -
【冬察冬见·荐书】4·23世界读书日 80本书单推荐承包你一年的书单
2020-04-22 18:52 439前言 笔者平均每年保持90-100本书的学习进度,09年 ... -
快速上手 AB Test
2020-01-14 10:05 461什么是 A/B Testing? 关于 A/B 有很多层 ... -
优雅的微服务架构下的鉴权
2020-01-10 17:57 1386从单体应用架构到分布式应用架构再到微服务架构,应用的安全访问 ... -
知识图谱的构建
2020-01-07 20:57 1045随着互联网业务的发展,产生了大量的数据,数据经过分析会推动业 ... -
宜信微服务架构落地及其演进
2020-01-06 09:46 619一、应用服务架构演进及微服务架构介绍 1.1 应用架构的 ... -
MySQL性能优化神技
2019-10-27 14:43 632MySQL 应用优化。包括数据类型,数据表查询/修改,索引和 ... -
REST协议解密(原创)
2019-10-14 10:32 748REST协议解密 REST 全称是什么?RE ... -
大型互联网公司分布式ID方案总结
2019-09-16 19:44 520ID是数据的唯一标识,传统的做法是利用UUID和数据库 ...
相关推荐
### IceGrid应用配置手册知识点详解 #### 概述 **配置目标:** 本文档旨在指导用户如何使用IceGrid服务进行有效的应用配置。IceGrid作为Ice中间件的重要组成部分,提供了多种功能,包括但不限于: 1. **分布式...
这里我们关注的是“将研发文档中的01 项目部署到IceGrid中”,这涉及到两个主要知识点:IceGrid和C# ICE。 首先,让我们来了解IceGrid。IceGrid是一个强大的分布式系统管理框架,由ZeroC公司开发,它提供了服务注册...
### IceGrid配置手册知识点 #### 一、IceGrid配置概览与目标 **知识点1:IceGrid服务的应用目的** - **分布式部署**:允许服务在多个服务器之间进行部署,提高系统的扩展性和可用性。 - **按需激活**:根据实际...
读书笔记:ZeroC IceGrid微服务框架实践小贷款系统报文推送上报服务
例如,在C:\Ice-3.3.0-VC90\demo\IceGrid\simple目录下,配置文件用于定义服务的启动方式和参数。Java应用的配置文件指定执行程序为`java`,并传递服务程序如`Server.class`作为参数。而`Config.grid`配置文件包含...
根据提供的文档信息,我们可以深入探讨其中的关键知识点,主要包括 ICE 的概览、架构和服务,以及如何通过 ICE 进行分布式程序设计等内容。 ### 冰 (ICE) 概览 #### 1.1 引言 ICE (Internet Communications ...
ZeroC ICE集群搭建 ICE安装目录: /home/apps/cpplibs...通常会存在多台机器,每台机器上面启动一个icegridnode, 文件node.id指定了icegridnode的Name,一般文件内容为hostname(ctrl.sh会取hostname来操作当前文件夹下的
本文提出的基于Zookeeper的IceGrid服务高可用改进模型,目的是为了克服原有IceGrid服务在主节点不可用时需要手动切换的缺陷。通过Zookeeper的选举机制,当主节点不可访问时,可以在从节点中自动选举出一个新的主节点...
1. **IceGrid应用配置手册.docx**:这是关于如何配置和管理IceGrid的详细指南。IceGrid是Ice提供的一个集群管理工具,它允许用户部署、监控和管理运行在分布式环境中的Ice应用。通过IceGrid,可以轻松地进行服务注册...
Icegrdadmin是一个用于管理IceGrid的命令行工具,它提供了丰富的功能,允许用户通过命令行界面进行诸如应用管理、节点管理、服务管理和接口管理等一系列操作。Ice是ZeroC公司开发的一个高性能、轻量级的分布式对象...
通过ICEGrid,开发者可以实现服务的自动部署、监控和扩展,这对于大型分布式系统的运维至关重要。 **ICEBox** ICEBox是ICE的一个轻量级容器,用于运行和管理ICE服务。它简化了服务的启动、停止和监控过程,允许...
本文主要介绍了四种常用的微服务架构方案,包括ZeroC IceGrid、Spring Cloud、基于消息队列以及Docker Swarm。 1. ZeroC IceGrid微服务架构 ZeroC IceGrid是一个基于RPC(远程过程调用)框架构建的微服务架构,具有...
该架构使用了ICE的多个组件,例如IceStorm(一个发布/订阅的消息系统),IceGrid(用于配置和部署分布式应用的服务)以及Slice(一种用于定义ICE接口和类型的语言)等。 分布式系统的概念是指将计算任务或数据分散...
《ZeroC Ice权威指南》是业界第一本关于Ice这个知名开源分布式RPC中间件的纸质书籍,全书内容涵盖了分布式系统架构概述、RPC原理、Ice基础源码研读、高级进阶、多语言调用、性能调优、SSL安全调用、IceGrid运维与...
Ice的核心组件包括Ice运行时环境、Ice编译器(Slice2Java/Slice2Py/Slice2Cpp)、Ice服务(例如IceGrid、IceStorm等)。其中,Ice运行时环境是应用程序的核心部分,它负责处理网络通信和对象定位等底层任务;Ice...
• 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提供了诸如IceGrid、IceBox和IceStorm等服务,其中IceGrid用于服务定位,IceBox协调不同应用组件,而IceStorm则提供订阅服务。 ICE技术的特点包括: 1. 跨平台部署能力:它支持多种编程语言,如JAVA、C++,以及...