自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (3)
  • 收藏
  • 关注

原创 Hadoop HA高可用原理介绍

hadoop集群高可用

2023-09-13 11:42:31 133

原创 YARN资源调度策略

YARN资源调度策略1.FIFO进先出按照任务提交的顺序,先来先服务不支持多队列2.容量调度器支持多队列,并且支持并行处理任务每个队列采用fifo调度器进行分配,如果优先级相同则按照先进先出顺序执行否则 按照优先级执行避免用户死锁循环 会限制每个用户占用最大资源量如果其他队列有闲置资源,当前队列会借用其他队列资源,但是每个队列都有占用资源最低限制不能超过这个值3.公平调度器支持多队列同个队列中的任务按照任务优先级来进行分配任务优先级越高则分配的资源越高,并且其他job也会分配

2023-09-11 15:31:12 145

原创 数据倾斜优化

1.开启Map-Side聚合后,数据会现在Map端完成部分聚合工作。1.使用map join算法,join操作仅在map端就能完成,没有shuffle操作,没有reduce阶段,自然不会产生reduce端的数据倾斜。Skew-GroupBy的原理是启动两个MR任务,第一个MR按照随机数分区,将数据分散发送到Reduce,完成部分聚合,第二个MR按照分组字段分区,完成最终聚合。skew join的原理是,为倾斜的大key单独启动一个map join任务进行计算,其余key进行正常的common join。

2023-08-29 17:12:44 181

原创 数据仓库总结

数据仓库总结

2023-08-29 11:30:45 1634

原创 HDFS核心理论学习记录

hdfs常考知识点

2023-03-08 00:36:59 341

原创 Redis相关知识点

Redis有几种数据类型以及使用场景首先redis支持五种数据类型Stringappend key value 向key中添加字符串 如果不存在该key 那么就相当于set一个新值strlen key 获取key 对中的 value 长度incr key 相当于 +1 操作decr key -1incrby key 10 步数为10增长 DECRBY key 10 步数为10 减少getrange key 0 3 相当于substring 截取字符串 0 -1 取得全部字符串s

2021-04-05 20:47:44 100

原创 缓存穿透和雪崩

缓存穿透默认情况下用户请求数据会从redis中查找如果没找到那么也就是缓存未命中,再在数据库中查找,可是一旦大量请求来的话,就会全部转移到数据库上,给数据库造成极大压力,导致数据库崩溃。解决方法布隆过滤器对所有可能查询用到的参数进行hash形式存储,以便快速确定是否有这个值在控制层进行拦截校验不通过直接打回,降低数据库压力缓存空对象假如没有查询到一个参数,就在缓存中放一个空对象用于处理后序请求这里有个问题是存放空对象也需要空间,且空对象存储效率不高,解决这个问题的缺陷就是设置较短过期时间

2021-03-11 10:15:56 102

原创 Redis集群

redis主从复制redis主服务器负责写,并且同步到从服务器,从服务器不可以更改数据,只负责读服务。因为业务主要就是读。主从复制的主要作用主要实现数据的热备份,数据冗余故障恢复 如果主服务器宕机,那么会迅速更换从服务器为新的主机负载均衡哨兵模式假如主从服务器有一台宕机我们手动去配置主服务器,会很不方便,哨兵模式的作用就是自动选取主服务器,也就是选老大的方式主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不

2021-03-10 21:56:59 111

原创 Redis持久化

凡是内存数据库都必须要有持久化操作,否则数据断电即失效。Rdbredis会单独fork一个子进程去持久化,会先将数据存放在临时数据文件中再用这个临时文件代替上次持久化文件整个过程主进程是不进行任何io操作的。所以会有极高的性能,如果对数据完整性不是很敏感则可以使用rdb。rdb比aof更加高效。他的缺点是最后一次持久化数据可能会丢失。rdb保存的文件默认是dump.rdb,这个可以再配置文件文件快照中配置触发rdb规则:save 规则 满足 save 900 1执行flushall退出re

2021-03-10 20:37:10 82

原创 常见排序算法总结

