zookeeper入門(3)API常用函式功能與引數詳解
《zooker入門系列教程》:
1 - 如何在單機上實現ZooKeeper偽機群/偽叢集部署
1. zookeeper初始化
zhandle_t *zookeeper_init(const char *host, watcher_fn fn,
int recv_timeout, const clientid_t *clientid, void *context, int flags);
功能:
建立一個控制程式碼(handle)和一個響應(response)這個控制程式碼的會話(session)。
引數:
host:zookeeper主機列表,用逗號間隔。
fn:用於監視的回撥函式。
clientid:之前建立過連線,現在要重新連的客戶端(client)ID。如果之前沒有,則為0.
context:暫時用不到,忽略。(TODO)
flags:設定為0,zookeeper開發團隊保留以後使用。
2. 監視節點是否存在
int zoo_exists(zhandle_t *zh, const char *path, int watch,
struct Stat *stat);
功能:
同步監視一個zookeeper節點(node)是否存在。
引數:
zh:zookeeper的控制程式碼,由zookeeper_init得到。
path:節點名稱,就是一個類似於檔案系統寫法的路徑。
watch:設定為0,則無作用。設定為非0時,暫時用不到,忽略。(TODO)
stat:(TODO)
返回值:ZOK,ZNONODE,ZNOAUTH,ZBADARGUMENTS,ZINVALIDSTATE,ZMARSHALLINGERROR。ZOK表示操作成功,ZNONODE表示該節點不存在,ZNOAUTH表示客戶端(client)無許可權,ZINVALIDSTATE表示存在非法的引數,後兩者暫略(TODO)。
3. 新建zookeeper節點
int zoo_create(zhandle_t *zh, const char *path, const char *value, int valuelen,
const struct ACL_vector *acl, int flags, char *path_buffer, int path_buffer_len);
功能:
建立一個同步的zookeeper節點。
引數:
zh:zookeeper的控制程式碼,由zookeeper_init得到。
path:節點名稱,就是一個類似於檔案系統寫法的路徑。
value:欲儲存到該節點的資料。如果不儲存資料,則設定為NULL。
valuelen:欲儲存的資料的長度。如果不儲存資料,則設定為-1.
acl:初始的ACL節點,ACL不能為空。比如設定為&ZOO_OPEN_ACL_UNSAFE。(TODO)
flags:一般設定為0.(TODO)
path_buffer:將由新節點填充的路徑值。可設定為NULL。(TODO)
path_buffer_len:path_buffer的長度。
返回值:ZOK,ZNONODE,ZNODEEXISTS,ZNOAUTH,ZNOCHILDRENFOREPHEMERALS,ZBADARGUMENTS,ZINVALIDSTATE,ZMARSHALLINGERROR。ZOK表示操作成功,ZNONODE表示該節點不存在,ZNODEEXISTS表示節點已經存在,ZNOAUTH表示客戶端(client)無許可權,ZNOCHILDRENFOREPHEMERALS表示不能夠建立臨時(ephemeral)節點的子節點(children),ZINVALIDSTATE表示存在非法的引數,後兩者暫略(TODO)。
4. 設定zookeeper節點
int zoo_set(zhandle_t *zh, const char *path, const char *buffer,
int buflen, int version);
功能:
向zookeeper節點寫資料。
引數:
zh:zookeeper的控制程式碼,由zookeeper_init得到。
path:節點名稱,就是一個類似於檔案系統寫法的路徑。
buffer:欲寫的資料。buflen:欲寫的資料的長度。
version:檢查這個節點的版本是否為version。當設定為-1時,不會進行版本檢查。(TODO)
5. 獲取某節點的子節點
int zoo_wget_children(zhandle_t *zh, const char *path, watcher_fn watcher,
void* watcherCtx, struct String_vector *strings);
功能:
同步列出一個節點的所有子節點。
引數:
zh:zookeeper的控制程式碼,由zookeeper_init得到。
path:節點名稱,就是一個類似於檔案系統寫法的路徑。
watcher:若設定為非0,則zookeeper伺服器(server)會設定一個監視器,用來在節點發生改變時通知客戶端(client)。
watcherCtx:傳送給watcher作為回撥的具體使用者資料(user specific data)。
strings:用來儲存得到的子節點路徑。
返回值:ZOK,ZNONODE,ZNOAUTH,ZBADARGUMENTS,ZINVALIDSTATE,ZMARSHALLINGERROR。
相關文章
- 函式引數詳解函式
- JVM入門(JVM引數詳解和常用命令)JVM
- OpenCV中的findContours函式引數詳解OpenCV函式
- js-arguments 函式引數物件詳解JS函式物件
- mysql常用函式詳解MySql函式
- Python print函式引數詳解以及效果展示Python函式
- 《MySQL 入門教程》第 14 篇 MySQL 常用函式之數學函式MySql函式
- 函式、引數、解構函式
- TensorFlow卷積網路常用函式引數詳細總結卷積函式
- Oracle GoldenGate常用引數詳解OracleGo
- 常用的 wget 引數詳解wget
- Python3之函式的引數傳遞與引數定義Python函式
- Go語言Slice作為函式引數詳解Go函式
- 熬夜總結vue3中setUp函式的2個引數詳解Vue函式
- 集合與函式入門函式
- curl常用引數詳解及示例
- 3.JavaScript函式入門JavaScript函式
- Lambda表示式入門--函數語言程式設計與函式式介面函數程式設計函式
- Dockerfile - 引數與詳解Docker
- Python 3 快速入門 2 —— 流程控制與函式Python函式
- 函式引數 引數定義函式型別函式型別
- Hue-hive sql常用函式詳解HiveSQL函式
- JavaScript 函式引數解構物件JavaScript函式物件
- js正規表示式常用函式詳解(續)JS函式
- ZooKeeper分散式專題與Dubbo微服務入門分散式微服務
- C++行內函數、函式過載與函式預設引數C++函數函式
- SQL中常用的字串LEFT函式和RIGHT函式詳解!SQL字串函式
- numpy、pandas常用函式功能函式
- 《MySQL 入門教程》第 16 篇 MySQL 常用函式之日期函式MySql函式
- 給妹子講python-S01E21函式引數的匹配與解包詳解Python函式
- python介面自動化(三十四)-封裝與呼叫--函式和引數化(詳解)Python封裝函式
- 數論函式從入門到進門函式
- SwaggerAPI註解詳解,以及註解常用引數配置SwaggerAPI
- 方法(函式)的定義與引數函式
- sql常用函式詳解(一)——字串擷取SQL函式字串
- Python入門(十八):變數作用域與巢狀函式Python變數巢狀函式
- PyTorch常用引數初始化方法詳解PyTorch
- 函式解構引數小細節函式
- JavaScript函式引數解構賦值JavaScript函式賦值