自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 Hadoop:HDFS的容错机制:

HDFS会检测到这个故障,并尝试将该节点上的块复制到其它节点上,以确保数据的可用性。自动故障恢复:当一个数据块的副本丢失或变得不可用时,HDFS会自动从其他可用的副本中选择一个进行复制,以确保每个数据块都有足够的副本数。副本放置策略:HDFS通过副本放置策略将副本分散在不同的机架、不同的节点上,以减少因机架或节点级别故障而导致的数据丢失。默认情况下,每个块会复制到集群中的三个不同的节点上。客户端写入确认:HDFS的写入操作在客户端完成后并不立即返回成功,而是等待数据块的所有副本都成功写入后才返回成功。

2023-08-02 20:46:06 268

原创 Hadoop:HDFS的容错机制:

HDFS会检测到这个故障,并尝试将该节点上的块复制到其它节点上,以确保数据的可用性。4、自动故障恢复:当一个数据块的副本丢失或变得不可用时,HDFS会自动从其他可用的副本中选择一个进行复制,以确保每个数据块都有足够的副本数。1、副本放置策略:HDFS通过副本放置策略将副本分散在不同的机架、不同的节点上,以减少因机架或节点级别故障而导致的数据丢失。5、客户端写入确认:HDFS的 写入操作在客户端完成后并不立即返回成功,而是等待数据块的所有副本都成功写入后才返回成功。

2023-07-28 21:07:47 711

原创 Spring Bean的生命周期:

