摘要: 前言 ZooKeeper对Zab协议的实现有自己的主备模型,即Leader和learner(Observer + Follower),有如下几种情况需要进行领导者的选举工作 情形1: 集群在启动的过程中,需要选举Leader 情形2: 集群正常启动后,leader因故障挂掉了,需要选举Leader 阅读全文
posted @ 2019-10-04 18:16 赐我白日梦 阅读(3026) 评论(0) 推荐(4) 编辑
摘要: 入口 书接上篇博客中的ZK集群启动后完成数据的统一性恢复后, 来到启动ZkServer的逻辑,接下来的重点工作就是启动不同角色的对应的不同的处理器Processor 如上图查看 的继承图,三种不同的角色有不同的 的实现逻辑类 三者启动时,都将会来到 中的 方法中,源码如下, 但是,不同的角色针对 进 阅读全文
posted @ 2019-10-03 16:16 赐我白日梦 阅读(1075) 评论(0) 推荐(0) 编辑
摘要: 什么是数据一致性? 只有当服务端的ZK存在多台时,才会出现数据一致性的问题, 服务端存在多台服务器,他们被划分成了不同的角色,只有一台Leader,多台Follower和多台Observer, 他们中的任意一台都能响应客户端的读请求,任意一台也都能接收写请求, 不同的是,Follower和Obser 阅读全文
posted @ 2019-10-03 10:33 赐我白日梦 阅读(9781) 评论(1) 推荐(0) 编辑
摘要: 程序的入口 "点击查看上图原文地址( zhaoyu_nb)" 初始化和启动总览 跟进 方法 , 这个方法中主要做了如下三件事 从 解析出配置文件的位置,创建 配置类对象(可以把这个对象理解成单个ZK server的配置对象),然后将配置文件中的内容加载进内存,并完成对java配置类的属性的赋值 开启 阅读全文
posted @ 2019-10-02 13:42 赐我白日梦 阅读(1476) 评论(0) 推荐(0) 编辑
摘要: 2020 02 08 补充流程图 如果对您有帮助,欢迎点赞支持, 如果有不对的地方,欢迎指出批评 什么是ACL(Access Control List) zookeeper在分布式系统中承担中间件的作用,它管理的每一个节点上可能都存储这重要的信息,因为应用可以读取到任意节点,这就可能造成安全问题,A 阅读全文
posted @ 2019-09-27 15:53 赐我白日梦 阅读(1942) 评论(0) 推荐(3) 编辑
摘要: 2020 02 08 补充本篇博文所描述的watcher回调的流程图 watcher存在的必要性 举个特容易懂的例子: 假如我的项目是基于dubbo+zookeeper搭建的分布式项目, 我有三个功能相同的服务提供者,用zookeeper当成注册中心,我的三个项目得注册进zookeeper才能对外暴 阅读全文
posted @ 2019-09-26 18:42 赐我白日梦 阅读(2601) 评论(0) 推荐(3) 编辑
摘要: 2020 0208 补充整个过程的流程图 客户端的启动流程 看上面的客户端启动的脚本图,可以看到,zookeeper客户端脚本运行的入口 ZookeeperMain.java的main()方法, 关于这个类可以理解成它是程序启动的辅助类,由它提供开始的位置,进而加载出zk client的上下文 创建 阅读全文
posted @ 2019-09-25 21:33 赐我白日梦 阅读(1269) 评论(3) 推荐(0) 编辑
摘要: 高可用 zookeeper宕机与dubbo直连 注册中心宕机,还可以消费dubbo暴露的服务 监控中心宕机了,不影响使用 ,只会丢失部分数据的采集 数据库宕机了,zookeeper仍然可以通过缓存查询服务提供者列表,但是不能注册新服务 注册中心集群对等集群,任何一台挂掉后都会切换到另一台 注册中心全 阅读全文
posted @ 2019-09-22 22:23 赐我白日梦 阅读(1500) 评论(0) 推荐(1) 编辑
摘要: 和传统ssm整合 写XML配置文件 搭建服务的提供者和服务的消费者,实现服务消费者跨应用远程调用服务提供者 公共模块抽取 公共模块的抽取 服务的消费者远程调用服务的提供者, 最起码他自己要得到在服务提供者提供服务的那个类的引用, 那消费者和服务的一人一份,如果是集群就会翻倍,故抽取公共模块,存放公共 阅读全文
posted @ 2019-09-21 19:15 赐我白日梦 阅读(2338) 评论(0) 推荐(0) 编辑
摘要: session会话机制 client请求和服务端建立连接,服务端会保留和标记当前client的session,包含 session过期时间,sessionId ,然后服务端开始在session过期时间的基础上倒计时,在这段时间内,client需要向server发送心跳包,目的是让server重置se 阅读全文
posted @ 2019-09-17 21:49 赐我白日梦 阅读(3696) 评论(0) 推荐(0) 编辑
摘要: zookeeper分布式系统中面临的很多问题, 如分布式锁,统一的命名服务,配置中心,集群的管理Leader的选举等 环境准备 分布式系统中各个节点之间通信,Zookeeper保证了这个过程中 数据的唯一性,安全可靠 官网下载地址 修改配置文件 将/conf/zoo_sample.cfg 修改成 z 阅读全文
posted @ 2019-09-16 19:14 赐我白日梦 阅读(768) 评论(0) 推荐(1) 编辑
摘要: 前后端分离状态下,后端SpringSecurity该如何变动呢? 如何变动取决于前后端分离状态下,前后端交互的特点,纯json交互,闲言少叙,上干货 主配置类 配置登录成功处理器,响应给前端json 在前后端没有分离时,用户完成了登录认证后,由后端的框架控制页面的跳转,但是前后端分离时,前后路由的跳 阅读全文
posted @ 2019-09-15 19:52 赐我白日梦 阅读(1110) 评论(0) 推荐(0) 编辑
摘要: 查看端口的占用情况 Centos6/contos7(ECS) 使用 netstat 查询系统上有多少TCP 多少UDP会话 netstat tun t: tcp u: udp a: all 表示列出所有的连接,服务监听,Socket资料 n: port number 用数字的形式展示 p: prog 阅读全文
posted @ 2019-09-15 19:32 赐我白日梦 阅读(815) 评论(0) 推荐(0) 编辑
摘要: 系统日志存放的位置 linux中的日志文件存储在 /var/log 不同模块的日志会记录到不同的模块中去 模块| 位置 | 内核及公共消息日志 | /var/log/messages 计划任务日志| /var/log/cron 系统引导日志 |/var/log/dmesg 邮件系统日志| /var/ 阅读全文
posted @ 2019-09-15 10:53 赐我白日梦 阅读(1267) 评论(0) 推荐(0) 编辑
摘要: centos6 init进程是系统中的第一个进程,PID永远为1 查看系统在中静态进程的统计信息 命令: ps 格式: ps [可选项] ax: 显示所有的进程信息 u: 使用以用户为主的格式输出进程信息 e: select all processes 显示系统内的进程信息 l: 使用长格式显示进程 阅读全文
posted @ 2019-09-14 21:19 赐我白日梦 阅读(1357) 评论(0) 推荐(0) 编辑
摘要: 一次性任务 在某个特定的时间,执行一次后被清除 相关命令/进程 at 命令 atd进程 在centos6中,系统服务的名称: /etc/init.d/atd 查看系统上该进程时候启动: 创建一次性任务 格式: at [HH:MM] at [HH:MM] [yyyy mm dd] at now + 数 阅读全文
posted @ 2019-09-14 19:33 赐我白日梦 阅读(1018) 评论(0) 推荐(0) 编辑
摘要: 文件系统的作用 数据存放在硬盘中, 但是linux不会让用户直接针对磁盘进行操作,这太底层了,对用户说,想存储个文件还得去学学硬盘的构成??? linux推出文件系统作为 用户和底层针对磁盘读写 之间的缓冲, 文件系统是一种结构, 用来组织管理文件, 比如磁盘的可用信息, 已占用和剩下的空间 常见的 阅读全文
posted @ 2019-09-14 17:15 赐我白日梦 阅读(501) 评论(0) 推荐(1) 编辑
摘要: 设备文件 在linux中,磁盘和分区都表示成文件, 磁盘的设备文件都是在 /dev/sd 如下: 结果解读 当前我的机器上有/dev/sda 一块硬盘,这个硬盘被分成1,2,3 三个分区 他们的命名规则就是 a,b,c .. 表示硬盘的顺序号, 1,2,3... 表示分区号 老式的硬盘IDE接口是 阅读全文
posted @ 2019-09-14 15:17 赐我白日梦 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 因为需求, 需要用到py, 所以来学学py, 因为有java基础 一小时入门py语法是不成问题的, 但是仅仅入门基础语法而已, 不涉及算法,不涉及大数据,机器学习,人工智能, 但是py这么火爆,就在于这几个分支遍地开花,后续的路还好长啊 py的语法是真的简单, 跟java比,真的简单太多了, 而且 阅读全文
posted @ 2019-09-11 20:25 赐我白日梦 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 输入输出的介绍 标准输入(stdin) : 从该设配接受用户输入的数据 标准输出(stdout) : 通过该设备向用户输入数据 标准错误: 通过该设备报告执行出错信息 类型 | 设备文件 | 文件描述符 | 默认设备 | | | 标准输入| /dev/stdin|0|键盘 标准输出| /dev/st 阅读全文
posted @ 2019-09-10 09:05 赐我白日梦 阅读(541) 评论(0) 推荐(0) 编辑
摘要: 访问权限: read: 可以查看文件内容,查看目录列表 write: 允许修改文件内容,允许在目录中新建,移动,删除文件目录,或子目录 目录 execute: 允许运行程序,切换目录 归属 owner 拥有该文件或目录的用户账号 group 所属组 others 除了所属组/所有者外的其它人 / | 阅读全文
posted @ 2019-09-08 21:35 赐我白日梦 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 在linux中每一个用户都有唯一的uid,linux内核根据uid区分不同的用户,同样每一个用户组,也有唯一的gid,一个组下可以存在多个账户, 如果给group添加上了权限A,那么属于这个组的全部用户都拥有这个权限, 每一个用户都可以加入多个组,但是肯定有一个是它的主要组 与用户和账户相关的文件 阅读全文
posted @ 2019-09-08 20:50 赐我白日梦 阅读(394) 评论(0) 推荐(0) 编辑
摘要: Neo4j是什么 软件安装及常用的配置选项介绍 下载 解压: 解压后进入指定目录 配置环境变量 修改neo4j的配置文件,使其启动起来 启动命令 概念名词 Label label 相当于数据库中的表, 比如有一个Label="Person" 代表一类节点 Node node 节点, 也叫它定点,每一 阅读全文
posted @ 2019-09-04 19:41 赐我白日梦 阅读(889) 评论(0) 推荐(0) 编辑
摘要: 在传统的网页中: view层是由后端控制的,用户的请求到达后端的控制器中,只有当安安全全没有丝毫异常的情况下,后端才会将完成数据的渲染,返回给前端视图 前后端分离的项目: view层的切换权,转交给了前端框架,如vue, 使用路由导航进行不同视图组件之间的导航 , 这时如果不做任何的安全的验证限制, 阅读全文
posted @ 2019-08-28 20:57 赐我白日梦 阅读(1781) 评论(0) 推荐(0) 编辑
摘要: 上图是vuex的结构图 vuex即 store, 包含State,Action,Mutations , 每一个vue项目都需要使用vuex做组件之间的数据共享 使用场景: 数据最终存放在store的State中, 但是也会面临问题, 比如,login.vue和dept.vue这俩组件都需要使用sto 阅读全文
posted @ 2019-08-28 20:25 赐我白日梦 阅读(2432) 评论(0) 推荐(0) 编辑