选择排序最没用且不稳定。 public static void selectsort(int arr[]){ if (arr.length<1) return ; for (int i = 0; i < arr.length-1; i++) { int minindex=i; for (int j = i+1; j < arr.length; j++) { .

2021-02-13 11:34:06 77

原创 简单认识Netty以及使用

netty介绍Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。netty服务器简单代码的实现首先编写服务端package com.fr.server.netty;import io.netty.bootstrap.Bootstrap;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.net

2021-01-29 16:16:48 135

转载 Netty线程模型

Netty线程模型传统io模型采用阻塞io获取数据每个链接都需要独立的线程去完成数据输入或处理,存在的问题并发数很大的话会占用很多线程资源并且线程切换也需要消耗很多连接成功后如果当前线程没有数据可读该线程会阻塞在read操作造成资源浪费reactor模型基于一个或多个客户端输入同时传递给服务器处理的模式服务端处理多个请求并且将请求分发给线程池去处理,reactor模式也叫做dispatcher模式reactor模式基于io复用监听事件,收到事件后分发给线程;

2021-01-28 14:51:15 99

原创 Redis介绍以及如何配置使用。

1.为什么要使用NoSql1.1单机时代数据放不下了数据库索引,一个机器存放不下访问量 一个机器适配不了1.2 memorycache +mysql+垂直拆分减轻数据库压力,如果数据不变的话放进缓存中。因为做一个网站80%情况都是在读,每次操作数据库那么会对数据库造成压力发展过程:优化数据库结构和索引-》文件缓存(io)-》memorycache-》2 Redis(remote dictionary server)概述Redis是一个开源的使用ANSI C语言编写、支持网络、可基

2021-01-08 14:18:02 221

原创 搭建本地https://start.spring.io服务。

1 下载服务源码。https://github.com/spring-io/initializr2 导入到本地并使用idea打开启动服务。3 maven 编译 root 项目4 启动5 测试

2021-01-06 14:08:31 773 1

原创 delete和truncate命令区别

delete 和Truncate都不会删除表结构.drop会.delete 不会清楚自增计数器 truncate 会重置自增计数器.truncate 不会影响事务delete 删除的问题.innodb 自增会从1开始 . 断电即失效.mylsam 自增不会改变 存在文件中序列化了,不会丢失....

2020-12-03 17:22:56 149

原创 集合为什么要有迭代器.

集合为什么要有迭代器.首先我们知道 单列集合collection可以使用for循环去遍历,那么为什么还需要迭代器呢?它相比于for循环遍历的优点是什么呢?我们可以想象一下.当我们遍历 list集合时,使用for循环需要通过 list.get(i) 索引去得到对象.这样的问题及时无法遍历set 集合.遍历set 集合可以通过for foreach遍历 但是这样代码复用性太差了.耦合性很高.那么如何去避免这样的问题呢?使用迭代器 iterator.我们发现 单列集合接口 实现了 iter

2020-12-03 10:59:42 1421 1

原创 tcp为什么要三次握手,四次挥手

1.OSI七层参考模型2. 连接是什么 ,怎么建立的.首先声明这种连接不是物理上的,并非点对点.当我们发送http数据请求的时候,由应用层请求发送数据,再到传输控制层建立信任链接.那么怎么建立信任链接呢?传输控制层分为Tcp和udp协议.什么是tcp协议他是面向连接的可靠的传输协议tcp为什么要三次握手第一次握手 客户端通过发送syn 建立连接的一个包 这个包不含我们要传输的数据的第二次握手 服务端收到后会发送 syn+ack 包返回给 客户端 .第三次 客户端根据返回的包

2020-11-29 22:32:04 115

原创 怎样理解高内聚低耦合?

在网上查了很多相关的资料不能更好地去帮我们理解高内聚与低耦合.以我自己的理解总结以下几点:什么是高内聚:在我们开发项目中的时候,需要有很多的模块,但模块与模块间肯定会存在相互调用.高内聚指的就是模块内部之间相互依赖的程度,依赖程度越高越好.什么是低耦合耦合性指的就是模块与模块之间的依赖程度,这种依赖程度越低越好.在java项目开发中,为什么会有很多模块,遵循的就是高耦合低内聚的原则,如果都放在一个包下 或一个类中,不便开发与维护.在微服务架构中,更要去遵循这种规则....

2020-11-29 13:27:49 543 1

原创 Java SSl加密技术的使用c/s.

1.概述他的作用就是加密传输时的数据保证数据不会被窃取.密钥作用:假如使用公钥加密,就需要私钥去解密.相反,私钥加密,就需要公钥去解密密钥都是来自于密钥库中的.2.具体流程前提工作,双边进行版本数据算法交流如果是一致的,那么开启第二步,双边验证身份:假如客户端发起请求数据密匙对,服务端接收后从信任库中查找,是否在信任库中,如果是则接收.同理也一样.也可以单边验证.数据加密解密:当前两步验证成功了,那么客户端可以通过密钥对数据流进行加密了,服务端接收后通过密钥进行解密就ok了.3.开始生成密

2020-11-27 18:00:59 610

原创 OpenFeign如何使用?

作用他的作用就是帮助我们优雅的发送http请求布置环境导入maven依赖 <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-jackson</artifactId> <version>9.5.1</version> </depend

2020-11-24 17:52:30 141

原创 Thymeleaf如何使用?

1.Thymeleaf是什么Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎Spring官方支持的服务的渲染模板中,并不包含jsp。而是Thymeleaf和Freemarker等,而Thymeleaf与SpringMVC的视图技术,及SpringBoot的自动化配置集成非常完美,几乎没有任何成本,你只用关注Thymeleaf的语法即可。Thymeleaf 如何使用导入maven依赖 <dependency> <

2020-11-22 21:46:24 2022 1

转载 OpenFeign的使用

OpenFeign的使用https://zhuanlan.zhihu.com/p/79875428

2020-11-18 17:30:53 199

原创 如何将本地jar包导入pom文件中?

有两种方法可以完成第一种使用命令导入本地maven仓库mvn install:install-file -Dfile=gateway-sms-1.0.jar -DgroupId=com.message.gateway -DartifactId=gateway-sms -Dversion=1.0 -Dpackaging=jar-DgroupId, -DartifactId, -Dversion:指定了这个jar包在repository的安装路径以及版本-DgroupId 自定义groupid-D

2020-11-18 16:44:21 1326 2

原创 CentOS7如何配置静态IP

配置静态ip进入 /etc/sysconfig/network-scripts/ifcfg-xxxifcfg-xxx 是你的无限网卡的名字sudo vim ifcfg-xxx添加如下配置IP地址和网关要根据所连wifi或以太配置.TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticIPADDR=192.168.1.149NETMASK=255.255.255.0GATEWAY=192.168

2020-11-18 16:35:54 95

转载 TCP与UDP的区别

TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。 而且,因为TCP有确认机制、三次握手机制,这些也导致T

2020-11-15 21:52:48 434

原创 如何使用Git

最近找到了个实习,网上搜了实习需要准备些什么,git的使用是必不可少的,以前没有系统的学习.这次系统的记录一下

2020-11-14 22:30:12 160

原创 Exception与Error之间的区别?

由上图中他们都继承了Throwable接口.区别:Error是系统中的错误,程序员是不可以改变和处理的.实在编译时候出现的错误只能通过修改程序才能修正.一般指的是与虚拟机相关的问题.比如oom.Exception他可以被捕获并处理.应当尽量捕获,尽可能使程序恢复运行.它又分为两类:编译时异常:需要trycatch.runtime异常:对于程序不可恢复的都用runtime异常.常见的RuntimeException异常:illegalArgumentException:此异常表明向方法传递了.

2020-11-13 10:26:09 279

原创 Cookie和Session的区别是什么?

Session:在计算机中,尤其是在网络应用中,称为"会话控制"。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可

2020-11-13 10:02:21 265

转载 马丁富勒微服务论文连接

http://blog.cuicc.com/blog/2015/07/22/microservices/#

2020-11-10 09:16:12 143

原创 Springboot的使用以及配置.

Springboot的使用以及配置.1.什么是Springboot1.1 首先我们要了解什么是Spring1.2 他是如何简化开发的1.什么是Springboot1.1 首先我们要了解什么是SpringSpring是2003年开发出来的一种轻量级框架,他出现的目的就是简化企业级应用开发.1.2 他是如何简化开发的pojo的轻量性和最小侵入性pojo就是一个类,spring不会像EJB一样需要在原本我们的代码上造成大量改动,需要继承方法之类的,Spring尽量不会去修改我们的代码,他只需要属性,

2020-11-09 14:00:35 431

原创 Java各种锁的含义以及使用场景

共享锁(读锁)如果事务对数据A添加共享锁后,其他事务只能对A添加共享锁不可以添加排它锁,他可以被多线程共同读取,但无法区修改添加删除数据,只可以被读。排它锁(写锁)排他锁又叫做写锁,独占锁,当事务T对数据A添加排它锁后,该事物只允许读取A和修改,其他的事务都不可以在对数据A添加锁,直到事务提交完成后。他可以保证其他事务不能读取该数据和写数据。互斥锁其实概念和排他锁差不多,这里可以参考互斥锁和读写锁的区别,互斥锁只允许一个线程访问近来,过程中其他线程必须等待。悲观锁悲观锁顾名思义,就是很悲观,当

2020-11-05 22:23:45 1011

原创 JUC知识点学习

1. 什么是JUC?JUC就是java.util .concurrent工具包的简称。这是一个处理线程的工具包.2. 并发和并行?单核并发就是多个线程操作同一个资源.本质就是想让电脑效能更高.充分利用cpu资源.并行就是多核执行多个任务.3. 线程和进程进程中至少包含一个线程.进程是程序的一次执行过程一个程序可以有多个进程.进程有:初始态,执行态,等待状态,就绪状态,终止状态。线程:线程是CPU调度和分派的基本单位它可与同属一个进程的其他的线程共享进程所拥有的全部资源。.进程和线程的区别

2020-10-20 22:29:57 642

原创 java注解的使用复习

面试复习注解

2020-10-20 13:27:19 63

原创 强软弱虚引用.

强软弱虚引用.强引用:他是我们最常见的引用object o=new Object();这个就是强引用.当我们修改他为null时他才可能被回收.o=null;因为他不存在指向了.软引用:垃圾回收器,内存不够的时候回收.使用软引用需要导包.软引用我们需要在泛型中填入我们需要引用的对象.为什么要使用软引用:因为他特别适合当缓存.当超出堆内存的时候,他就会被gc回收.弱引用:垃圾回收器看到就会回收弱引用是为了解决某些地方内存泄露的问题.主要是应用在ThreadLocal里.虚引用Phanto

2020-10-19 22:33:45 122

原创 堆里面的分区:伊甸园,from,to老年区。说说他们的特点。

堆里面的分区:伊甸园,from,to老年区。说说他们的特点。堆中的分区主要分为新生区;它又分为幸存1区和幸存2区,伊甸园区.老年区首先新生区:大部分的对象都是在伊甸园区创建并回收的,回收后幸存的对象会被放到幸存区(to)区,幸存区1,2他俩是互相交换的,这其中牵涉到了复制算法,复制算法主要被应用在新生区中的幸存区,具体流程就是在幸存区中将活的对象进行复制到另一个幸存区中,留下来的对象就会被清理掉,不断地交换.这样做的缺点就是占用空间大,用到的空间只有开辟的1/2.复制算法主要是根据GCroo

2020-10-19 16:29:02 4657

原创 jvm内存模型,分区。详细到每个区都放什么。

jvm内存模型,分区。详细到每个区都放什么。jvm内存模型按照线程分可分为线程独占和线程共享两种.线程独占 本地方法栈,虚拟机方法栈,程序计数器.线程共享 堆,方法区首先本地方法栈:本地方法栈放的就是本地方法的栈针,这种方法一般是由c语言底层写的.通过JNI调用.虚拟机方法栈:它是以栈帧为单位存储的.栈帧中包含方法索引,输入输出参数,局部变量八大基本类型,操作数栈,动态链接,父帧,子帧.堆...

2020-10-19 16:01:55 918

原创 JVM学习笔记

在面试的时候,很多面试官都会问到关于jvm相关的面试题,但自己做了那么长时间的java开发,往往忽略了这方面的知识.理解底层是对一个程序员尤为重要的.这是我跟着b战狂神学习的笔记.首先出几道面试题:感觉很懵,一道题都不会.那就由浅入深,学习jvm吧.1.jvm的位置首先我们要知道jvm试运行在操作系统上的,程序运行在jvm中,jre包含jvm.2.jvm的体系结构基本的执行流程.在这个区域一定不会有垃圾回收,所谓的jvm调优99%都是在堆中3.类加载器类加载器的作用:加载class

2020-10-12 11:08:15 189

原创 复习多线程基础

1.线程和进程的区别关系首先要了解进程和线程,就要先了解什么是程序,程序就是指令集和数据的有序集合,其本身并没有运行的含义,是一个静态资源.进程:进程是程序执行一次的过程,他是一个动态概念,是系统分配资源的一个单位.线程 :通常一个进程中可以包含多个线程,一个进程至少含一个线程,线程是cpu调度和执行的单位…其实真正的多线程指的是多核cpu,如果模拟出来的多线程,即在单核服务器下,同一个时间点,只能执行一行代码,只不过cpu切换速度很快.造成执行多线程的错觉.创建线程有三种方式第一种:继承Th

2020-10-09 16:10:56 78

原创 SSM返回Json数据乱码

在复习SSM是返回数据的时候出现了乱码首先在web界面按F12查看返回的编码是iso所以在mvc中配置一下 <bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8" /> </bean> &l

2020-10-09 11:12:57 275

原创 Controller是线程安全的吗

Controller是线程安全的吗最近学长被问到了这个面试题,自己也查阅了相关的资料总结如下,在Springmvc中,所有的bean实例都是交给ioc容器去管理,默认Scope是单例模式,所以他是线程不安全的.解决方法1将创建的Controller的Scope设置成为多例prototype.但这样会消耗很多资源,并且这种方式只对于该Controller中非静态成员变量有用,如果是静态资源他还是会线程不安全.2单例模式下需要线程安全的话必须使用ThreadLocal来封装变量ThreadLocal

2020-10-07 18:58:39 2607

室内环境监测系统web端device.zip

室内环境监测系统web端device.zip

2021-03-11

groupchat.zip

NIO群聊简单实现

2021-01-28

RMI.zip 后台门禁项目

RMI接口,实现远程方法调用。

2020-12-29

空空如也

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

TA关注的人

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