zookeeper学习草稿纸

2023-11-19

指令重排序:
https://baijiahao.baidu.com/s?id=1701616903992143186&wfr=spider&for=pc

JVM、JDK、JRE
静态方法为什么不能调用非静态成员?
重载和重写的区别
可变参数
基本数据类型

元空间存放了哪些数据
元空间与堆的关系 https://baijiahao.baidu.com/s?id=1701616903992143186&wfr=spider&for=pc

字符串、字符串常量池原理 https://blog.51cto.com/u_15281317/3008750


指令重排序:
https://baijiahao.baidu.com/s?id=1701616903992143186&wfr=spider&for=pc

JVM、JDK、JRE
静态方法为什么不能调用非静态成员?
重载和重写的区别
可变参数
基本数据类型

元空间存放了哪些数据
元空间与堆的关系 https://baijiahao.baidu.com/s?id=1701616903992143186&wfr=spider&for=pc

字符串、字符串常量池原理 https://blog.51cto.com/u_15281317/3008750

基本数据类型和包装类的区别
基本数据类型和引用类型在JVM中的存储位置:https://blog.csdn.net/guchenjun789/article/details/82903775
包装类的缓存机制



http://redisdoc.com/client_and_server/info.html

主TPS、从TPS、缓存命中、内存使用

Tomcat为什么要打破双亲委派机制

Redis面试题

Redis脑图
	https://www.processon.com/view/link/624d3b9a5653bb5d058aad1a#map
布隆过滤器的原理:https://baijiahao.baidu.com/s?id=1681783534561475386&wfr=spider&for=pc
深入理解Redis scan命令:https://blog.csdn.net/Dongguabai/article/details/120431231




手写dubbo
dubbo使用
dubbo整合spring
dubbo服务注册

mysql:
https://github.com/codinglin/StudyNotes/blob/main/MySQL%E5%9F%BA%E7%A1%80%E7%AF%87/MySQL%E5%9F%BA%E7%A1%80%E7%AF%87.md

解析配置文件
	是单机?
	是集群?
		初始化一个NIO或者Netty的通信的工厂类
		传递一个端口2181到上面的通信工厂类
		将配置很多配置文件中的参数设置的到quorumPeer对象(比如:quorumPeer.setElectionType(config.getElectionAlg()); 这个值默认是3 -》protected int electionAlg = 3;)
		quorumPeer.setZKDatabase(new ZKDatabase(quorumPeer.getTxnFactory())); //创建默认节点/zookeeper 
			看一眼DataTree,其实就是(路径,路径对应的数据)  
			看一眼DataNode的属性,也就是数据结构
		quorumPeer.start();
			loadDataBase(); -》zkDb.loadDataBase(); 我们往下跟,会发现加载快照文件和日志文件到内存
			startServerCnxnFactory();
				cnxnFactory.start(); 绑定2181端口
			adminServer.start(); 启动jettyServer,其实就是对外提供了一些状态管理信息,默认8080端口	
			startLeaderElection()
				如果当前节点是LOOKING状态(还没选举,都是LOOKING状态),初始化一个投票
				createElectionAlgorithm(3)
					listener.start();
						初始化ss = new ServerSocket();
						绑定选举端口,配置文件中末尾那一列的端口 (选举端口是选举用的,2181是提供给客户端使用的)
						ss.accept(); //阻塞在这里,等待其它节点连接。
						receiveConnection(client); //处理客户端连接
							handleConnection
					fle.start();	
						启动两个线程:wsThread wrThread
						我们再看一下上面的两个线程:WorkerSender
							看一下run方法:sendqueue.poll, 这里有个阻塞队列,循环拉取消息
							如果拉取到了消息:process()
							WorkerReceiver线程和上面的类似:manager.pollRecvQueue() 
			super.start();	// 这个是线程启动,直接看run方法,这里面是选举的核心逻辑
				run
					LOOKING
						lookForLeader
							updateProposal // 投自己一票?
							sendNotifications //发送选票,就算其它机器没有启动,也会发,只是报错而已
								sendqueue.offer(notmsg); //往队列中放选票,往远端去发送消息
							recvqueue.poll	//获取其它机器给自己的投票
							如果一个选票都没有收到
								manager.connectAll();
									connectOne(sid); 循环和远端的机器去做连接
										connectOne(sid, lastProposedView.get(sid).electionAddr)
											initiateConnection 最后会调用到这里,和远程机器建立连接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

zookeeper学习草稿纸 的相关文章

  • 如何选择适合自己的STM32 微控制器?

    选择控制器型号 俗称选型 首先要搞清楚芯片型号各类参数所表示的含义 STM32 顾名思义 ST表示意法半导体 M Microelectronics的缩写 表示微控制器 32 32位的意思 表示这是一个32位的微处理器芯片 STM32自带了各

