Java部署IceGrid服务实例

一、概念

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 进入图形界面,登录

posted @ 2017-08-07 16:19  盼望镜  阅读(861)  评论(0编辑  收藏  举报