自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL的10种常用数据类型

MySQL的数据类型常用的数据类型有:整型(xxxint) 位类型(bit) 浮点型(float和double、real) 定点数(decimal,numeric) 日期时间类型(date,time,datetime,year) 字符串(char,varchar,xxxtext) 二进制数据(xxxBlob、xxbinary) 枚举(enum) 集合(set)1、整数(xxxint)整数列的可选属性有三个:M: 宽度(在0填充的时候才有意义,否则不需要指定) uns.

2022-04-29 14:52:16 41280

转载 Spring事务的传播级别

一、简单说明二、具体案例描述1.PROPAGATION_REQUIRED@Transactional(propagation=PROPAGATION_REQUIRED)pubilc void methodA(){ doPreSomething; methodB(); doSufSomething;}@Transactional(propagation=PROPAGATION_REQUIRED)pubilc void methodB(){

2022-04-28 15:17:03 1476

转载 Node.js 18 新特性解读

Node.js 刚刚发布了 18.0.0 版本,内置了 fetch、node:test 等标准模块。如何快速体验推荐用fnm,nvsnvs,nvmnvm等 Node.js 版本管理器。$ fnm install 18Installing Node v18.0.0 (arm64)$ fnm use 18Using Node v18.0.0$ node -vv18.0.0复制代码需要注意的是,该版本不是 LTS 版本,请勿在生产环境使用,需要等到 2022-10-25 才会成.

2022-04-28 14:35:50 1387

转载 Scala中的底类型(bottom types)

在Scala中存在两个比较特殊的类,Scala.Null和Scala.Nothing。它们是Scala面向对象的类型系统用于处理一些“极端情况”的特殊类型。Null类是null引用的类型,他是每个引用类(即继承自AnyRef的类)的子类,null值可以用来给引用类初始化。但是Null并不兼容于值类型,即你不可能将null赋值给一个整数变量:val i: Int = null以上写法是不对的。Nothing位于Scala类继承关系的最底部,它是每个其他类型的子类型,并且,不存在这个类型的任何值

2022-04-18 11:11:15 248

转载 Spark与Flink 架构之间对比区别

Flink和Spark对比通过学习,我们了解到,Spark和Flink都支持批处理和流处理,接下来让我们对这两种流行的数据处理框架在各方面进行对比。首先,这两个数据处理框架有很多相同点。•都基于内存计算;•都有统一的批处理和流处理APl,都支持类似SQL的编程接口;•都支持很多相同的转换操作,编程都是用类似于Scala Collection APl的函数式编程模式;•都有完善的错误恢复机制;•都支持Exactly once的语义一致性。当然,它们的不同点也是相当明显,我们可以从4

2022-04-07 15:10:12 1840

转载 MONGODB性能问题诊断与优化

mongodb目前在业界的使用一般可分为两种架构:主从复制集和分片复制集集群。因为分片复制集包含了主从复制集的功能,所以后面将以分片复制集为案例做说明。伴随数据量的增长和业务压力的增大,经常有接收到mongodb分片集群的性能告警邮件。我所维护的几套分片集群有时一天能收到200来封告警邮件,不胜其烦。告警邮件大致分为三类:1. cpu 负载过高。cpu load average 值超过30,cpu 使用率超过50%。2. 空闲内存不足,系统对swap 分区使用超过50%。3. IO

2022-04-07 14:46:29 3543

转载 4 种 SpringBoot 项目鉴权方式

传统 AOP对于这种需求,首先想到的当然是 Spring-boot 提供的 AOP 接口,只需要在 Controller 方法前添加切点,然后再对切点进行处理即可。实现其使用步骤如下:使用 @Aspect 声明一下切面类 WhitelistAspect;在切面类内添加一个切点 whitelistPointcut(),为了实现此切点灵活可装配的能力,这里不使用 execution 全部拦截,而是添加一个注解 @Whitelist,被注解的方法才会校验白名单。在切面类中使用 spring

2022-04-07 14:35:58 3695

转载 如何保证kafka消费的顺序性

在Kafka中Partition(分区)是真正保存消息的地方,发送的消息都存放在这里。Partition(分区)又存在于Topic(主题)中,并且一个Topic(主题)可以指定多个Partition(分区)。在Kafka中,只保证Partition(分区)内有序,不保证Topic所有分区都是有序的。所以 Kafka 要保证消息的消费顺序,可以有2种方法:一、1个Topic(主题)只创建1个Partition(分区),这样生产者的所有数据都发送到了一个Partition(分区),保证了消息的消费顺

2022-04-02 14:54:05 21526 3

转载 前端高效开发必备的 js 库

之前端需要学习哪些 js 库, 主流框架应该学 vue 还是 react ? 针对这些问题, 笔者来说说自己的看法和学习总结。前端由于入行门槛低, 更新换代很快, 每年都会有大量新的框架和库出现, 也有大量库被淘汰。所以我们大可不必担心, 保持自己的学习步伐, 按需学习即可。接下来笔者也是按照不同前端业务的需求, 来整理一份能快速应用到工作中的js库, 以提高大家的开发效率.js常用工具类 lodash一个一致性、模块化、高性能的 JavaScript 实用工具库。 ramda一..

2022-04-02 14:44:50 465

转载 Java常用实现八种排序算法与代码实现

一、交换排序所谓交换,就是序列中任意两个元素进行比较,根据比较结果来交换各自在序列中的位置,以此达到排序的目的。1. 冒泡排序冒泡排序是一种简单的交换排序算法,以升序排序为例,其核心思想是: 从第一个元素开始,比较相邻的两个元素。如果第一个比第二个大,则进行交换。 轮到下一组相邻元素,执行同样的比较操作,再找下一组,直到没有相邻元素可比较为止,此时最后的元素应是最大的数。 除了每次排序得到的最后一个元素,对剩余元素重复以上步骤,直到没有任何一对元素需要比较为止。

2022-04-02 14:29:38 19609 9

转载 Scala下划线用法总结

Scala 是一门以 java 虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。scala 单作为一门语言来看, 非常的简洁高效,在 Scala 中存在很多让代码更加简洁的语法,下划线“_”便是其中一个。下划线的普遍用法总结如下:1. 用于变量初始化在 Java 中,可以声明变量而不必给出初始值,在 Scala 中,变量在声明时必须显示指定,可以使用下划线对变量进行初始化。而且该语法只适用于成员变量,不适用于局部变量。例:2. 用于导包引

2022-04-01 15:25:24 422

转载 JUC 之多线程锁的 8 个问题分析

1. 程序代码package com.atguigu.thread;import java.util.concurrent.TimeUnit;class Phone{public synchronized void sendSMS() throws Exception{System.out.println("------sendSMS");}public synchronized void sendEmail() throws Exception{System.out.println("-----..

2022-04-01 15:21:32 98

转载 web 前端 AngularJS 四大特征

AngularJS 的设计思想与 jquery 完全不同,前者操作的是变量 $scope $http,后者操作的 DOM。MVC 模式Angular 遵循软件工程的 M(数据)V(视图)C(控制器)模式,并鼓励展现,数据,和逻辑组件之间的松耦合.通过依赖注入(dependency injection),Angular 为客户端的 Web 应用带来了传统服务端的服务,例如独立于视图的控制。 因此,后端减少了许多负担,产生了更轻的 Web 应用。Model:数据,其实就是 angular 变量(

2022-04-01 15:16:18 96

转载 关于三层架构和 MVC

1、三层架构我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发。那么在 B/S 架构中,系统标准的三层架构包括:表现层、业务层、持久层。三层架构在我们的实际开发中使用得非常多,所以我们课程中的案例也都是基于三层架构设计的。三层架构中,每一层各司其职,接下来我们就说说每层都负责哪些方面:表现层:也就是我们常说的web层。它负责接收客户端请求,向客户端

2022-02-28 11:13:33 308

转载 Hadoop运维工具箱之HDFS异构存储

异构存储主要解决,不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。Hadoop的存储类型和存储策略有;1、查看当前有哪些存储策略可以用[atguigu@hadoop102 hadoop-3.1.3]$ hdfs storagepolicies-listPolicies2、为指定路径(数据存储目录)设置指定的存储策略hdfs storagepolicies -setStoragePolicy -pathxxx -policy xxx3、获取指定路径(数据

2022-02-28 11:12:07 253

转载 React应用(基于React脚手架)

使用create-react-app创建react应用1. react脚手架1.1. xxx脚手架: 用来帮助程序员快速创建一个基于xxx库的模板项目1.1.1. 包含了所有需要的配置(语法检查、jsx编译、devServer…)1.1.2. 下载好了所有相关的依赖1.1.3. 可以直接运行一个简单效果1.2. react提供了一个用于创建react项目的脚手架库: create-react-app1.3. 项目的整体技术架构为: react + webpack + e...

2022-02-28 11:07:52 163

转载 hdfs数据误删后恢复方式

我们知道hdfs是hadoop体系上的文件系统,负责具体的数据文件存储,且如果一旦hdfs文件被误删除后,尤其是重要数据,对公司来说影响非常大。所以需要提前做一些安全预防措施,例如使用Hdfs Trash机制,或者重要目录应用Hdfs SnapShot功能,然后针对于删除的文件或者目录可以通过trash或者SnapShot机制来进行恢复,如果数据确实已经删除了(例如直接通过hadoop api进行delete,未配置SnapShot),如果想恢复数据,就需要快速采取一定的措施了。下面我们来分别介绍下这些恢复

2022-02-25 11:55:17 4940

转载 Redis持久化RDB和AOF区别

RDBRDB是Redis内存到硬盘的快照,用于redis持久化,创建RDB二进制文件,将存储在内存中的数据,持久化的放到硬盘中,当我们需要这些数据的时候,启动载入RDB文件,数据将会被存入内存中,其实RDB就是一种快照的方式持久化存储数据,也可以作为一种复制媒介。触发机制--主要三种方式save 同步命令(会阻塞redis) bgsave 异步命令(fork) 自动#关闭自动保存配置#save 900 1 #900秒 改了一次就自动生成RDB文件#save 300 10 #300秒修改了1

2022-02-25 11:28:35 4295 1

转载 JUC 中 4 个常用的并发工具类

CountDownLatchCountDownLatch是我目前使用比较多的类,CountDownLatch初始化时会给定一个计数,然后每次调用countDown() 计数减1,当计数未到达0之前调用await() 方法会阻塞直到计数减到0;使用场景:多用于划分任务由多个线程执行,例如:最近写个豆瓣爬虫,需要爬取每个电影的前五页短评,可以划分成五个线程来处理数据。通过latch.await()保证全部完成再返回。publicvoidlatch()throwsInterrup...

2022-02-25 10:28:47 301

转载 大数据培训Kafka生产优化之集群重要参数配置与优化设置(二)

Kafka集群所有重要参数配置详解与优化设置成文时间:2022年2月22日。参数如有变化,请以官网参数和默认值为准!今天为大家带来Kafka生产优化系列的第二篇 —— Kafka集群所有重要参数配置详解与优化设置。飞哥已将Kafka集群中所有重要参数全部分类总结,并具体讲解每个参数的含义。如果各位同学在面试或者生产中如果遇到Kafka性能优化方面的问题,可以参考此文配置进行具体优化。由大海哥主讲的更详细的《Kafka3.0入门、源码、优化与配置》系列课程,可以B站搜索“尚硅谷”进

2022-02-24 11:49:07 143

转载 AngularJS四大特征

AngularJS的设计思想与jquery完全不同,前者操作的是变量$scope $http,后者操作的DOM。MVC 模式Angular遵循软件工程的M(数据)V(视图)C(控制器)模式,并鼓励展现,数据,和逻辑组件之间的松耦合.通过依赖注入(dependency injection),Angular为客户端的Web应用带来了传统服务端的服务,例如独立于视图的控制。 因此,后端减少了许多负担,产生了更轻的Web应用。打开百度APP看高清图片Model:数据,其实就是angular变量(

2022-02-24 11:46:25 62

原创 JUC之多线程锁的8个问题分析

1. 程序代码package com.atguigu.thread;import java.util.concurrent.TimeUnit;class Phone{public synchronized void sendSMS() throws Exception{System.out.println("------sendSMS");}public synchronized void sendEmail() throws Exception{System.out.println("-----..

2022-02-24 11:44:35 51

原创 新特性,可以替代Canal的数据同步方案—Flink-CDC

一、CDC简介CDC是Change Data Capture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。CDC主要分为基于查询和基于Binlog两种方式,我们主要了解一下这两种之间的区别:Flink社区开发了 flink-cdc-connectors 组件,这是一个可以直接从 MySQL、PostgreSQL等数据库直接读取全量数据和增量变更数据的 ..

2022-02-23 11:32:36 1812

转载 js之this指向问题-函数执行上下文中的 this

函数执行上下文中的 this在上面我们知道,一般的调用方法,是调用window上的方法。那怎么获取当前函数的this呢?1 通过 call/bind/apply 改变 thisthis.myName = 'jszhang';let foo = function() { this.myName = 'zhangsan';}foo();console.log(window.myName); // 输出啥?console.log(foo.myName); // 输出啥?...

2022-02-23 11:30:44 184

转载 ZooKeeper集群配置详解

1. 伪分布式单机配置说明:服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)这个配置项的书写格式比较特殊,规则如下:server.N=YYY:A:B 其中,N表示服务器编号,YYY表示服务器的IP地址,A为LF通信端口,表示该服务器与集群中的leader交换的信息的端口。B为选举端口,表示选举新leader时服务器间相互通信的端口(当leader挂掉时,其余服务器会相互通信,选择出新的leader)一般来说,java培训集群中每个服务器的A端口都是

2022-02-23 11:29:00 1152

原创 一文详解Hive的谓词下推

谓词,是指用来描述或判断客体性质、特征或客体之间关系的词项。在SQL中即返回值为布尔值的函数。谓词下推,在Hive中叫Predicate Pushdown,含义是指在不影响结果的前提下,尽量将过滤条件提前执行,使得最后参与join的表的数据量更小。谓词下推后,过滤条件将在map端提前执行,减少map端输出,降低了数据传输IO,节约资源,提升性能。大数据培训在Hive中通过配置hive.optimize.ppd参数为true,开启谓词下推,默认为开启状态。一、表的分类首先定义一下参与join的

2022-02-22 11:18:36 1196

转载 Lock简介与初识AQS

Lock简介我们下来看concurent包下的lock子包。锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源。在Lock接口出现之前,java程序主要是靠synchronized关键字实现锁功能的,而java SE5之后,并发包中增加了lock接口,它提供了与synchronized一样的锁功能。虽然它失去了像synchronize关键字隐式加锁解锁的便捷性,但是却拥有了锁获取和释放的可操作性,可中断的获取锁以及超时获取锁等多种synchronized关键字所不具备

2022-02-22 11:14:39 152

原创 jquery常见事件动画

一、jquery事件1、事件对象$(document).click(function (ev) {//不用考虑兼容,就通过事件处理函数的参数传入//jq事件对象 console.log(ev);//原生对象 console.log(ev.originalEvent);// 鼠标相对于文档的距离 console.log(ev.pageX, ev.pageY);// 鼠标相对于屏幕可视区的距离 console.log(ev.clientX, ev.c...

2022-02-22 10:46:37 477

原创 大数据自编写RPC通信实例解析HadoopRPC通信原理

1、HDFS、YARN、MapReduce三者关系2、需求解说模拟RPC的客户端、服务端、通信协议三者如何工作的3、代码编写1)在pom.xml中增加如下依赖2)大数据培训在项目的src/main/resources目录下,新建一个文件,命名为“log4j.properties”,在文件中填入log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log

2022-02-21 11:46:00 698

转载 RabbitMQ常见操作命令

RabbitMQ 管理页面该如何使用除了通过 Web 管理页面来进行管理之外,我们也可以通过命令行来进行管理。也在另类玩法!使用 REST API 操作 RabbitMQ一文中介绍过一些相关的 REST API,在方便发送 HTTP 请求的地方调用这些 REST API,还是非常方便的。但是,在一些不方便发送 HTTP 请求的地方,这些 REST API 用着并不太方便,那么今天就给大家再来介绍 RabbitMQ 的另一种玩法---rabbitmqadmin。1. rabbitmqadmin

2022-02-21 10:58:35 2629

转载 Ajax中readyState的五个状态值

我们在做每件事情的时候都会分先后循序,什么时间段做什么事情,而 ajax 亦是一样,我们在使用原生 ajax 发送请求时,也是有一个过程,而聪明到没头发(聪明绝顶)的程序员将这个过程分为了五个阶段,每一个阶段对应不同的事件。readyState的五个状态值分别是值 状态 描述 0 UNSENT 代理被创建,但尚未调用 open() 方法。 1 OPENED open()方法已经被调用。 2 HEADERS_RECEIVED send()..

2022-02-21 10:34:12 975

原创 如何进行hive查询优化

hive查询优化的主要目的是提升效率,下面总结了查询中经常使用的优化点:1.少用count(distinct )建议用group by 代替 distinct 。原因为count(distinct)逻辑只会有一个reducer来处理,即使设定了reduce task个数,set mapred.reduce.tasks=100也一样,所以很容易导致数据倾斜。坊间传闻,在面对大数据量时很多大厂都“明令禁止使用distinct”。如sql语句:select count(distinct uid)...

2022-02-18 14:01:44 3261 1

转载 MyBatis必看常见面试题

1.什么是MyBatis?MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架2.MyBatis 的缓存?MyBatis 的缓存分为一级缓存和二级缓存一级缓存放在 session 里面,默认就有二级缓存放在它的命名空间里,默认是不打开的使用二级缓存属性类需要实现 Serializable 序列化接口(可用来保存对象的状态),可在它的映射文件中配<cache/>3.Mybatis 是如何进行分页的?分页插件的原理是什么?1)Mybatis 使用

2022-02-18 11:21:21 276

转载 Node.js 常用工具

util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心 JavaScript 的功能 过于精简的不足。使用方法如下:const util = require('util');util.callbackifyutil.callbackify(original)将async异步函数(或者一个返回值为Promise的函数)转换成遵循异常优先的回调风格的函数,例如将(err, value) => ...回调作为最后一个参数。在回调函数中,第一个参数为拒绝的原...

2022-02-18 10:42:39 69

转载 2022,大数据Kafka全新学习路线升级

摘要:大海能够带走你的哀愁,就像带走每条河流……周三,一个普通的日子。你孑然一身,但海哥陪你一起过!打怪升级涨姿势,不是节日胜似节日。海哥闭关修炼多日,再次激情发新:尚硅谷Kafka新版视频教程发布!大数据时代,不会Kafka你就OUT了!Kafka是高吞吐量的分布式发布订阅消息系统,可以处理消费者在网站中的所有动作流数据。作为大数据领域全面且开源的分布式事件流平台,已成为大数据从业人员的必备技能。Kafka新版视频相较原版全方位大升级!基于Kafka 3.x最新

2022-02-17 11:27:53 219

原创 带你了解ZooKeeper,是什么?怎么用?

1. 是什么ZooKeeper顾名思意:动物园管理员。1.1 应用场景它是拿来管大象(Hadoop)、蜜蜂(Hive)、小猪(Pig)的管理员, Apache Hbase和Apache Solr以及阿里的Dubbo等项目中都采用到了Zookeeper。一句话:java培训ZooKeeper是一个分布式协调技术、高性能的,开源的分布式系统的协调(Coordination)服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用程序一致

2022-02-17 11:00:27 871

原创 Hive内置操作符之关系运算符

关系运算符比较两边的结果并返回一个结果值:TRUE或FALSE值,这取决于两边的操作数之间的比较是否有效,因为比较的两边有可能出现null值的情况。除了is null,is not null之外,null在任何关系运算符中出现结果都是null值。1. 等值比较: =语法:A=B操作类型:所有基本类型描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A与表达式B相等,则为TRUE;否则为FALSEhive> select 1 from t_fin_dem

2022-02-16 11:56:17 493

原创 Node.js中module.exports 和exports使用误区

一、module,module.exports ,exports含义module对象:在每个 .js 自定义模块中都有一个 module 对象,它里面存储了和当前模块有关的信息module.exports 对象:在node里自定义的模块中,可以使用 module.exports 对象,将自定义的模块内部分的成员共享出去被使用。当外界(其他js文件)用require() 方法导入自定义模块时,得到的就是 module.exports 所指向的对象exports对象:由于 module.exports

2022-02-16 11:32:46 952

原创 JAVA 23种设计模式详解

单例设计模式这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。工厂模式简单工厂模式封装了创建对象的过程,可以通过参数直接获取对象。把对象的创建和业务逻辑层分开,这样以后就避免了修改客户代码,如果要实现新产品直接修改工厂类,而不需要在原代码中修改,这样就降低了客户代码修改的可能性,更加容易扩展。工厂方法模式定义一个

2022-02-16 11:09:43 2112

空空如也

空空如也

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

TA关注的人

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