Bean 在开始加载之前,需要从上下文和相关配置中解析并查找 Bean 有关的扩展实现,比如像`init-method`-容器在初始化 bean 时调用的方法、destory-method`,容器在销毁 bean 时调用的方法。同时,在这个阶段会触发一些扩展的调用,比如常见的扩展类:BeanPostProcessors(用来实现 bean 初始化前后的扩展回调)、InitializingBean等等。5、销毁Bean实例阶段,当 Spring 应用上下文关闭时,该上下文中的所有 bean 都会被销毁。

2023-07-26 21:19:55 146

原创 Nacos 注册中心是如何实现注册中心?

2、服务发现:服务消费方在需要调用某个服务时,向nacos注册中心发送服务发现请求,请求包含要调用的服务名。nacos注册中心根据请求查找的服务名查询已注册的服务列表,并将可用的服务实例发送给服务调用者。1、服务注册:服务提供者在启动时向Nacos注册中心发送注册自己服务的信息,其中包括服务名、IP地址、端口等。4、服务变更通知:当服务列表发生变化时(如服务上线、下线、实例变更等),注册中心会通知订阅该服务的消费者,使其能够及时更新服务调用信息。

2023-07-26 20:55:57 246

原创 SpringMVC:SpringMVC的处理流程/工作流程

1、用户发送一个请求被Servlet拦截,转发Spring MVC框架,Spring MVC里面的DisPacherSevlet核心控制器会接受到请求并转发给处理器映射HandlerMapping。处理器映射HandleMapping负责解析请求,根据请求的信息和配置信息找到对应的controller类,不过这里如果配置有拦截器,就会按照顺序执行拦截器里面的preHandler方法。controller中执行完后会返回一个模型视图ModelAndView,这个模型视图包括视图名和需要传递给视图的模型数据。

2023-07-26 20:32:00 66

原创 Spring AOP和AspectJ区别

CGLIB动态代理通过生成被代理类的子类来实现代理,重写了被代理类的方法,并在方法调用前后添加了额外的逻辑。它要求被代理的类必须实现一个接口,JDK动态代理基于接口来创建代理对象,它可以在运行时动态生成代理类,实现了被代理对象的接口,并将方法调用委托给被代理对象。3、JDK动态代理通常比CGLIB动态代理更快,因为JDK动态代理直接操作接口,而CGLIB动态代理需要通过继承和方法重写来实现代理。Spring AOP是基于动态代理实现的,如果使用接口,则使用jdk动态代理,反之使用CGLIB代理实现。

2023-07-25 21:01:04 235

原创 Spring Bean的生命周期

1、bean创建前准备。Bean 在开始加载之前,需要从上下文和相关配置中解析并查找 Bean 有关的扩展实现,比如像init-method-容器在初始化 bean 时调用的方法、destory-method,容器在销毁 bean 时调用的方法。3、依赖注入阶段:如果被实例化的 Bean 存在依赖其他 Bean 对象的情况,则需要对这些依赖 bean 进行对象注入。2、创建实例阶段:这个阶段主要是通过反射来创建 Bean 的实例对象,并且扫描和解析 Bean 声明的一些属性。就可以被开发者使用了。

2023-07-25 20:21:33 133

原创 Spring:IOC

也就是我们把设计好的对象交给IOC容器控制管理,当我们需要的时候就直接从IOC容器中获取。而有了IOC容器管理这些bean以后,相当于我们把对象的创建和查找依赖对象的控制权交给了容器,这就是的对象与对象之间的依赖关系是一种松耦合状态,极大程度的提高了程序的灵活性和高可用性。例如,我们在类产生过程中需要去做一些事情,最直接的例子就是代理,如果有容器程序可以把这部分处理交给容器,应用程序则无需去关心类是如何完成代理的。对象创建不是一件容易的事情,在对象关系比较复杂时,如果是依赖程序员来维护,那是相当头痛的。

2023-07-25 16:44:08 47

原创 Spring:AOP

在任何一个系统中都是由不同的组件组成的,每个组件负责一块特定的功能,当然会存在很多组件时跟业务无关的,比如日志,事务,权限认证等核心服务组件,这些核心服务组件经常需要融入到具体的业务代码逻辑中,如果我们为每一个具体业务逻辑操作都添加这样的代码,很明显代码冗余太多,因此我们需要将这些公共代码逻辑抽象出来变成一个切面。AOP正是基于这种思路实现的,通过动态代理,将要注入切面的对象进行代理,在进行调用的时候,将公共的代码逻辑直接加进去,而不需要修改原有的业务逻辑代码,只需要在原来逻辑基础之上作一些增强功能即可。

2023-07-25 15:37:31 44

原创 Spring:什么是spring

spring是一个IOC和AOP容器框架,IOC又叫控制反转,AOP又叫切面编程,容器包含并管理应用对象的生命周期。Spring支持面向切面编程,并把应用逻辑和系统服务分开,在不修改代码的情况下可以对业务代码进行增强,这是通过动态代理机制实现的。通过spring IOC容器,可以将对象之间的依赖关系交给SpringIOC容器控制,避免了通过硬编码造成程序之间的过渡耦合。Spring 的Web框架是一个精心设计的框架,是web框架的一个很好的代替品。spring是轻量的,基本的版本大小为2M。

2023-07-25 14:41:39 42

原创 缓存穿透、缓存雪崩、缓存击穿

查询,由于频繁的访问数据库,会导致系统性能下降,最终导致缓存穿透。多级缓存可以避免缓存失效时的“一次性打击”,提高缓存服务的稳。(2)如果查询的值在数据库中不存在,直接将空对象存到缓存中去,下次查询就不要到。缓存雪崩:缓存中大量数据同时失效,导致大量请求直接打在数据库上,从而导致数据库。缓存击穿:查询一个已存在的数据但由于缓存失效了,大量请求同时访问数据库,导致数。在使用锁的时候,需要注意锁的粒度,尽量避免锁的粒度过大,影响系统。线程发送请求,请求后台线程异步地从数据库中加载数据,并将数据存储到缓存中。

2023-07-22 14:22:53 125

原创 Hadoop:HDFS读写数据的过程。

6、客户端开始往第一个DataNode上传第一个Block(先从磁盘读取数据放到本地内存缓存),以Packet为单位,当第一个DataNode收到一个Packet就会传给第二个DataNode,然后传给第三个DateNode。5、客户端通过FSDataOutputSTream模块请求第一个DataNode上传数据,第一个DataNode收到请求后会继续调用第二个DataNode,然后第二个DataNode调用第三个DataNode,将这个通信管道建立完成,三个DataNode逐级应答客户端。

2023-07-20 14:55:45 879

原创 Mysql:hash索引和B+树索引。

2、查询效率方面:哈希索引在等值查询上具有较好的性能,可以在常数时间复杂度上直接定位到目标数据,但对于范围查询和排序操作较差,因为原先是有序的键值,经过hash算法之后,存储位置随机分布。B+树索引使用的是多路平衡树结构,将索引键的值按照顺序保存到树节点中,并通过节点之间的指针进行查找。B+树索引底层是一个多路平衡查找树,对于每一次的查询都是从根节点出发,查找到叶子节点方可获的所查询的键值,然后根据查询判断是否需要回表查询。1、hash索引使用的是hash表结构,它将索引的值通过hash索引键的值。

2023-07-19 21:15:03 690

原创 Mysql:关于索引优化技巧。

MySQL

2023-07-19 20:59:19 75

原创 Mysql:如何在已建立的表上建立索引。

mysql

2023-07-19 20:51:43 645

原创 Mysql:什么是覆盖索引(covering index)

MySQL

2023-07-19 20:41:56 693 1

原创 HashTable和concurrentHashMap区别:

2、concurrentHashMap则采用分段枷锁机制,concurrentHashMap在对象中保存了segment数组,就类似于将整个hash表分成多个段,每个segment元素就类似于一个hashtable,这样,程序在执行put操作时通过hash算法定位到元素属于哪一个segement,然后再使用synchronized关键字对segment加锁即可。1、hashtable的效率比concurrentHashMap低。

2023-07-14 16:09:27 197 1

原创 HashMap的get()方法的执行过程:

hshmap

2023-07-14 15:39:44 276 1

原创 ArrayList中的put()方法的实现原理:

然后判断节点数是否大于8,数组长度是否大于等于64,如果是则执行转为红黑树操作。2、table不为空时,根据要插入的key计算对应的hash值,根据hash值确定再bable中的存储节点位置。如果该节点位置上没有元素,直接插入。如果存在元素,就要比较要插入的key值和节点元素的值是否相同,相同则直接覆盖。1、首先判断table是否为空null或者table长度是否为0,如果是,则调用resize()方法进行扩容。3、不同,则判断该节点是否为红黑树节点,如果是就执行putTreeVal()方法往树中插入。

2023-07-13 21:19:56 317 1

原创 ArrayList的扩容机制:

Arraylist

2023-07-13 21:06:21 169 1

转载 MongoDB常用查询语句

mongoDB

2023-07-11 18:59:55 15356

原创 MongoDB数据更新字段后会丢失没有更新的字段

mongoDB更新数据

2023-07-11 18:48:22 362

原创 使用@RefreshScope动态刷新mysql数据库变化

RefreshScope可以实现配置文件的动态刷新变化,而在生产实际当中,要进行数据迁移时,往往要改变数据的存储位置,使用新的数据库,这里简单介绍使用@RefreshScope来进行动态迁移数据库到一个新库,实现动态刷新。修改yml配置文件。因为我这里是在nacos上创建配置空间,在配置空间里写了一个Mysql共享配置和一个主业务配置res-foods。我这原来使用的数据库名为res,改到新的数据库yc119res。建立一个Maven工程,配置文件中 shared-configs:的配置。

2023-04-15 20:30:03 368

原创 Springboot使用MybatisPlus联接mysql

使用Druid数据源,联接Mysql

2023-03-21 20:28:40 294

原创 解决Vue页面加载时显示{{代码}}问题

解决页面显示时出现vue{{代码}}的情况

2022-10-10 20:54:42 2938

原创 java连续输入时,nextline()被跳过的原因

连续输入时nextLine()被跳过

2022-06-21 17:00:16 998 1

原创 Java:1、 编写一个关闭就结束程序的窗口,其中有一个文本框,它能跟踪记录鼠标在窗口中拖动时的坐标

public class pro extends JFrame { JTextField f; java实验2(String s){ f=new JTextField(20); setLayout(new FlowLayout()); this.setBounds(100,100,400,400); this.add(f); this.setVisible(true); this.setDefa.

2022-05-02 20:05:24 680

原创 Java:在指定文件目录下建立一个文本文件

import java.io.File;import java.io.IOException;//创建一个名为new.txt文件public class File1 { public static void main(String[] args) throws IOException { File f=new File("D:\\pro11\\src\\te\\Test2\\File1.java");//创建一个文件对象 System.out.println.

2022-04-29 20:33:59 3315

原创 C语言:顺序链表的插入与删除(整个程序)

#include"stdio.h"#include"string.h"#include"stdlib.h"#include"ctype.h"typedef struct node //定义结点{ char data[10]; //结点的数据域为字符串 struct node *next; //结点的指针域}ListNode;typedef ListNode * LinkList; //自定义LinkList单链表类型LinkList CreatListR1(); .

2022-04-25 20:31:56 1129

原创 C语言:用头插入法建立链表

//头插入法建立带头结点的单链表 LinkList CreatList(void){ char ch[10]; LinkList head, p; head=(LinkList)malloc(sizeof(ListNode)); head->next=NULL; printf("输入字符串个数\n"); int n; scanf("%d",&n); printf("输入字符串\n"); for(int i=0;i<n;i++){ scanf("%s",c.

2022-04-25 20:25:39 1401

原创 C语言:采用尾插入法建立链表

LinkList CreatListR1(void){ char ch[100]; LinkList head, p;//head为头结点,p为首元结点 head=(LinkList)malloc(sizeof(ListNode)); head->next=NULL; LinkList temp=head; printf("输入字符串个数:"); int n; scanf("%d",&n); printf("输入字符串 \n"); for(int i=0;i<n.

2022-04-25 20:24:32 1112

原创 java:创建一个窗口,创建子菜单并绑定

JFrame myf=new JFrame("连连看小游戏");//JFrame()创建一个窗口 JFame("创建窗口标题") myf.setBounds(100,100,300,300);//用setBounds()设置起始位置,大小 JMenuBar menuBar=new JMenuBar();//创建菜单条 JMenu menu0=new JMenu("开始游戏");//创建一个开始一个 开始游戏 的菜单 menuBar...

2022-04-12 21:34:56 4314

原创 python:游戏倒计时器

//仅供参考#绑定界面cdtimer = CountDown(root)#设置倒计时长cdtimer.start_timer(120)class CountDown(object): def __init__(self, master=None): self.root = master self.total_sec = 99999 self.root.resizable(width=False, height=False) .

2022-04-06 22:05:41 4684

原创 万年历:输入year年,month月,显示其日历

//万年历功能类public class MyCalender { //判断润平年功能 public boolean isRun(int year){ //普通年,被4整除,且%100!=0,是闰年 if (((year%4)==0) && ((year%100)!=0)){ //System.out.println(year+"是闰年"); return true; } .

2022-04-06 21:53:36 642

原创 扫雷小游戏

//表示棋盘中的点 点类public class Point{ //坐标 private int x; private int y;//运用一个二进制数0b0000 00 0 前四个0000表示1~8, 倒数第3,2表示打开状态 最后的0表示雷 //此点周围的地雷数1~8 二进制 0b0000 -0b1000 //当前状态 0没打开00 1 表示打开01 2 表示插旗10 //此点是否是雷 是雷 0b 1 ...

2022-04-04 21:40:53 3470

原创 动态数组的扩容核心方法

动态数组

2022-04-04 21:25:59 614

空空如也

空空如也

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

TA关注的人

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