自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixiaohuai的博客

任何质变都来自于量变的积累。

  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 Zookeeeper开源客户端curator watcherAPI的使用

目录一、概述二、监听单个节点变化三、监听子节点变化四、总结一、概述curator提供了两种Watcher(Cache)来监听结点的变化。Node Cache : 只是监听某一个特定的节点,监听节点的新增和修改; PathChildren Cache : 监控一个ZNode的子节点. 当一个子节点增加, 更新,删除时, Path Cache会改变它的状态, 会包含最新的子节点,子节点的数据和状态;二、监听单个节点变化如果我们需要监听单个节点变化,可以使用NodeCache对

2021-01-29 10:31:31 23

原创 Zookeeper开源客户端curator

目录一、curator简介二、curator使用三、curator重连策略四、curator新增节点五、curator更新节点六、curator查看节点七、curator查看子节点八、curator删除节点九、总结一、curator简介curator是Netflix公司开源的一个zookeeper客户端,curator框架在zookeeper原生API接口上进行了包装,解决了很多zooKeeper客户端非常底层的细节开发。提供zooKeeper各种应用场景(比如:

2021-01-28 16:29:15 23

原创 Zookeeper集群leader选举机制

目录一、概述二、zab协议三、Zookeeper的leader选举四、总结一、概述前面一篇文章我们总结了如何在linux中搭建zookeeper集群,并且可以看到三台服务器分别启动后,zookeeper内部会自动选举出一个leader领导者,其他两台服务器都是作为follower跟随者角色存在,那么,zookeeper内部具体是如何选举产生这个leader的呢?本篇我们文章我们就将一一分析。二、zab协议zab协议的全称是 Zookeeper Atomic Broadcast

2021-01-27 15:26:39 28

原创 Zookeeper集群环境搭建

目录一、概述二、zookeeper集群搭建三、Java客户端连接zookeeper集群四、总结一、概述前面我们已经搭建过单机版的zookeeper环境,如果还没搭建的小伙伴可以参考进行学习。在生产环境中,为了高可用,我们的zookeeper通常都会集群部署,一般很少会单机部署的,本篇文章就将在linux环境下搭建三个节点的zookeeper环境。二、zookeeper集群搭建事先准备好三台虚拟机,IP地址分别为:192.168.179.128 192.168.179.1

2021-01-27 14:19:31 25

原创 Zookeeper案例之分布式全局唯一ID生成

目录一、概述二、案例实现一、概述在单体架构中,我们通常使用数据库字段自带的自增auto_increment属性来自动为每一条记录生成唯一的ID,但是当我们采用分布式系统后,特别是分库分表后,就无法再依靠数据库的auto_increment属性来唯一标识一条记录,这就需要采用其他方法来生成全局唯一ID。在zookeeper中,它提供了一种以创建临时有序节点来获取到全局唯一ID,它能保证在整个分布式系统中的全局唯一性。下面我们通过一个简单的案例来说明如何利用zookeeper生成全局唯一

2021-01-21 11:01:23 72

原创 Zookeeper案例之监听配置中心

目录一、概述二、案例一、概述在分布式系统中,每个微服务可能都会有自己的配置文件信息,比如数据库连接、用户名和密码信息都配置在配置文件中,微服务读取配置文件,将配置文件信息存入缓存中。假设我们的配置信息发生变化时,我们还需要重新加载缓存,这比较麻烦。在zookeeper中,我们学习了watcher监听机制,利用监听机制可能轻松实现当配置信息发生变化时,应用程序第一时间发现配置变化并重新加载最新的配置信息。二、案例这里我们以一个简单的案例说明在zookeeper中如何利用watche

2021-01-21 10:47:46 64

原创 Zookeeper之事件监听机制

目录一、watcher概念二、watcher架构三、watcher特性四、watcher接口设计五、watcher监控之检查节点是否存在六、watcher监控之查看节点七、watcher监控之查看子节点八、总结一、watcher概念zookeeper提供了数据的发布/订阅功能,多个订阅者可同时监听某一特定主题对象,当该主题对象的自身状态发生变化时(例如节点内容改变、节点下的子节点列表改变等),会实时、主动通知所有订阅者。zookeeper采用了Watcher机制实

2021-01-20 14:14:47 69

原创 Zookeeper Java客户端搭建

目录一、概述二、环境搭建三、创建节点四、更新节点五、删除节点六、查看节点七、查看子节点八、总结一、概述Zookeeper 的Java客户端API使我们更轻松的去对zookeeper进行各种操作,如创建节点、修改节点值、删除节点等等。客户端应该遵循以下几个步骤:连接到zookeeper服务器。zookeeper服务器为客户端分配会话ID。 定期向服务器发送心跳。否则,zookeeper服务器将过期会话ID,客户端需要重新连接。 只要会话ID处于活动状态,就可

2021-01-20 11:47:18 35 2

原创 Zookeeper的ACL权限控制

目录一、概述二、acl权限各部分组成说明三、授权的相关命令四、world授权模式五、IP授权模式六、Auth授权模式七、Digest授权模式八、多种模式授权九、总结一、概述zookeeper类似linux文件系统,客户端可以创建数据节点、更新节点数据、删除节点等,那么我们如何做到节点的权限控制呢?回想一下linux文件的权限文件,由r(读)、w(写)、x(可执行)组成,同理,zookeeper中存在访问控制列表,也可以实现类似的权限控制。acl 权限控制,使用

2021-01-19 11:12:26 43

原创 Zookeeper 常用Shell命令总结

目录一、概述二、基础命令使用一、概述前面一篇文章我们介绍了Zookeeper中节点Znode的数据结构以及特性,本篇我们将总结一些常用的Zookeeper操作数据节点的shell命令。二、基础命令使用zookeeper 命令用于在 zookeeper 服务上执行操作。首先执行命令,打开新的 session 会话,进入终端。下面我们介绍一些基本常用命令的使用。进入bin目录启动zookeeper服务端和客户端:[root@localhost bin]# ./zkCli.sh

2021-01-19 10:03:11 23

原创 ZooKeeper 数据模型 Znode 结构特性详解

目录一、概述二、节点类型三、节点特性四、总结一、概述zookeeper的数据节点可以视为树状结构(或者目录),树中的各节点被称为znode(即zookeeper node),一个znode可以有多个子节点,可以说 zookeeper 中的所有存储的数据是由 znode 组成的,并以 key/value 形式存储数据。整体结构类似于 linux 文件系统的模式以树形结构存储,其中根路径以/开头。[zk: localhost:2181(CONNECTED) 0] ls /[a..

2021-01-18 16:53:29 65

原创 Linux下安装Zookeeper环境

一、概述ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。zookeeper是一个经典的分布式数据一致性解决方案,致力于为分布式应用提供一个高性能、高可用、且具有严格顺利访问控制能力的分布式协调存储服务。Zookeeper 官网地址:https://zookeeper.apache.org/ZooK

2021-01-17 21:10:21 33

原创 分布式事务各方案对比分析

一、概述通过前面很多篇文章的讲解和案例开发,相信大家对分布式事务整体有了比较清晰的认识,小伙伴们只要跟着一步一步实现,动动手画画流程图,应该可以对每种方案的实现步骤都有比较深刻的印象。本篇文章主要对比一下之前我们学过的2PC、TCC、可靠消息一致性、最大努力通知方案。二、分布式事务各方案对比分析下面我们分别总结一下各种方案的优缺点:2PC二阶段提交方案二阶段提交的最大缺点就是阻塞时间长,事务参与者RM在执行分支事务后需要等待事务管理者TM的决定,此时服务会阻塞并锁定资源。因此,2PC方案很

2021-01-08 19:59:00 66

原创 分布式事务综合案例分析

目录一、概述二、注册账号案例分析三、第三方支付案例分析四、总结一、概述前面我们已经学习了四种分布式事务解决方案,2PC、TCC、可靠消息最终一致性、最大努力通知,每种解决方案我们通过案例开发进行学习,本篇我们将举几个业务场景,来进行分布式事务解决方案可行性分析。二、注册账号案例分析采用用户、账号分离设计(这样设计的好处是,当用户的业务信息发生变化时,不会影响的认证、授权等系统机制),因此需要保证用户信息与账号信息的一致性。【a】涉及服务用户微服务:保存用户业务相关数据

2021-01-08 19:50:52 36

原创 SpringCloud + RocketMQ实现最大努力通知型事务

目录一、概述二、案例说明和数据库、表准备三、服务注册中心搭建四、搭建充值微服务五、搭建账户微服务六、测试七、总结一、概述前面一篇文章介绍了最大努力通知的整体流程和两种常见的实现方案,本篇文章我们将结合具体的案例【模拟账户充值】详细说明如何利用RocketMQ实现最大努力通知型事务。二、案例说明和数据库、表准备本案例有账户服务和充值服务两个微服务,其中账户服务的数据库是account数据库,其中有张三账户。充值服务的数据库使用recharge 数据库,记录了账户的充

2021-01-07 19:48:28 45

原创 分布式事务解决方案之最大努力通知

目录一、什么是最大努力通知?二、最大努力通知与可靠消息一致性有什么不同?三、最大努力通知解决方案四、总结一、什么是最大努力通知?最大努力通知也是解决分布式事务的一种方案,我们平常对接支付宝、微信、第三方支付系统时,通常都采用的是最大努力通知方案来保证数据最终一致性的。如上图,是一个账户充值的例子。交互流程大体如下:1、账户系统调用充值系统的接口进行充值; 2、充值系统跳转支付页面; 3、账户系统发起支付请求; 4、充值系统完成支付处理; 5、充值系统发送充

2021-01-03 19:42:09 69

zipkin-server jar.zip

spring cloud zipkin服务链路跟踪server相关jar包,下载完成之后使用java -jar zipkin-server-2.12.9-exec.jar方式运行,就能启动zipkin-server,不建议自己搭建zipkin-server

2020-08-29

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除