Dubbo 学习笔记
· One min read
Zookeeper 是一个针对分布式应用程序的分布式开源协调服务,分布式应用可以在这些服务的基础上构建更高级的同步,配置维护,组和命名服务
Zookeeper允许分布式进程通过共享的分层空间相互协调
中间件 提供协调服务
作用于分布式系统
支持Java 通过java和C语言的客户端api
简单的api
create 在树种某个位置创建节点delete 删除一个节点exist 测试某个位置节点状态get data 获取节点数据set data 将数据写入节点get children 检索节点数据sync 等待数据传播官网下载地址 :download
# 下载 bin
wget https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.9.1/apache-zookeeper-3.9.1-bin.tar.gz
# 解压文件
tar -zxvf apache-zookeeper-3.9.1-bin.tar.gz
# 目录结构
# bin conf docs lib LICENSE.txt logs NOTICE.txt README.md README_packaging.md
# 生成配置文件
# 进入 conf
cp zoo_sample.cfg zoo.cfg
# 进入 bin 目录
# 启动 zookeeper
./zkServer.sh start
# zkCli.sh
./zkCli.sh -server 127.0.0.1:2181
| 类别 | synchronized | ReentrantLock |
|---|---|---|
| 存在层次 | Java的关键字,JVM层面 | 是一个类 |
| 锁的释放 | 1.以获取锁的线程执行同步代码,释放锁 2.线程执行发生一次,JVM会让线程释放锁 | 在finally中必须释放锁,不然容易造成线程死锁 |
| 锁的获取 | 加锁A线程获得锁,B线程等待,如果A阻塞,B线程会一直等待 | 分情况而定,Lock有多种锁的获取方式 condition |
| 锁状态 | 无法判断 | 可以判断 |
| 锁类型 | 可重入,不可判断,非公平 | 可重入,可判断,可公平 |
| 性能 | 少量同步 | 大量同步 |
⚡️ 和 甲方对接系统 遇到 java Rsa 加密 go 无法解密的问题