自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 资源 (4)
  • 收藏
  • 关注

原创 Docker学习笔记二

从机设置master,master_log_file、master_log_pos 这俩都需要读取最新的主机信息。当master重连以后,不会变成主机,会变成现在master的从机。在 /zhuo/mysql/master/conf 下新建my.cnf 配置文件,保存如下内容并重启主机服务。在 /zhuo/mysql/slave/conf 下新建my.cnf 配置文件,保存如下内容并重启从机服务。此时节点加入了集群中,但是并没有分配slot,所以这个节点并没有真正的开始分担集群工作。

2024-03-16 17:24:02 645

原创 Docker 学习笔记一

Docker使用Linux桥接,在宿主机默认创建一个docker容器网桥(docker0),在内核层连通了其他虚拟或物理网卡,docker默认指定了docker0接口的IP地址和子网掩码,启动容器时会根据docker网桥的网段分配给容器IP(Container-IP),同时docker网桥是每个容器的默认网关,因为在统一宿主机的容器都接入同一个网桥,这样容器之间就能通过容器的Container-IP直接通信。当容器启动时,一个新的可写层被加载到镜像的顶部,这一层被叫做容器层,容器层之下的都叫镜像层。

2024-03-16 17:23:11 894

原创 ElasticSearch 数据分片

副本分片(replica):副本是对主分片的Copy,同步存储主分片的数据内容。查询:当协调节点收到查询 request 时,先在本地创建一个大小为 from + size 的空优先队列,然后将请求广播到索引的每个分片中,分片在本地执行查询并添加结果到本地有序优先队列中后返回给协调节点,协调节点将分片级的结果合并到自己的有序优先队列里并返回。Master节点:职责是和集群操作相关的内容,如创建或删除索引,跟踪哪些节点是集群的一部分,并决定哪些分片分配给相关的节点,稳定的主节点对集群的健康是非常重要的。

2023-12-22 14:41:10 1250

原创 VUE2学习总结

1、尽量不要在数据库中出现 名称为 id 字段,避免和内置函数id冲突。2、写模板的时候,将多个页面用到的静态文件(css,js)的导入放在母版中,并创建一些块级区域用于继承给子类<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title&...

2023-04-12 11:52:47 202 1

原创 Java常见问题总结五

1、垃圾回收方式SerialGC(串行垃圾回收):为单线程环境设计且使用一个线程进行垃圾回收,会暂停所有的用户线程。ParalleGC(并行垃圾回收):对过GC线程并行工作,此时用户线程是停止的。ConcMarkSweep(CMS):用户线程和GC线程同时执行,不需要停顿用户线程。G1垃圾回收器:将内存分割成不同的区域然后并发的进行垃圾回收。 2、查看当前默认的垃圾回收器java -XX:+PrintCommandLineFlags -version3、7大垃圾回收器在新生代主

2023-02-23 13:14:05 460 2

原创 Java常见问题总结四

