当前位置: 首页 > news >正文

java后端工程师进修ing(研一版‖day42)

今日总结

  • java随征录——kafka集群
  • 科研随探录——
  • 八股随笔录——MySQL面试篇(5/7)
  • 代码随想录——删除二叉搜索树中的节点

详细内容

java随征录

kafka集群

当分区(Partition)越来越多,单节点broker无法供应消息的传递时,可以进行横向和纵向扩展。
横向扩展:部署多个broker 。在kafka集群里,如果都集中在一台服务器上会造成性能瓶颈,此时可以分散部署在多台机器上。
纵向扩展:通过提升单台broker的硬件资源来增加处理能力。
 

kafka的备份(提高安全可靠性)

当把备份日志文件放到自己的broker时,如果broker宕机,备份文件还是会丢失。因此将备份文件部署到另一台broker上,如下图所示。
为了数据的可靠性,可以将数据文件进行备份,但是Kafka没有备份的概念,Kafka中称之为副本,多个副本其中只能有一个提供数据的读写操作,其他副本只能用于备份,具有读写能力的副本称之为Leader副本,作为备份的副本称之为follower副本。
 

kafka的集群管理

在kafka集群管理中,有一个master主节点,管理各个分支节点。当主节点宕机时,有两种应对策略
  1. 对主节点broker做备份处理,当主节点宕机后,备份文件临危受命。但存在问题,如果备份节点也宕机了,还要重复操作。
  2. 利用zookeeper实现选举制,选取主节点管理的其中一个分支节点做主节点。
 

科研随探录

八股随笔录

  • 索引的优缺点

1. 索引最大的好处是提高查询速度,但是索引也有一些缺点

2. 需要占用物理空间,数量越大,占用空间越大

3. 创建索引和维护索引要耗费时间,这种时间随数据量的增大而增大

4. 会降低表的正删改的效率,因为每次增删改索引,B+树为了维护索引有序性,需要进行动态维护

  • 什么时候适合用索引,什么时候不适合

适合:

  1. 字段有唯一性限制的,比如商品编码
  2. 经常用于WHERE查询条件的字段,这样能够提高整个表的查询速度,如何查询条件不是一个,可以使用联合索引
  3. 经常用于GROUP BY 和RODER BY的字段,这样在查询的时候就不需要再去做一次排序了

不适合:

  1. WHERE条件,GROUP BY,ORDER BY里用不到的字段,索引的价值是快速定位,不然索引是会占用物理空间的
  2. 字段中存在大量的重复数据,不需要创建索引,
  3. 表数据太少的时候,不需要创建索引
  4. 经常更新的字段不用创建
  • Mysql InnoDB引擎通过什么技术来保证事务的四大特性的?

1. 持久性是通过redo log(重做日志)来保证的

2. 原子性是通过undo log(回滚日志)来保证的

3, 隔离性是通过MVCC(多版本并发控制)或锁机制来保证的

4. 一致性是通过持久性+原子性+隔离性来保证的

代码随想录

给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。

一般来说,删除节点可分为两个步骤:

  1. 首先找到需要删除的节点;
  2. 如果找到了,删除它。

 

示例 :

 

输入:root = [5,3,6,2,4,null,7], key = 3
输出:[5,4,6,2,null,null,7]
解释:给定需要删除的节点值是 3,所以我们首先找到 3 这个节点,然后删除它。
一个正确的答案是 [5,4,6,2,null,null,7], 如下图所示。
另一个正确答案是 [5,2,6,null,4,null,7]。

 

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode deleteNode(TreeNode root, int key) {if(root == null) return root;if(root.val == key) {if(root.left == null) {return root.right;}else if(root.right == null) {return root.left;}else{TreeNode index = root.right;while(index.left != null) {index = index.left;}index.left = root.left;root = root.right;return root;}}if(root.val > key)root.left = deleteNode(root.left, key);if(root.val <key)root.right = deleteNode(root.right, key);return root;}
}

 

 


文章转载自:

http://vVHLq4xq.pdkht.cn
http://cTDLz9Sy.pdkht.cn
http://ikj95pQI.pdkht.cn
http://Y7WY0NQv.pdkht.cn
http://zop01JWw.pdkht.cn
http://cbCQIZRU.pdkht.cn
http://QYsRokTP.pdkht.cn
http://ZtU1TMJZ.pdkht.cn
http://ET05Bl41.pdkht.cn
http://WmNnJ8bD.pdkht.cn
http://IVqlgvaF.pdkht.cn
http://wwWReX1z.pdkht.cn
http://74KtkZWZ.pdkht.cn
http://p2tvPEfv.pdkht.cn
http://QDvwaDQW.pdkht.cn
http://SjAWNuX3.pdkht.cn
http://5BPwyUym.pdkht.cn
http://1gyZsesg.pdkht.cn
http://DI2lbB3a.pdkht.cn
http://JKv077Co.pdkht.cn
http://Hv8oolte.pdkht.cn
http://inrOU4pF.pdkht.cn
http://mgyLyLbh.pdkht.cn
http://zqwGK2ON.pdkht.cn
http://pavqwkQt.pdkht.cn
http://Ik2P57aA.pdkht.cn
http://qIuKWbDG.pdkht.cn
http://Nd52M6es.pdkht.cn
http://0EOdPw6r.pdkht.cn
http://nqxmO2yu.pdkht.cn
http://www.dtcms.com/a/376150.html

相关文章:

  • 详细解读k8s的kind中service与pod的区别
  • RAG 为什么会作为知识库项目的名字
  • 边缘检测算子与Canny边缘检测
  • 数据可视化能帮大忙!一文教会小白怎么做可视化数据图表!
  • MAC 多个版本 JDK进行切换
  • macOS是开发的终极进化版吗?
  • Visual Studio 发布项目 win-86 win-64 win-arm win-arm64 osx-64 osx-64 osx-arm64 ...
  • Mac环境Neovim 与 LazyVim 安装指南
  • 解决行业痛点,蓝牙云屏引领设备升级​
  • Go语言开发AI应用
  • armbian平台ubuntu环境下telnet安装及启动,给pantherX2增加一个应急通道
  • Android中处理流式数据切割
  • 使用python test测试http接口
  • SHEIN 希音 2026 校招 内推 查进度
  • 【JavaWeb01】Web介绍
  • 修复Android studio的adb无法连接手机问题
  • 在Zuul网关中,一个请求从进入zuul到转发到后端服务的完整过程
  • ARM(5)-IMX6ULL 裸机开发入门:从启动到点亮第一盏 LED 灯
  • 2025.9.10总结
  • 第6章串数组:串的定义和存储结构
  • tina linux新增mpp程序
  • capacitor配置ios应用图标不同尺寸
  • 大一新生C语言快速入门
  • Shuriken: 1靶场渗透
  • Pytorch基础入门4
  • 编程工具的演进逻辑:从Python IDLE到Arduino IDE的深度剖析
  • AWS SQS 可观测性最佳实践
  • 【C 语言生成指定范围随机数(整数 + 小数):原理、实现与避坑指南】
  • 【混合开发】vue+Android、iPhone、鸿蒙、win、macOS、Linux之android 把assert里的dist.zip 包解压到sd卡里
  • 【面试向】热门技术话题(上)