一、概念
slice: ice提供了自己的接口定义语言。用来定义rpc(远程过程调用协议)的接口和对象。
ice.object: rpc调用的接口必须继承自ice.Object
servant:ice.Object的实例化对象叫做servant(服务单元),rpc调用的就是servant对象,因此servant需要线程安全
endpoints:客户端rpc调用servant的地址例如:default -h 192.168.0.1 -p 10000
icebox:servant的容器,负责servant的装配,期待参数,启动顺序等
icenode:icebox的容器,负责Icebox的装载和启停,采集主机负载信息,执行控制器IceGrid Admin的指令
registry:注册中心,负责管理icenode的注册,负责和发布。
二、环境变量配置
安装ice-3.4.1,jdk1.8.0_60 并配置环境变量
三、代码
1.定义slice文件,通过slice2java生动对应的java文件
Message.ice
[["java:package:com.promotion.ice"]]
module book{
struct Message {
string name;
int type;
bool valid;
double price;
string content;
};
interface OnlineBook{
Message bookTick(Message msg);
};
};
SMSService.ice
[["java:package:com.promotion.ice"]]
module message {
interface SMSService{
void sendSMs(string msg);
};
};
2. 服务端:OnlineBookI2 实现OnlineBook 的接口和IceBox的Service接口
SMSServiceI2 实现SMSService接口和IceBox的Service接口
客户端代码
四、配置文件
registry配置文件一个:registry.cfg
node配置文件n个:node1.cfg,
应用描述文件app.lication.xml
配置文件详情:
registry.cfg
node1.cfg
application.xml
五、启动
步骤:
1.启动registry
进入registry.cfg文件夹下执行 icegridregistry --Ice.Config=registry.cfg 命令
2. 启动node
执行 icegridnode --Ice.Config=node1.cfg 命令
3. 部署应用描述文件
执行 icegridadmin -u test -p test --Ice.Default.Locator="IceGrid/Locator:tcp -h 10.32.141.30 -p 4061
登录后执行 application add application.xml 成功后执行server list
启动相应服务server start server1
4. 图形界面管理工具访问
双击ice安装目录下的bin/IceGridGUI.jar 进入图形界面,登录