署一个fabric伪集群,有A、B、C三个机器
分别部署A(sdk)、B(fabric集群的部分)、C(fabric集群的部分)
部署中遇到一些问题:
1.zookeeper部署问题
每一个zookeeper节点需要知道集群中所有节点,通过ZOO_SERVERS来指定,ZOO_SERVERS中必须包含自身节点
每个节点通过ZOO_MY_ID来判别ZOO_SERVERS哪个是自己,例如ZOO_MY_ID=3,则server.3为自己的节点,
对于自己的节点端口应为zookeeper监听端口,对于容器来说就是容器内部监听的端口,2888:3888,
对于其它节点来说就是zookeeper暴露端口,对于容器来说就是和容器内部监听端口映射的宿主机端口,2890:3890
2.kafka部署问题
KAFKA_ADVERTISED_LISTENERS的官网解释如下:
Listeners to publish to ZooKeeper for clients to use, if different than the `listeners` config property. In IaaS environments, this may need to be different from the interface to which the broker binds. If this is not set, the value for `listeners` will be used. Unlike `listeners` it is not valid to advertise the 0.0.0.0 meta-address.
链接地址:http://kafka.apache.org/documentation/#configuration
3.peer设置问题
配置文件 https://github.com/hyperledger/fabric/blob/release-1.1/sampleconfig/core.yaml
CORE_PEER_CHAINCODEADDRESS是chaincode用来链接peer时的地址,也就是peer暴露给chaincode的地址
CORE_PEER_CHAINCODELISTENADDRESS是peer监听chaincode的地址
对于容器来说,peer的CHAINCODELISTENADDRESS地址就是peer容器的监听地址,CHAINCODEADDRESS就是peer容器所在宿主机暴露给chaincode的地址
对于物理机来说,这两者是一样的
运行chaincode的沙箱(容器)默认是加入host网络,想要与peer处于同一网络,可以设置
CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=网络名
登录 | 立即注册