当前位置: 首页 > 编程日记 > 正文

ICE BOX 配置,使用----第一篇

一 理论部分

(1) 为什么要使用icebox?

icebox server代替了通常的server.

icebox是为了方便集中管理多个ice服务而建立的。

它通过使用icebox服务器,把ice服务注册进去,从而建立联系。

所以它除了建立传统的ice服务器,ice客户端,主要是配置icebox服务器。


二 编写icebox配置文件

1 建立icebox服务器,主要是配置文件的编写

#file   icebox.config

//核心参数 

//进入点的指定。要把服务配置进 IceBox 服务器中,只需使用一个属性,IceBox.Service.name=entry_point [args]

//这个属性的用途有好几个:它定义服务的名字Hello,它向服务管理器提供服务进入点,它还定义用于服务的属性和参数。

//属性值的第一个参数用于指定进入点。对于 C++ 服务,其形式必须是library:symbol。跟在 entry_point 后面的任何参数都会被检查。如果某个参数的形式是
--name=value,它就会被解释为属性定义,将会出现在传给服务的 start操作的通信器的属性集中。这些参数将被移除,剩下的参数会放在 args 参数中传给 start 操作。

IceBox.Service.Hello=HelloService:create  --Ice.Trace.Network=1 hello there

Hello.Endpoints=tcp -p 10000



三 建立icebox服务  

编写IceBox 服务接口

要编写 IceBox 服务,需要实现某个 IceBox 服务接口。(以下示例为基类,在IceBox.h中实现)

module IceBox {
local interface ServiceBase {
void stop();
};
local interface Service extends ServiceBase {
void start(string name,
Ice::Communicator communicator,
Ice::StringSeq args)
throws FailureException;
};
};


1 建立ice应用服务

头文件:

#include <IceBox/IceBox.h>
#if defined(_WIN32)
#
define HELLO_API __declspec(dllexport)
#else
#
define HELLO_API /**/
#endif
class HELLO_API HelloServiceI : public IceBox::Service {
public:
virtual void start(const std::string &,
const Ice::CommunicatorPtr &,
const Ice::StringSeq &);
virtual void stop();
private:
Ice::ObjectAdapterPtr _adapter;
};

成员文件:
首先,我们包括了 IceBox 头文件,以使我们能从 IceBox::Service派生我们的实现。
其次,那些预处理器定义是必需的,因为在 Windows 上,这个服务驻留在一个 Dynamic Link Library (DLL) 中,因此我们需要输出这个类,让服
务管理器能适当地加载它。

