ZeroC Ice IceBox使用
IceBox介绍
IceBox就像一个Tomcat,我们只要写N个Ice服务代码,用一个装配文件定义需要加载的服务列表、服务器的启动参数、启动次序等必要信息,然后启动IceBox,我们的应用系统就能够正常运行了。IceBox采用的是UNIX上通用的方式-属性文件的方式,其可能的原因的可以省去复杂的XML解析和相关的lib库,并能快速加载和启动程序。
IceBox使用
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
public class MyServiceImpl extends _MyServiceDisp implements Service { private static final long serialVersionUID = 7114601588161119171L; private Ice.ObjectAdapter _adapter; @Override public String hello(Current __current) { return "Hello Jerome"; } @Override public void start(String name, Communicator communicator, String[] args) { _adapter = communicator.createObjectAdapter(name); _adapter.add(this, communicator.stringToIdentity(name)); // 创建servant, _adapter.activate(); System.out.println("log:" + name + "is started!"); } @Override public void stop() { System.out.println("log:" + this._adapter.getName() + "is stoped!"); // 销毁adapter _adapter.destroy(); } } |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#service propertiesIceBox.InstanceName=MyAppIceBox 1IceBox.InheritProperties=1#所有服务初始化完成之后打印 xxx readyIceBox.PrintServicesReady=MyAppIceBox 1#IceBox.serviceManager.Endpoints=tcp -p 9999 -h localhost#performance propertiesIceBox.ThreadPool.Server.Size=4IceBox.ThreadPool.Server.SizeMax=100IceBox.ThreadPool.Server.SizeWarn=40IceBox.ThreadPool.Client.Size=4IceBox.ThreadPool.Client.SizeMax=100IceBox.ThreadPool.Client.SizeWarn=40#for system strongerIce.ACM.Client=300Ice.ACM.Server=300#log and trace#Ice.LogFile=iceserver.logIce.PrintStackTraces=1Ice.Trace.Retry=2Ice.Trace.Network=2Ice.Trace.ThreadPool=1Ice.Warn.Connections=1Ice.Warn.Dispatch=1Ice.Warn.Endpoints=1#service define begin#IceBox.Service.name=entry_point [--key=value] [args]#name定义service的名字,作为start方法的name的参数,必须是唯一的#entry_point是上面MyServie的完整类名#[--key=value]:被作为property属性,用于构建该服务的communicator,#用来更加精确的控制每个Ice服务的性能调优,这里也可以使用--Ice.Config=xxx.cfg的方式从具体的配置文件中加载参数。#另外,也可以用IceBox.InheriProperties=1的属性让所以Ice服务实例都使用IceBox的配置属性#[args]作为传入start方法的参数,作为服务启动初始化参数IceBox.Service.MyService=service.MyServiceImpl prop1=1 prop2=2 prop3=3#IceBox.Service.SMSService=com.SMSServiceI2MyService.Endpoints=tcp -p 10001 -h localhost#OnlineBook.Endpoints=tcp -p 10000 -h localhost#service end#service load order#配置多个服务的先后顺序IceBox.LoadOrder=MyServiceIceBox.UseSharedCommunicator.MyService=1IceBox.UseSharedCommunicator.SMSService=1 |
参考
资料
参考
资料
ZeroC Ice IceBox使用的更多相关文章
- ZeroC Ice 暂记
摘自: http://weibo.com/p/1001603869896789339575 原文地址: http://www.oschina.net/question/865233_242146 吴治 ...
- ZeroC Ice IceGrid Node和IceGrid
IceGrid Node介绍 绝大多数分布式系统都有一个共同特点,即分布在各个主机上的节点进程并不是完全独立的,而是彼此之间有相互联系和通信的.集群对集群中的节点有一些控制指令,如部署.启停或者调整某 ...
- ZeroC Ice Ice Registry实现负载均衡
Registry介绍 对于多个IceBox集群该怎么负载均衡?以服务注册表Registry为依托的Service Locator组件,以及依赖其而诞生的强大的分分布式框架-IceGri ...
- Zeroc Ice 发布订阅者之demo Icestorm之clock
刚刚在服务端(192.168.0.113)和客户端跑通(192.168.0.188),在这里记录,作为备忘. 第一步:读readme,先用vs2010生成subscriber.exe和publishe ...
- zeroc ice log4net 多进程log文件问题
使用zeroc ice 中的icebox 的时候多服务会有多个服务实例,每个实例都要写日志文件,所以要配置多个日志文件区分开来, 类似这样 orderservice_1_20160101.log ...
- ZeroC Ice启用SSL通讯的配置
Zeroc ICE ( Internet Communications Engine )中间件号称标准统一,开源,跨平台,跨语言,分布式,安全,服务透明,负载均衡,面向对象,性能优越,防火墙穿透,通讯 ...
- ZEROC ICE 跨平台间程序调用 java版
前言: 本来建博客是为了和大家分享一些前端的开发经验和心得呢,但是阴差阳错,第一篇技术博客确实关于跨平台,跨语言服务端调用的解决方案---ZEROC ICE. 最近一个项目涉及到java.python ...
- Zeroc Ice Slice语言使用 HelloWorld
Slice介绍 为了开发多语言支持的RPC服务,需要一种中立的新语言来定义这个服务接口,以便各个编程语言能够准确无误地理解和翻译接口,为此Ice设计了Slice语言.Ice开发的第一步 ...
- Zeroc Ice原理介绍
Ice介绍 Ice(Internet Communications Engine)是ZeroC公司的杰作,继承了CORBA的血统,是新一代的面向对象的分布式系统中间件.Ice是RPC通 ...
随机推荐
- 剑指Offer——完美+今日头条笔试题+知识点总结
剑指Offer--完美+今日头条笔试题+知识点总结 情景回顾 时间:2016.9.28 16:00-18:00 19:00-21:00 地点:山东省网络环境智能计算技术重点实验室 事件:完美世界笔试 ...
- Android必知必会-带列表的地图POI周边搜索
如果移动端访问不佳,请尝试–> Github版 2016-08-22 更新 注意:在 Activity 代码中的onPoiSearched(PoiResult result, int rCode ...
- ERP各个模块的缩写
财务系统模块: Oracle 总帐管理(GL) Oracle 应付帐管理(AP) Oracle 固定资产管理(FA) Oracle 应收帐管理(AR) Oracle 现金管理(CE) Oracle 项 ...
- Dynamics CRM2015 非基础语言环境下产品无法新建的问题
该现象出现在2015版本上,之前从没注意过这个问题不知道以前的版本是否存在. 我的安装包的基础语言是中文,第一张图有添加产品的按钮,切换到英文环境下后就没有了,一开始以为是系统做了隐藏处理,但用工具查 ...
- 1082. Read Number in Chinese (25)
题目如下: Given an integer with no more than 9 digits, you are supposed to read it in the traditional Ch ...
- Cocos2Dv3.4在AppDelegate中不返回的情况及解决
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们通常想在app启动的早期做一些事情,可能放在AppDeleg ...
- (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 通用的星星类已经完成了,下面我们来实现具体的变长和缩短道具. 变 ...
- 【一天一道LeetCode】#242. Valid Anagram
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given t ...
- 最简单的基于FFmpeg的视频编码器-更新版(YUV编码为HEVC(H.265))
===================================================== 最简单的基于FFmpeg的视频编码器文章列表: 最简单的基于FFMPEG的视频编码器(YUV ...
- STL:map/multimap用法详解
map/multimap 使用map/multimap之前要加入头文件#include<map>,map和multimap将key/value当作元素,进行管理.它们可根据key的排序准则 ...