随机推荐

  • Java集合总结

    Java常用集合总结 集合的整体框架 Collection的上层是Iterable接口 意味着Collection所有的子类都可以使用迭代器去访问元素 Collection还分为Set和List接口 Set接口下的实现子类都是不允许存在重复
  • 用java写一个定时任务,设定某一时间点触发

    可以使用 Java 的 java util Timer 类来创建定时任务 首先 需要创建一个 TimerTask 对象 它代表要在指定的时间点执行的任务 为了实现定时任务的逻辑 需要在 TimerTask 类的子类中重写 run 方法 然后
  • 【HTML】2023跨年烟花代码

    2022年圣诞节到来啦 很高兴这次我们又能一起度过 文章目录 前言 效果展示 一 夜景烟花绽放动画效果 HTML源码 2023年 新年 春节倒计时代码 源码 2023除夕倒计时 效果展示 源码 宇宙星空 效果展示 1 源码 2 思路 3 步
  • 后缀数组 模板(结构体) DC3 与倍增

    DC3 include
  • linux3.4.2内核移植详解(四):部分错误汇总

    编译内核出现 arch arm mm tlb v4wbi S Assembler messages arch arm mm tlb v4wbi S 64 Error too many positional arguments scripts
  • c# 时间戳的使用,日期判定(时间戳获取、 时间戳和DateTime的转换、时差计算)

    时间戳 一 获取时间戳 获取系统时间的时间戳 获取世界标准时区的当前时间的时间戳 比北京时间晚8小时 我很少用 二 时间戳和DateTime的相互转换 原文 https www cnblogs com polk6 p 6024892 htm
  • java 读取ssh2协议得到的数据_Java通过SSH2协议执行远程Shell脚本

    Java通过SSH2协议执行远程Shell脚本 ganymed ssh2 build210 jar ganymed ssh2简介 Ganymed SSH 2 for Java是用纯Java实现SSH 2协议的一个包 在使用它的过程中非常容易
  • QT中信号和信号槽详解

    如何选择QDialogButtonBox的信号与槽 1 UI中设计了一个QDialogButtonBox 按钮为Cancel和Apply 2 构造函数连接 connect ui gt buttonBox SIGNAL accepted th
  • SpringBoot配置多数据源,三数据源,mysql+oracle+mysql

    废话不多说 直接上代码 yml文件配置 server port 8080 spring datasource primary
  • 小谈设计模式(1)—总序

    小谈设计模式 1 总序 专栏地址 开始操作 设计模式总论 设计模式是什么 组成要素 模式名称 问题描述 解决方案 效果描述 设计模式有什么作用 提供可重用的解决方案 提高代码的可读性和可维护性 促进代码的可扩展性 提高代码的灵活性和可重用性
  • llvm之IR手册翻译(5)

    原网址是 http llvm org docs LangRef html abstract 下面这些是我自己的翻译 肯定有很多不恰当的地方 做这些只是希望自己以后翻阅更加方便 如果能对大家有所帮助那是极好的 别名 别名 不像函数或变量 不会
  • OSError:...libcublasLt.so.11 with link time reference

    程序运行时报错 OSError u01 anaconda3 envs modlscope py39 lib python3 9 site packages nvidia cublas lib libcublas so 11 symbol c
  • 无法从命令行或调试器启动服务,必须首先安装Windows服务....。在“安装”阶段发生异常。 System.Security.SecurityException:未找到源

    此处一共两个问题 第一个问题完整描述是 无法从命令行或调试器启动服务 必须首先安装Windows服务 使用installutil exe 然后用ServerExplorer Windows服务器管理工具或NET START命令启动它 第二个
  • Python基础教程:强大的Pandas数据分析库

    Pandas是一个基于 NumPy 的非常强大的开源数据处理库 它提供了高效 灵活和丰富的数据结构和数据分析工具 当涉及到数据分析和处理时 使得数据清洗 转换 分析和可视化变得更加简单和高效 本文中 我们将学习如何使用Pandas来处理和分
  • 集合addAll方法使用存在的问题。

    集合addAll 方法的时候 这里里有两个集合 集合2要拿到集合1中的元素 然后对集合2进行removeAll方法 结果集合1中的值也没有了 只是因为listTwo listOne 只是把集合1的引用给了集合2 集合1和集合2的引用是指向同
  • GDB and Reverse Debugging

    Overview GDB version 7 0 due September 2009 will be the first public release of gdb to support reverse debugging the abi
  • PTA基础题练习-检查密码

    PTA 检查密码 本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能 该网站要求用户设置的密码必须由不少于6个字符组成 并且只能有英文字母 数字和小数点 还必须既有字母也有数字 输出格式 输入样例 输出样例 本题要求你帮助某网站
  • Linux学习(一):查看文件目录的几种常用方式

    一 将主文件夹下的所有文件列出来 包括属性与隐藏文件 完整呈现文件的修改时间 注意 无论如何 ls最长被使用到的功能还是那个 l的参数 为此很多distribution在默认的情况中 已经将ll l的小写 设置成为ls l的意思了 这个功能
  • kodi没有中文设置_kodi播放器设置中文的方法

    KODI播放器是一款强大的多媒体播放器 其能够支持目前几乎所有的主流格式文件的播放 而且除了视频文件外 即使是音乐 图片 电视节目等其他媒体文件也能够正常进行播放 而且能够支持投屏扥更种辅助功能 为用户提供了一套完整的播放方案 因而广受用户
  • zookeeper学习草稿纸

    指令重排序 https baijiahao baidu com s id 1701616903992143186 wfr spider for pc JVM JDK JRE 静态方法为什么不能调用非静态成员 重载和重写的区别 可变参数 基本