欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于C#版Nebula客戶端編譯的問題

 更新時(shí)間:2021年07月21日 09:56:40   作者:靜若清池  
這篇文章主要介紹了C#版Nebula客戶端編譯的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、需求背景

從Nebula的Github上可以發(fā)現(xiàn),Nebula為以下語言提供了客戶端SDK:

nebula-cpp
nebula-java
nebula-go
nebula-python
nebula-node
nebula-rust

我們公司的業(yè)務(wù)開發(fā)語言是C#,但Nebula卻沒有提供C#版的客戶端。

由于Nebula支持源碼編譯,索性只好嘗試動(dòng)手編譯一個(gè)。

二、Thrift簡介

1.Thrift是Facebook在2007年貢獻(xiàn)給Apache基金會(huì)的一個(gè)開源項(xiàng)目:https://thrift.apache.org/

Thrift可以支持多種程序語言,例如:C++,C#,Cocoa,Erlang,Haskell,Java,Ocami,Perl,PHP,Python,Ruby,Smalltalk。

Thrift可以作為二進(jìn)制的高性能的通訊中間件,支持?jǐn)?shù)據(jù)(對(duì)象)序列化和多種類型的RPC服務(wù)

2.Facebook自己也維護(hù)了一個(gè)Thrift,目前已經(jīng)和Apache的Thrift差別較大,重寫了編譯器,重新實(shí)現(xiàn)了一個(gè)全異步的Thrift Server:https://github.com/facebook/fbthrift

Facebook Thrift is not a distribution of Apache Thrift.
This is an evolved internal branch of Thrift that Facebook re-released to open source community in February 2014.
Facebook Thrift was originally released closely tracking Apache Thrift but is now evolving in new directions.
In particular, the compiler was rewritten from scratch and the new implementation features a fully asynchronous Thrift server.

3.Nebula的客戶端基于Thrift文件進(jìn)行編譯的,但是使用的Thrift編譯器,不是Facebook貢獻(xiàn)給Apache的那個(gè)Thrift,而是Facebook自己維護(hù)的那個(gè)Thrift,有點(diǎn)繞。

4.Nebula提供的Thrift模板為:https://github.com/vesoft-inc/nebula-common/tree/master/src/common/interface

三、編譯前準(zhǔn)備工作

1.操作系統(tǒng)

通過VMware搭建的本地CenOS 7,虛擬機(jī)與主機(jī)健通過NAT網(wǎng)絡(luò)連接,內(nèi)存8G,宿主機(jī)有梯子可以FQ

2.安裝依賴

root# yum update
root# yum install -y make \
                 m4 \
                 git \
                 wget \
                 unzip \
                 xz \
                 readline-devel \
                 ncurses-devel \
                 zlib-devel \
                 gcc \
                 gcc-c++ \
                 cmake \
                 gettext \
                 curl \
                 redhat-lsb-core \
                 bzip2

3.檢查主機(jī)上的GCC和CMake版本是否正確

root# g++ --version
root# cmake --version

發(fā)現(xiàn)版本不正確,并且git clone也不好使,只好手動(dòng)下載2.0.1版本的nebula-common:https://github.com/vesoft-inc/nebula-common/tree/v2.0.1

4.解壓上述的nebula-common-2.0.1.zip解壓,進(jìn)入nebula-common-2.0.1根目錄

5.依次執(zhí)行如下命令

// 安裝CMake。
root# ./third-party/install-cmake.sh cmake-install

// 啟用CMake。
root# source cmake-install/bin/enable-cmake.sh

//opt目錄添加寫權(quán)限。
root# sudo mkdir /opt/vesoft && sudo chmod -R a+w /opt/vesoft

// 安裝GCC。安裝到opt目錄需要寫權(quán)限,用戶也可以修改為其他目錄。
root# ./third-party/install-gcc.sh --prefix=/opt

// 啟用GCC。
root# source /opt/vesoft/toolset/gcc/7.5.0/enable

// 安裝第三方依賴
root# ./third-party/install-third-party.sh

四、編譯