一、ArrayList 和 LinkedList的区别1. 底层数据结构不同。ArrayList底层是基于数组实现的,LinkedList底层是基于链表文现的2. 由于底层数缺结构不同,他们所适电的场景也不同,Araylist史适合随机查战,LinkedList史适合期余和添加,查询、添加、删余的时间复杂度不同3. ArrayList和LinkedList都实现了list接口, 但是LinkedList还额外实现了Deque接口,还可以当做双端队列4. ArrayList需要考虑扩容(还不知道

2023-02-15 11:11:17 375 1

原创 ES6---ES11

ES6---ES11新特性

2022-11-01 13:18:10 1190 1

原创 Js学习笔记(二)

JS 原型、创建对象、操作dom对象

2022-10-22 12:54:50 340

原创 CSS动画 && Flex弹性布局 && Less

CSS动画 && Flex弹性布局 && Less

2022-09-09 14:32:23 452

原创 算法笔记(一)

1. 求最大公约数(欧几里得算法)def gcd(a,b): return a if b == 0 else gcd(b, a % b)2. 判断两个时间段是否有交集def book(self, start, end): for x, y in self.timeList: # 如果时间段1的结束时间大于时间段2的开始时间 并且 时间段1的开始时间小于时间段2的结束时间 就是有交集的情况 if(x < end and y > sta

2022-07-08 11:24:42 363

原创 浅谈设计模式(六)

一、备忘录模式用一个中介对象封装一系列交互的对象,使得各个对象不需要显示的交互引用,松散耦合,属于行为模式。 发起方:记录当前时刻的内部状态信息,提供创建备忘录和恢复备忘录数据的功能。备忘录角色:负责存储发起人的内部状态,在需要的时候提供这些内部状态给发起人。管理者角色:对备忘录进行管理,提供保存与获取备忘录的功能,但其不能对备忘录的内容进行访问与修改。客户端调用:二、中介者模式又叫调停模式,它定义了一个中介角色来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它

2022-06-29 10:47:43 99

原创 浅谈设计模式(五)

一、观察者模式又被称为发布/订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系。Observer(抽象被观察者): 抽象主题角色把所有观察者对象保存在一个集合里。Subject:抽象观察者,是观察者的抽象类。QQNotice:具体观察者,以便在得到主题更改通知时更新自身的状态。QQClient:具体主题(具体被观察者),该角色将有关状态存入具体观察者对象,在具体主题的内部状态发生改变时,给所有注册过的观察者发送通知。观察者被观察者客户端调用二、访问者模式概念:封装

2022-06-29 10:47:31 106

原创 浅谈设计模式(四)

一、组合模式组合模式又叫部分整体模式,它创建了对象组的树形结构。清楚地定义分层次的复杂对象,表示对象的全部或部分层次,它让客户端忽略了层次的差异,方便对整个层次结构进行控制。三个主要的部分:MenuComponent:主要定义共同行为,并可以提供默认的行为。 Menu:组合对象,用于管理底层的叶子。 MenuItem:叶子节点,最底层。public abstract class MenuComponent { private String name; private.

2022-05-21 12:07:55 86

原创 浅谈设计模式(三)

一、适配器模式目的:将某个类的接口转换成某个期望接口的的标识,主要是为了兼容性的目的,属于结构性模式。1. 类的适配器现在有一个接口和一个类public interface Voltage5V { public int getVoltageBy5();}public class Voltage220V { public int getVoltageBy220(){ return 220; }}适配类将两个进行适配// 适配类 需要对

2022-05-21 12:07:37 96

原创 浅谈设计模式(一)

一、设计模式的目的为了提升代码的重用性、可读性、扩展性、可靠性,从而使模块和模块之间出现高内聚低耦合。二、七大设计原则单一职责原则:简单来说就是 一个类应该只负责一项职责从而降低类的复杂度,例如:在学生类里不要做和食物类相关的事情,又或者常见的DAO。 接口隔离原则:一个类对另一个类的依赖应该建立在最小接口上。当类实现接口,这个接口应该遵循最小接口原则,无关的方法不需要实现,类中实现的都是需要的方法。 依赖颠倒原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象,抽象不应该依赖细节,细节应

2022-05-02 10:55:02 270

原创 canal 学习笔记

一、canal是什么canal,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。canal的工作原理就是把自己伪装成MySQL slave,模拟MySQL slave的交互协议向MySQL Mater发送 dump协议,MySQL mater收到canal发送过来的dump请求,开始推送binary log给canal,然后canal解析binary log,再发送到存储目的地。二、binLog日志它记录了所有的DDL DML等语句,以事件的方式记

2022-04-16 20:00:00 5449 1

原创 shardingSphere 学习笔记

一、sharding-JDBC是轻量级的Java框架,增强版的JDBC驱动,很好的解决了分库分表的问题。1. 分库分表的方式:水平分库:将原数据库的数据分为两部分,存放到其他数据库中。 垂直分库:将原数据库的字段集合分为两部分,存放到其他数据库中。 水平分表:将原表的数据分为两部分,存放到两张结构相同的数据库表中。 垂直分表:将原表的字段集合分为两部分,存放到两张不同的表中。2. springBoot整合 sharding-JDBC首先引入sharding-JDBC的pom&l

2022-04-05 12:46:15 1500

原创 Nginx初探

一、介绍Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx的优点热部署、可以高并发链接、低内存消耗、处理响应快、具有高可靠性。二、nginx.conf配置文件详解#user nobody;worker_processes 1; # 并发处理的数量error_log logs/error.log notice; ...

2021-09-13 11:29:07 149

原创 SpringMVC 源码解读

处理请求的过程当一个请求到达的时候首先会到达DispatcherServlet ,对于请求的处理一般都是在doGet、doPost方法进行处理,具体处理的方法在DispatcherServlet 的父类FrameworkServlet。public abstract class FrameworkServlet extends HttpServletBean implements ApplicationContextAware { @Override protected final v.

2021-09-08 14:13:03 111

原创 Spring事务源码以及常见问题

一、componentScan原理在xml中 <context:component-scan/> 这样的形式,标明扫描的路径,首先是在解析xml过程中首先会去加载 spring-context 的context标签,在spring-context模块下的spring-handler。http\://www.springframework.org/schema/context=org.springframework.context.config.ContextNamespaceHan..

2021-09-08 14:10:40 145

原创 Spring AOP以及常见问题

一、Spring的上下文首先说明 AnnotationConfigApplicationContext和ClassPathXmlApplicationContext 都是spring的上下文环境,但是是有区别的,ClassPathXmlApplicationContext是用来加载xml配置文件的Context,而AnnotationConfigApplicationContext是用来加载注解配置的Context。虽然直接父类不同,但是都有一个共同的祖先类AbstractApplicationC...

2021-09-08 14:10:07 370

原创 Spring源码解读

一、beanDefintionReader是一个抽象定义规范的接口,负责读取配置文件中的信息

2021-09-08 14:07:29 248

原创 Spring循环引用

1. AOP注解执行顺序注:springBoot 的版本是2.3.3.RELEASE,Spring版本5.2.8.RELEASE。正常情况(执行顺序): 异常情况(执行顺序): @Around @Around ⬇ ⬇ @Before

2021-08-19 11:30:39 2152

原创 Java常见问题总结三

1. Java字符串常量加载String str1 = new StringBuilder("QQ").append("weixin").toString();System.out.println(str1); // QQweixinSystem.out.println(str1.intern()); // QQweixinSystem.out.println(str1 == str1.intern()); // trueString

2021-08-10 10:48:27 207

原创 Springboot整合Redis和RabbitMQ

一、整合Redis1.pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.2.2.R...

2021-08-04 10:58:48 630

原创 kafka 学习笔记(二)

1. 生产者发送消息Properties properties = new Properties();// 设置地址, 这里所有的参数都在producerConfig这个类里properties.put("bootstrap.servers", "localhost:9092");properties.put("acks", "-1"); // 设置ack模式properties.put("retries", "1"); // 重试次数properties.put("batch.s

2021-07-20 14:20:24 158

原创 kafka学习笔记(一)

1. kafka介绍2. kafka配置文件server.properties############################# Server Basics ############################## broker的id, 这个id是唯一的,而且必须是整数. broker.id=0# 设置可以删除topic , 默认不可以删除topicdelete.topic.enable=true############################# Socket

2021-07-20 11:49:33 221

原创 SparkStreaming学习笔记

一、什么是SparkStreamingSpark Streaming 是 Spark 核心 API 的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理。为了实现流式处理数据。二、创建SparkStreaming环境对象val conf = new SparkConf().setMaster("local[*]").setAppName("streaming")// 创建环境对象,需要传递两个参数 第一个是环境配置 第二个是采集的周期val streamContext = n

2021-07-12 15:00:30 208

原创 SparkSQL学习笔记(一)

一、DataFrame和DataSetDataFrame是一个分布式数据容器,除了记录数据以外,还记录数据的结构信息。Dataset是一个由特定领域的对象组成强类型(typedrel)集合,可以使用函数(DSL)或关系运算(SQL)进行并行的转换操作。Dataset可以认为是DataFrame的一个特例,并且Dataset和DataFrame都是懒加载的,只有触发行动算子才会执行操作。二、创建sparkSQL的运行环境def main(args: Array[String]): Uni

2021-07-06 14:13:27 2358

原创 Spark源码解读(三)

一、shuffle的过程shuffle是必须要落盘的,在shuffleRDD肯定会读取文件。shuffle的过程,多个task先去读索引文件找到位置之后,再去读数据文件。多个任务也能往同一个文件中写入数据。写数据的过程:case stage: ShuffleMapStage => ... // 创建shuffleTask,去落盘数据 new ShuffleMapTask(stage.id, stage.latestInfo.attemptNumber, taskB

2021-07-01 14:48:46 477

原创 Spark源码解读(二)

二、通信环境的建立private[spark] def createSparkEnv(...): SparkEnv = { SparkEnv.createDriverEnv(conf, isLocal, listenerBus, SparkContext.numDriverCores(master, conf))}----------------------------------------------------------private[spark] def createDriverE

2021-06-25 14:24:42 220

原创 Spark源码解读(一)

一、spark通过yarn启动的过程在spark通过yarn提交的时候,会去执行SparkSubmit的main方法。override def main(args: Array[String]): Unit = { val submit = new SparkSubmit() { self => override protected def parseArguments(args: Array[String]): SparkSubmitArguments =

2021-06-25 11:33:16 1339 1

原创 Spark学习笔记(三)

一、行动算子行动算子的执行,就会触发整个作业的执行, 会采集各个分区的数据到driver端的内存中。1. 常见的行动算子val data: RDD[Int] = context.makeRDD(List(1,2,3,4), 2)// 数据源的个数val count: Long = data.count()// 数据源的第一个val first = data.first()// 数据源的前多少个组成一个数组val take = data.take(4)// 输出结果re

2021-06-18 10:47:06 249 1

原创 Spark学习笔记(二)

※ 转换算子1. distinct:去除重复数据val value: RDD[Int] = rdd.distinct()去重的原理:map(x => (x, null)).reduceByKey((x, _) => x, numPartitions).map(_._1)2. coalesce:缩减分区,默认不会打乱数据的分区组合,可能会导致数据倾斜,所以可以进行shuffle处理。当然也可以进行增加分区的操作,需要和shuffle操作一起,否则不起作用。因为新增加的是个空

2021-06-04 12:02:28 214 1

原创 Spark学习笔记(一)

一、Spark 简述Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。二、开始Spark// 创建和spark的连接val wordCount: SparkConf = new SparkConf().setMaster("local[*].

2021-06-01 14:38:12 194

原创 Scala学习笔记(四)

一、模式匹配Scala中的模式匹配和Java的switch类似,但是比Java的要强大的多,Scala中不仅可以按值匹配,还可以根据类型或者条件去匹配val x: Int = 3val y: String = x match { case 1 => "one" case 2 => "two" case 3 => "three" case i if i >2 => "" + i // 满足条件进入case 满足条件执行代码块 case _ =

2021-05-28 15:18:35 69

原创 Scala学习笔记(三)

集合部分一、数组1. 可变数组1. 创建可变数组val arrayBuffer = new ArrayBuffer()2. 使用伴生对象进行创建val ret = ArrayBuffer(1,2,3)3. 修改数组元素ret(1) = 14. 添加元素 1. 操作符方式 += 返回的是同一个数组 val ret1 = ret += 15 或者 var ret2 = 15 +=: ret 2. 调用方法名的方式 向后添加 ret.appe

2021-05-27 14:13:29 133

原创 Scala学习笔记(二)

一、函数1. 定义函数// 用def关键字定义一个函数 // 格式 def 函数名(参数名 : 类型): 函数返回值的类型 = {}def main(args: Array[String]): Unit = { // .... 函数体}2. 接收可变长参数// 带 '*' 接收多个参数会组成一个数组def inner(aStr: String*): Unit = { println(aStr)}inner("b", "c")3. 匿名函数和函数的简化写法

2021-05-24 13:43:34 110

原创 Scala 学习笔记(一)

一、Scala概述 Scala 是一门多范式(multi-paradigm)的编程语言,其运行在 Java 虚拟机上,并兼容现有的 Java 程序。Scala 源代码被编译成 Java 字节码,所以它可以运行于 JVM 之上,并可以调用现有的 Java 类库。所以说安装Scala之前需要安装Java。二、Scala变量和数据类型由于Scala和Java有着很多相似之处,所以在很多方面没有改动。1.注释单行注释 //多行注释 /* */2. 变量和常量va...

2021-05-20 10:51:24 165 1

原创 Elasticsearch 使用详解(一)

一、Elasticsearch简介 Elasticsearch 也是使用 Java 编写的,它的内部使用 Lucene 做索引与搜索,但是它的目的是使全文检索变得简单, 通过隐藏 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API。二、一些常见的概念索引 (index):相当于mysql中的数据库。映射 (mapping):包含了一些字段的类型,相当关于mysql中的表定义。二、常用的增删改查 三、Elasticsearc...

2020-12-08 14:27:22 293

简单图书管理

对图书系统的增删改查,以及管理用户。管理员的页面等。

2019-01-19

网页记事本

网页上运用 web_sql 实现增、删、改、查

2018-11-22

JDBC数据库

包含对数据库进行增、删、查、改。防止恶意的sql注入。

2018-11-14

简单的表单验证

一个包含了js的简单的表单验证,下载后随意粘贴代码。

2018-10-26

空空如也

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

TA关注的人

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