cpp文件定义同样直截了当:
#include <Ice/Ice.h>
#include <HelloServiceI.h>
#include <HelloI.h>
using namespace std;
extern "C" {
HELLO_API IceBox::Service *
create(Ice::CommunicatorPtr communicator)
{
return new HelloServiceI;
}
}
void
HelloServiceI::start(
const string & name,
const Ice::CommunicatorPtr & communicator,
const Ice::StringSeq & args)
{
_adapter = communicator->createObjectAdapter(name);
Ice::ObjectPtr object = new HelloI(communicator);
_adapter->add(object, Ice::stringToIdentity("hello"));
_adapter->activate();
}
void
HelloServiceI::stop()
{
_adapter->deactivate();


四  启动 icebox 服务器

下面是用于我们的 C++ 服务例子的配置文件:
716
IceBox
IceBox.ServiceManager.Endpoints=tcp -p 10000
IceBox.Service.Hello=HelloService:create
Hello.Endpoints=tcp -p 10001
注意,我们为 Hello 服务创建的对象适配器定义了一个端点。
假定这些属性位于名为 config 的配置文件中,我们可以这样启动 C++
IceBox 服务器:
$ icebox --Ice.Config=config


参考;

 // IceBox 提供了一个管理实用程序ServiceManager 。可选参数。貌似不设置的话是默认的。

//定义IceBox 服务管理器接口的端点。以激活IceBox管理服务。服务管理器端点必须能被IceBox 管理工具访问到,以关闭IceBox 服务器。

IceBox.ServiceManager.Endpoints=tcp -p 9998

Ice.Admin.InstanceName=Box (定义IceBoxAdmin名称,默认是IceBox)
Ice.Admin.Endpoints=tcp -p 9998 -h 127.0.0.1 (定义IceBoxAdmin接入端口,这样用Ice.Admin时才能进入ServiceManager)





参考:

一个完整的java版本的配置使用icebox示例。http://wenku.baidu.com/link?url=a2pRxEvi35hS1Kygb88Cg1MVs0OVUOLLTEdVxb09cE0rJZAW3GN0kH1fnc6eVi79lZGRZkqus7-FLCzaC-5u7yTmPkceYO5ihc3AXPISMcu


对icebox的管理   http://hi.baidu.com/monsterfairy/item/5a4dacc1a21f322646d5c09a

转载于:https://www.cnblogs.com/catkins/p/5270522.html

相关文章:

测试打桩_DNF:CEO实测旭旭宝宝红眼,打桩高达2494E,伤害超越狂人剑魂

对于红眼这个职业&#xff0c;旭旭宝宝倾注了太多的心血&#xff0c;耗资几千万打造而成。虽然&#xff0c;作为固伤职业&#xff0c;在伤害方面&#xff0c;不及剑魂和剑帝这类百分比&#xff0c;但因人数颇多&#xff0c;从而被广泛关注。而今&#xff0c;旭旭宝宝的红眼&…

122112_1452_Word1

122112_1452_Word1转载于:https://www.cnblogs.com/joshuali/archive/2013/01/11/4339303.html

C++ 多线程:时间控制

C多线程库中的各个子库都有各自的时间控制方式&#xff0c;依此来进行多线程程序运行中cpu资源的精确控制。 使用std::chrono时间库可以提供微妙、毫秒、秒及以上的时间取用,并且能够获取当前系统时间。 如下代码 #include <iostream> #include <fstream> #inclu…

array用法 numpy_NumPy总结(基础用法)

numpy可以说是Python运用于人工智能和科学计算的一个重要基础&#xff0c;近段时间恰好学习了numpy&#xff0c;pandas&#xff0c;sklearn等一些Python机器学习和科学计算库&#xff0c;因此在此总结一下常用的用法。引入numpy库的方式&#xff1a;import numpy as np1、numpy…

python 字符串 转 dict

比直接eval更好的方法>>>import ast >>>ast.literal_eval("{muffin : lolz, foo : kitty}") {muffin:lolz,foo:kitty} 用 json 遇到问题&#xff1a; >>> import json json.loads({"x": 1,"y":2}) {uy: 2, ux: 1…

rhino-java中调用javascript

2019独角兽企业重金招聘Python工程师标准>>> 在有些情况下需要在java里面执行javascript&#xff0c;这时rhino就可以帮忙了。mozilla的一个开源产品。 官网https://developer.mozilla.org/en-US/docs/Rhino 之前的一篇博客http://my.oschina.net/yybear/blog/101…

HDU 2566 统计硬币

统计硬币 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9633 Accepted Submission(s): 6505 Problem Description 假设一堆由1分、2分、5分组成的n个硬币总面值为m分&#xff0c;求一共有多少种可能的组合方式&…

linux C 多线程编程

文章目录多线程的一些小知识&#xff1a;1创建线程 pthread_create2线程挂起 pthread_join3线程终止 pthread_exit4线程分离 pthread_detach5线程取消 pthread_cancel线程同步 pthread_mutex_t互斥变量我们在写linux的服务的时候&#xff0c;经常会用到linux的多线程技术以提高…

JavaSE replaceAll 方法

private String srcStr "index\\.php\\?action";//要替换的原字符串 private String destStr "index.php?<{\\$LANGUAGE_TYPE}>action";//目的字符串 注意.和?都要转义&#xff0c;因此需要在前面添加两个反斜杠。 关于第二个参数&#xff0c;$…

elementui datetimepicker 移动端_在 Gitee 收获 2.5K Star,前后端分离的 RuoYi 它来了

作为 2019 年 Gitee 上最受欢迎的开源项目&#xff0c;权限管理系统 RuoYi 已经在 Gitee 上获得了超过 11K 的 Star。 这次作者若依推出了基于 SpringBoot Vue Element UI 的前后端分离版本的 RuoYi-Vue&#xff0c;方便有前后端分离开发需求的同学使用。项目名称&#xff1a…

用MyEclipse开发Spring入门

1 新建一个项目 File----->New ----->Project 在出现的对话框中选择 MyEclipse 下的 Web Project&#xff0c;在Project Name 输入mySpring1&#xff0c;其他的选项默认&#xff0c;再点Finish完成&#xff1b; 2 加入Spring 包 在myspring1 项目上点右键&#xff0c;选…

带你轻而易举的学习python——八皇后问题

首先我们来看一下这个著名的八皇后问题 八皇后问题&#xff1a;在88格的国际象棋上摆放八个皇后&#xff0c;使其不能互相攻击&#xff0c;即任意两个皇后都不能处于同一行、同一列或同一斜线上&#xff0c;问有多少种摆法。 在这个问题提出之后人们又将它扩展到了nn格的棋盘摆…

ubuntu18.04.1内核升级至5.0.0-25版本

ubuntu18.04操作系统版本先已支持在线的内核版本升级&#xff0c;到目前为止18.04发布版已经拥有三个小版本了1,2,3。 其中18.04.01和18.04.03版本&#xff0c;安装好之后默认的是4.15内核版本&#xff0c;但是默认支持在线安装4.18和5.0.0内核版本。 具体升级步骤如下&#x…

输出n行杨辉三角数

1 /*2 输出n行杨辉三角数 3 输入n&#xff0c;n是1&#xff5e;100之间的整数 4 */5 #include<stdio.h>6 int main()7 {8 int a[100],b[100];9 int i,j; 10 int n; 11 scanf("%d",&n); 12 if(n1) 13 { 14 printf("1\…

怎么扫描_打印机上扫描仪怎么用 打印机上扫描仪使用及添加方法

打印机是生活中常用的打印设备&#xff0c;主要用于连接 电脑 打印电脑上的文件&#xff0c;方便办公。对于第一次使用打印机的朋友可能还不是很熟悉如何使用&#xff0c;比如打印机上 扫描仪 怎么用&#xff1f;怎么添加打印机扫描仪&#xff1f;下面小编就来为大家介绍下吧。…

java 调用webservice的各种方法总结

http://www.blogjava.net/zjhiphop/archive/2009/04/29/webservice.html 现在webservice加xml技术已经逐渐成熟&#xff0c;但要真正要用起来还需时日!! 由于毕业设计缘故&#xff0c;我看了很多关于webservice方面的知识&#xff0c;今天和大家一起来研究研究webservice的…

vc++图像保存,重绘

新建mfc应用程序&#xff0c;单文档 增加绘图 分别增加命令响应 添加成员变量UINIT 图形可以运行&#xff0c;如何保存呢&#xff1f;&#xff08;一个集合类&#xff0c;CPtArt&#xff09; 用一个类的对象来保存一个图形的三个要素 所以插入一个新的类&#xff08;通常的类&a…

linux 进程内存分布及 堆分配和栈分配的特点

文章目录进程内存空间分布size命令查看内存分布堆方式内存分配和栈方式内存分配比较使用stap 深入追踪malloc逻辑进程内存空间分布 一个程序的内存空间主要如下&#xff1a; 代码段(text segment)&#xff1a;只读权限&#xff1b;常是指用来存放程序执行代码的一块内存区域&…

echarts 坐标自适应_echarts 同一页面,多个图表 页面大小自适应

// 路径配置require.config({paths: {echarts: ./js}});// 使用require([echarts,echarts/chart/line, // 折线图echarts/chart/bar // 柱状图],function (ec) {var myChart ec.init(document.getElementByIdx_x(main));var myChartx ec.init(document.getElementByIdx_x(main…

opencv——pcb上寻找mark点(拟合椭圆的方法)

#include "stdafx.h" // FitCircle.cpp : 定义控制台应用程序的入口#include "cv.h" #include "highgui.h" #include "cxcore.h" #include "cvaux.h" #include <iostream>using namespace cv; using namespace std; v…

bit,Byte、KB、MB、GB、TB、PB、EB之间的关系

计算机存储信息的最小单位&#xff0c;称之为位&#xff08;bit&#xff09;&#xff0c;音译比特&#xff0c;二进制的一个“0”或一个“1”叫一位&#xff1b;计算机存储容量基本单位是字节&#xff08;Byte&#xff09;&#xff0c;音译为拜特&#xff0c;8个二进制位组成1个…

echarts 点亮中国插件研究

echarts 真的是个神奇的东西&#xff0c;最近做了一个需要点亮中国的移动端项目&#xff0c;前期就怎样点亮中国做了调研&#xff0c;发现微博当初炫酷的点亮效果就是用echarts做的&#xff0c;于是研究了一下。 一连研究了一堆demo&#xff0c;不管从官网还是GitHub上面&#…

linux进程间通信:无名管道 pipe

文章目录内核层实现结构通信原理特点使用函数声明使用实例单向通信双向通信编程注意事项管道中无数据时读操作会阻塞将管道的写端句柄关闭&#xff0c;不会影响读端数据读取管道中没有数据&#xff0c;写操作关闭则读操作会立即返回管道大小测试 64K管道发生写满阻塞&#xff0…

争吵所达到的效果要_悟空:不要害怕争吵,有时候争吵一些不喜欢的事情也能创造和谐...

悟空&#xff1a;八戒&#xff0c;你吃了早饭去把马喂了吧。八戒&#xff1a;好的。悟空&#xff1a;喂了马你去看看我们午饭可以吃什么&#xff0c;如果有需要提前做预备的什么事儿&#xff0c;你知道该怎么做吧&#xff1f;八戒&#xff1a;好的。悟空&#xff1a;昨天&#…

Log4j日志管理的用法

参考网址&#xff1a; http://www.blogjava.net/314508313/archive/2011/11/14/363653.html http://www.cnblogs.com/likwo/archive/2010/09/01/1814994.html http://fanqiang.chinaunix.net/app/other/2006-06-22/4640.shtml http://www.blogjava.net/rickhunter/articles/281…

多线程实现生产者消费者模型

首先是一个仓库接口&#xff0c;该接口规定的仓库大小&#xff0c;仓库的存取方法&#xff0c;如下所示 1 package pers.lan.jc.pc;2 3 /**4 * author lan [1728209643qq.com]5 * create 2018-11-27 15:596 * desc 仓库7 */8 public interface Repertory<T> {9 10 …

再记一次ceph object unfound的艰辛历程

文章目录先说问题&#xff1a;再说解决尝试1&#xff1a;尝试2(该尝试建议先在自己环境搭配对应业务测试通过后再现场尝试)&#xff1a;感谢 学无止境996同学的陪伴和vigourtyy美丽女友的支持&#xff0c;直到这个解决问题的深夜先说问题&#xff1a; ceph 12.2.1生产环境&…

2014-01-04 SQL练习

目标数据库 250,czzznew/czzznew *关于执行计划&#xff1a;在PL/SQL选中查询的语句后&#xff0c;按下F5即可&#xff0c;其中Cost列表示当前操作的代价&#xff08;消耗&#xff09;&#xff0c;值越大代表性能越差 t_rkxx表 (1):用2种以上方法查出xm(姓名)为test或者Test的人…

多重集表示合json数据_计数DP(划分数,多重集组合数)

划分数&#xff1a;把n个无区别的物品划分成不超过m组。 dp[i][j]j的i划分的总数。 dp[i[j]dp[i][j-i]dp[i-1][j] 即&#xff1a;将j个物品分成i份&#xff0c;有两种情况&#xff1a;每份划分都大于等于1 dp[i][j-i]; 存在有一份以上用0划分dp[i-1][j]int main(){int n,m;cin&…

搭建PHP环境遇到的问题!!

为什么80%的码农都做不了架构师&#xff1f;>>> 问题1&#xff1a; 再次./configure以下错误发生 configure: error: xml2-config not found. Please check your libxml2 installation. 解决方法&#xff1a; 安装libxml2 # yum install libxml2-devel 问题2&…