分布式rpc框架ice學習之helloworld篇

2021-09-19 23:48:02 字數 2559 閱讀 8695

官方安裝文件在:

這裡根據官方文件,演示在mac平台的安裝教程,

使用 homebrew直接安裝如下:

brew install ice
sudo cp -f ~/downloads/mcpp-2.7.2.tar.gz /library/caches/homebrew/mcpp-2.7.2.tar.gz
第一步,編寫ice的slice配置檔案,如下:

module demo ;

};

表明demo模組下存在乙個介面printer,提供乙個操作printstring

第二步,編譯該檔案生成對應語言原始檔,c++原始檔命令如下:

slice2cpp printer.ice
會生成兩個c++檔案,如下:

printer.cpp  printer.h
然後編寫服務端,命名為server.cpp,**如下:

#include #include using namespace std;

using namespace demo;

class printeri : public printer ;

void

printeri::printstring(const string& s, const ice::current&)

int main(int argc, char* ar**)

catch (const ice::exception& e) catch (const char* msg)

if (ic) catch (const ice::exception& e)

}return status;

}服務端實現的printstring功能很簡單,直接輸出引數內容。

編譯命令如下:

c++ -i. -i/usr/local/cellar/ice/3.5.1_1/include -c printer.cpp server.cpp

c++ -o server printer.o server.o -l/usr/local/cellar/ice/3.5.1_1/lib -lice -liceutil

會生成server二進位制檔案服務端,執行./server命令即可監聽本地10000 埠。

第三步,編寫客戶端。

c++客戶端**如下:

#include #include using namespace std;

using namespace demo;

int main(int argc, char* ar**)

catch (const ice::exception& ex) catch (const char* msg)

if (ic)

ic->destroy();

return status;

}

客戶端呼叫printstring方法傳入引數為"hello world!",編譯命令同理如下:

c++ -i. -i/usr/local/cellar/ice/3.5.1_1/include -c printer.cpp client.cpp

c++ -o client printer.o client.o -l/usr/local/cellar/ice/3.5.1_1/lib -lice -liceutil

執行生成的client二進位制檔案,./client可以看到server端顯示如下:

可以看到客戶端呼叫printer的介面printstring成功

下面演示php的客戶端**編寫。首先執行命令

slice2php printer.ice
會在當前目錄下生成printer.php,然後編寫客戶端**client.php如下:

<?php 

ini_set('include_path', ini_get('include_path') . path_separator . '/usr/local/cellar/ice/3.5.1_1/php/');

require 'ice.php';

require 'printer.php';

$ic = null;

trycatch(exception $ex)

直接呼叫php client.php同樣可以看到服務端顯示"hello world!"由此,可以看到,利用ice,php成功呼叫了c++實現的printer介面的printstring方法。

注:/usr/local/cellar/ice/3.5.1_1/是我本機位址。

類似dubbo的分布式RPC框架

模仿dubbo設計思路開發出來的一套分布式服務框架,本地測試通過,未經過生產環境測試,所以建議使用者經過嚴格測試或公升級後再考慮生產環境使用.發布出來是希望能給做這方面研究的人員參考,如果有問題還希望各位酌情拍磚.框架基於netty4實現socket通訊 基於apache curator實現zook...

ICE開發分布式程式

ice是zeroc公司開發的一款簡單高效的開源中介軟體平台,通過它可以快速地開發出高效 強壯 優雅的分布式的軟體。ice是zeroc公司開發的一款高效的開源中介軟體平台,全稱是internet communications engine。它的主要設計目標是 提供適用於異種環境的物件導向中介軟體平台。...

Ice 分布式 helloword詳解

所需要的軟體 vs2005,ice 3.3.1 vc80.msi,ice 3.3.1 thirdparty vc80.msi 一 環境配置 1 安裝ice 3.3.1 vc80.msi,安裝目錄設為c zeroc,完全安裝。2 安裝第三方依賴庫ice 3.3.1 thirdparty vc80.ms...