+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
【IceGrid负载均衡部署步骤】
1、环境
主机1:IP=192.168.0.239,上面部署注册表服务器registry和节点node1,registry和node1运行在同一进程中;
主机2:IP=192.168.0.25,上面部署节点node2;
其中每个节点中包含一个服务程序,服务程序均在节点启动时启动。
2、主机1配置
(1)服务程序部署XML:app_rep.xml,内容如下
<icegrid>
<application name="Simple"> #分布式系统名称
<server-template id="SimpleServer"> #服务器模板
<parameter name="index"/> #自定义参数index
<server id="SimpleServer-${index}" exe="./server" activation="always"> #服务器id,程序路径,启动方式
<adapter name="Hello" endpoints="tcp" replica-group="ReplicatedHelloAdapter"/> #对象适配器配置
<property name="Identity" value="hello"/> #服务器中自定义属性Identity
</server>
</server-template>
<replica-group id="ReplicatedHelloAdapter">
<load-balancing type="round-robin"/> #负载均衡配置,使用轮询调度方式(最近最少使用算法)
<object identity="hello" type="::Demo::Hello"/> #该replica-group中的对象,客户端根据该对象标识或类型定位请求
</replica-group>
<node name="node1"> #节点1,对应于服务程序实例SimpleServer-1
<server-instance template="SimpleServer" index="1"/>
</node>
<node name="node2"> #节点2,对应于服务程序实例SimpleServer-2
<server-instance template="SimpleServer" index="2"/>
</node>
</application>
</icegrid>
--------------------------------------------------------
(2)registry和node1的配置文件config.grid,内容如下
#
# The IceGrid instance name.
#
IceGrid.InstanceName=DemoIceGrid
#
# The IceGrid locator proxy.
#
Ice.Default.Locator=DemoIceGrid/Locator:default -p 12345 #注册表服务器的端点信息
#
# IceGrid registry configuration.
#
IceGrid.Registry.Client.Endpoints=default -p 12345
IceGrid.Registry.Server.Endpoints=default
IceGrid.Registry.Internal.Endpoints=default
IceGrid.Registry.Data=db/registry #注册表服务器使用到的目录
IceGrid.Registry.PermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
IceGrid.Registry.SSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier
IceGrid.Registry.AdminSSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier
#
# IceGrid SQL configuration if using SQL database.
#
#Ice.Plugin.DB=IceGridSqlDB:createSqlDB
#IceGrid.SQL.DatabaseType=QSQLITE
#
# IceGrid node configuration.
#
IceGrid.Node.Name=node1 #节点1,对应于app_rep.xml中node1
IceGrid.Node.Endpoints=default
IceGrid.Node.Data=db/node #节点1用到的目录
IceGrid.Node.CollocateRegistry=1
#IceGrid.Node.Output=db #将节点上的服务程序的标准输出重定向到目录db下,会自动生成输出文件
#IceGrid.Node.RedirectErrToOut=1 #将节点上的服务程序的标准错误重定向到标准输出
#
# Trace properties.
#
IceGrid.Node.Trace.Activator=1
#IceGrid.Node.Trace.Adapter=2
#IceGrid.Node.Trace.Server=3
#
# Dummy username and password for icegridadmin.
#
IceGridAdmin.Username=foo
IceGridAdmin.Password=bar
----------------------------------------------------------------
3、主机2配置
主机2上只需要配置node2的配置文件config.node即可,内容如下
#
# The IceGrid locator proxy.
#
Ice.Default.Locator=DemoIceGrid/Locator:default -h 192.168.0.239 -p 12345 #注册表服务器的端点信息
#
# IceGrid node configuration.
#
IceGrid.Node.Name=node2 #节点2,对应于app_rep.xml中node2
IceGrid.Node.Endpoints=default
IceGrid.Node.Data=db/node2
IceGrid.Node.Output=db/node2 #将节点上的服务程序的标准输出重定向到db/node2目录下,会自动生成输出文件
IceGrid.Node.RedirectErrToOut=1
#
# Trace properties.
#
IceGrid.Node.Trace.Activator=1
---------------------------------------------------------------
4、客户端配置
配置文件:config.client,内容如下:
#
# The IceGrid locator proxy.
#
Ice.Default.Locator=DemoIceGrid/Locator:default -h 192.168.0.239 -p 12345 #只需有注册表服务器的端点信息即可
5、启动服务程序
(1)主机1上先启动注册表和节点1,执行:icegridnode --Ice.Config=config.grid
(2)主机1上部署服务(只需部署一次,除非修改过app_rep.xml),执行:
icegridadmin --Ice.Config=config.grid -e "application add app_rep.xml"
若要重新部署,执行:icegridadmin --Ice.Config=config.grid -e "application update app_rep.xml"
(3)主机2上启动节点2,执行:icegridnode --Ice.Config=config.node,此时因为服务配置为随节点启动,所以服务自动激活;
6、打开客户端
执行./client,客户端自动连接注册表服务器,接下来便可向服务器发起访问请求。
7、关于程序编码调整
IceGrid的使用会导致客户端、服务器的配置文件发生变动,而代码也只需做极少的改动。主要是客户端可能会由直接代理换成间接代理。
使用了IceGrid定位服务功能后,客户端无需知道服务器上对象适配器端点,只需要对象标识或对象适配器标识或replica-group标识
便可以访问到服务器上的对象。
服务器端可以在xml中配置对象标识,客户端可以从配置文件中读取相应对象标识,这样对象标识就不需要硬编码在程序中了。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 浏览: 227568 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (241)
- js (49)
- java (38)
- javamail (2)
- svn (2)
- eclipse (6)
- java jxl (1)
- tomcat (5)
- oracle (44)
- jquery (4)
- sqlserver (2)
- cookie (1)
- imp/exp (3)
- rman (3)
- oracle备份 (5)
- solr (9)
- Lucene (2)
- sqlserver2005 (2)
- jdbc (1)
- Ice (15)
- jdk1.7 (1)
- tomcat7 (1)
- java设置环境变量 (1)
- Spring (1)
- dos (1)
- mysql (1)
- ps (1)
- 谷歌浏览器打开微信网页 (1)
- css (1)
- des (2)
- linux (2)
- dbf (1)
- jar包下载(jar、doc、source) (1)
- debug (1)
- kscenter (0)
- mt (1)
- neea (0)
- t.cn (1)
- 短链接 (1)
- rh-java把老表新建并导入到新表中 (1)
- oracle数据迁移ETL工具 (3)
- kettle (5)
- DNS (1)
- HttpClient (4)
- nginx (5)
- redis (8)
- jedis (2)
- nodejs (8)
- exception (1)
- AES (1)
- gzip (1)
- resin (1)
- 图像 (1)
- 安全评估 (1)
- word (1)
- MongoDB (0)
最新评论
发表评论
-
ICE应用实例(01):
2015-04-24 12:36 917本文接上篇博文《ICE通信框架》如果你还没有接触过ice请 ... -
Ice服务详解及应用_IceGrid(01)IceGrid应用 配置手册
2015-04-24 10:44 13321. 概述 1.1 配置目标 本文档是描述Ice中间 ... -
Ice服务详解及应用_IceGrid(01)建立简单的IceGrid
2015-04-24 10:31 930在这里,我将建立一个拥有一个registry和两个node ... -
ICE简单介绍及使用示例
2015-04-23 15:09 6251、ICE是什么? ICE是ZE ... -
ICE笔记(06):简单文件系统的设计、实现
2009-11-29 15:13 784【 colorado 】 本文 ... -
ICE笔记(07):Ice属性和配置
2009-12-01 07:45 653【 colorado 】 按:摘编自DPWI第30 ... -
ICE笔记(08):C++线程与并发
2009-12-02 19:26 637【 colorado 】 Ice 提供了一个简单的线程抽象 ... -
ICE Chat Demo 实例分析
2011-01-05 20:02 668【 colorado 】 ICE Chat Dem ... -
ICEGrid 部署图
2011-02-22 09:21 420ICEGrid 部署图 【 colorado ... -
ICE学习笔记(05):Slice规范
2015-04-23 10:12 927按语:本文是DPWI第4章的笔记。在3.3.1版的1~9章中 ... -
ICE笔记(04):Ice多语言互通互联
2015-04-23 09:59 586Ice的服务端可以采用C++/Java/Python/C# ... -
ICE笔记(03):ICE介绍 中间件概念与Ice综述
2015-04-23 09:18 1096Ice-Internet Communications E ... -
ICE笔记(02):简单的ICE通信应用-Hello World
2015-04-22 15:02 1196简单的ICE通信应用-Hello World ... -
ICE笔记(01):Ice安装使用方法----windows
2015-04-22 14:49 21261 下载、 ...
相关推荐
ICE 介绍文档,类似CORBA的接口规范,但非常容易开发
matlab ice.fig 函数源代码
将研发文档中的01 项目部署到IceGrid中,集群部署支持负载均衡。资源中包含视频教程讲解,以及文档和相关的软件包
通过ICE接口调用mysql数据库实例,ICE入门最佳
这是一个开发框架,适合新手练习,框架性能优秀,可以提高开发效率;
冈萨雷斯数字图像处理matlab版源码ice源码
linux环境下ICE平台的搭建方法,ICE开发必备
ICE内核在LINUX环境下配置与编译,ICE版本为3.3.0,适合ICE环境搭配与ICE内核修改
ICE中间件技术的详细教程,包含ice的开发基础,服务协议等,是初学ICE常用的工具书
自制Multi-ICE仿真器资料,比较完整.
基于ICE仿真器的多核系统软件调试下载.pdf
arm开发的一些小实验,开发工具ads1.2,multi-ice,实验开发板 s3c2410
multi-ice源代码(来自别的网站)
fy_iceworld_2002.zip
ice的客户端c++程序代码,有一定价值
Soft-ice 4.0 for Windows NT_2000 的XP补丁_SI405XP
ICE并发操作与线程相关内容,适合ICE学习
发动机万有特性曲线的matlab绘图实现方法,具备一定参考价值。。。
1、负载均衡、多进程媒体服务器; 2、多会议室、多人参与; 3、用到的协议TCP/UDP/ICE/DTLS/RTP/RTCP等协议; 4、支持IPv4、IPv6; 5、高效率libuv异步网络库; 6、支持录制,或者加载媒体文件分享给伙伴(未完成)...
权威指南在国内细致的描述了ICE框架的使用