最近分布式项目开发中用到订阅/通知机制,经过选型决定采用etcd,在调研etcd使用方式、订阅/通知方案过程中遇到很多问题,这里做下简单记录。
本系列总共3篇:
- 《搭建etcd集群》:介绍搭建etcd集群方式、遇到的问题及处理方式;
- 《编译安装etcd-cpp-apiv3》:介绍etcd-cpp-apiv3编译安装方式、常见问题及处理方式;
- 《etcd-cpp-apiv3使用实例介绍》:介绍如何通过etcd-cpp-apiv3建立与etcd集群的连接,订阅etcd消息。
本文是第3篇 《etcd-cpp-apiv3使用示例介绍》。
参考1:https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3
参考2:https://www.cnblogs.com/king-howe/p/14133876.html
1. 环境信息
节点信息 | etcd-cpp-apiv3节点 | etcd集群节点1 | etcd集群节点2 | etcd集群节点3 |
---|---|---|---|---|
IP地址 | 192.168.61.134 | 192.168.61.135 | 192.168.61.136 | 192.168.61.137 |
hostname | CBFS1 | CBFS2 | CBFS3 | CBFS4 |
经过前两篇介绍,搭建完成了etcd集群,安装了etcd-cpp-apiv3库,环境信息如上表所示。本文主要介绍应用程序如何通过调用etcd-cpp-apiv3库所提供的方法,建立与etcd集群的通信,动态获取etcd集群的变化。
2. 示例1:周期读取Key:Value
#include <etcd/Client.hpp>
#include <etcd/Response.hpp>
#include <string>
#include <iostream>
std::string str_url = "http://192.168.61.135:2379, http://192.168.61.136:2379, http://192.168.61.137:2379"