1.進(jìn)入上述的nebula-common-2.0.1根目錄

2.依次執(zhí)行命令

root#cmake
root#make

3.查看基于Thrift模板生成的C#代碼

nebula-common-2.0.1/src/common/interface/gen-csharp/nebula

五、后續(xù)工作

目前只是根據(jù)Thrift模板生成了對(duì)應(yīng)C#接口的定義和解析,還需要參考Nebula提供的Java的客戶端代碼,翻譯成對(duì)應(yīng)的C#代碼

六、參考文檔

https://docs.nebula-graph.com.cn/2.0.1/4.deployment-and-installation/1.resource-preparations/

到此這篇關(guān)于C#版Nebula客戶端編譯的文章就介紹到這了,更多相關(guān)C#版Nebula客戶端編譯內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#設(shè)計(jì)模式之適配器模式與裝飾器模式的實(shí)現(xiàn)

    C#設(shè)計(jì)模式之適配器模式與裝飾器模式的實(shí)現(xiàn)

    創(chuàng)建型設(shè)計(jì)模式主要是為了解決創(chuàng)建對(duì)象的問題,而結(jié)構(gòu)型設(shè)計(jì)模式則是為了解決已有對(duì)象的使用問題。本文將用C#語言實(shí)現(xiàn)結(jié)構(gòu)型設(shè)計(jì)模式中的適配器模式與裝飾器模式,感興趣的可以了解一下
    2022-04-04
  • 從C#程序中調(diào)用非受管DLLs的方法

    從C#程序中調(diào)用非受管DLLs的方法

    這篇文章主要介紹了從C#程序中調(diào)用非受管DLLs的方法,是非常實(shí)用的技巧,有助于深入理解Windows程序設(shè)計(jì),需要的朋友可以參考下
    2014-10-10
  • C#如何獲取枚舉的描述屬性詳解

    C#如何獲取枚舉的描述屬性詳解

    這篇文章主要給大家介紹了關(guān)于C#如何獲取枚舉的描述屬性的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • C#的String轉(zhuǎn)換成float防止精度丟失問題的解決

    C#的String轉(zhuǎn)換成float防止精度丟失問題的解決

    這篇文章主要介紹了C#的String轉(zhuǎn)換成float防止精度丟失問題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 淺談C#設(shè)計(jì)模式之工廠模式

    淺談C#設(shè)計(jì)模式之工廠模式

    這篇文章主要介紹了淺談C#設(shè)計(jì)模式之工廠模式,需要的朋友可以參考下
    2014-12-12
  • c#正反序列化XML文件示例(xml序列化)

    c#正反序列化XML文件示例(xml序列化)

    這篇文章主要介紹了c#正反序列化XML文件示例,可以將對(duì)象序列化為XML文本或者文件,或者將XML文件或文本反序列化為對(duì)象,要求進(jìn)行序列化的對(duì)象不能出現(xiàn)序列化異常,支持類的嵌套,要求類的屬性為public
    2014-03-03
  • C#使用WebSocket實(shí)現(xiàn)聊天室功能

    C#使用WebSocket實(shí)現(xiàn)聊天室功能

    這篇文章主要為大家詳細(xì)介紹了C#使用WebSocket實(shí)現(xiàn)聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#使用HttpWebRequest與HttpWebResponse模擬用戶登錄

    C#使用HttpWebRequest與HttpWebResponse模擬用戶登錄

    這篇文章主要為大家詳細(xì)介紹了C#使用HttpWebRequest與HttpWebResponse模擬用戶登錄,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Unity3D使用GL實(shí)現(xiàn)圖案解鎖功能

    Unity3D使用GL實(shí)現(xiàn)圖案解鎖功能

    這篇文章主要為大家詳細(xì)介紹了Unity3D使用GL實(shí)現(xiàn)圖案解鎖功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • DevExpress SplitContainerControl用法總結(jié)

    DevExpress SplitContainerControl用法總結(jié)

    這篇文章主要介紹了DevExpress SplitContainerControl用法,對(duì)初學(xué)者有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08

最新評(píng)論