自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【SpringCloud】微服务

一、分布式微服务框架1.1 微服务微服务架构是一种架构风格,它提倡将单一的应用划分为一组小的服务,每个服务都围绕着具体的业务进行构建,服务之间互相协调、互相配合,为用户提供最终价值。每个微服务都运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相协作。1.2 分布式将项目拆分,并部署在不同的服务器上二、什么是 SpringCloud2.1 SpringCloud 的概念SpringCloud 是分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的几何体..

2020-08-12 00:00:35 435

原创 【多线程】多线程之并发工具类

一、概述jdk 1.5 后,为我们提供的并发工具类有:名称 描述 详细 CountDownLatch 同步计数器 初始化时,传入需要计数的线程等待数,并用 await() 阻塞当前线程,其他线程中可以调用countDown()方法让计数器减一,当计数器为 0 时,则放行 CyclicBarrier 栅栏 让一组线程达到某个屏障被阻塞,一直到组内最后一个线程达到屏障时,屏障开放,所有被阻塞的线程才会继续运行 Semaphore 信.

2020-08-11 17:51:28 1437

原创 【集合】Queue

一、Queue 概念Queue 是一种先进先出的结构,是线程安全的二、常见的Queue 解析2.2 ArrayBlockingQueue2.2.1 概念ArrayBlockingQueue 是一个数据结构的有界阻塞队列2.2.2 特点线程安全 初始化时必须指定大小2.2.3 常用方法方法名 描述 临界行为 队列尾部添加元素 add 添加一个元素 若队列已满,抛出IIIegaISlabEepeplian 异常 offe...

2020-08-11 16:44:37 364

原创 【集合】Map 和 Set

一、Hash1.1什么是 hash哈希是将任意长度的输入通过散列算法,变换成固定长度的输出,这个输出就是哈希值。● 空间压缩这种转换实际是一种空间映射,哈希值的空间通常小于原输入占用的空间● 没有唯一性不同的输入可能转成出同一个哈希值,但不同的哈希值必定对应着不同的输入1.2 哈希冲突(碰撞)哈希冲突即出现输入不同,转换出的哈希值却相同的情况二、Map 集合类2.1 HashMap2.1.1 概念HashMap 是基于哈希表的 Map 接口的非同...

2020-08-11 16:41:44 305

原创 【集合】集合基础概念和 List

目录一、集合汇总图二、List、Set、Map、Queue三、ArrayList 和 LinkedList3.1 ArrayList3.2 LinkedList3.3 ArrayList 和 LinkedList 的对比3.4 Vector3.4.1 Vector 介绍3.4.2 ArrayList 和 Vector 对比3.5实现 List 线程安全一、集合汇总图二、List、Set、Map、Queue● ListList 是一个有序的容..

2020-08-11 16:37:32 312

原创 【CDN】CDN 原理和使用

一、CDN 是什么1.1 概念CDN(content delivery network)即内容分发网络,通过在各个地方部署 CDN 镜像服务器,并复制源服务器的应用内容,让用户可以从最合适的镜像服务器中获取资源内容。最合适的镜像服务器包括:访问本地区的服务器并获取所需内容 根据宽带类型使用部署对应类型宽带的服务器(如移动、联通、铁通等)如下图中的表示 CDN 镜像服务器,则用户可以访问最近的镜像服务器,快速地获取资源内容。二、CDN 由来初始阶段: 1台服务器,面向所...

2020-08-09 18:03:13 3109

原创 【CDN】处理 cdn 缓存和 前端缓存

一、cdn 缓存问题问题:cdn 缓存问题是由于 cdn 节点缓存了页面文件,导致用户直接在 cdn 节点访问了对应文件,而不是通过节点,这就导致用户可能使用旧版页面,发送旧的请求到服务器,从而引发错误。解决:① 使用灰度发布,先更新静态资源文件(js,css),再更新页面文件(html,html中引用了静态资源文件)② 前端使用了文件指纹方式,本质上是每次打包出的文件名以及html中引用的文件名变化,去访问cdn上不存在的节点。由于新旧文件文件名不同,就不会有访问到旧文件的问题③ 除了

2020-08-09 17:26:05 3508

原创 【集合】集合汇总

一、集合汇总图二、List、Set、Map、Queue● ListList 接口主要用于存储一组不唯一,且有序的对象● SetSet 是一个不允许重复的集合,不会有多个元素引用相同的对象● MapMap 主要用键值对的方式存储,Key 不允许重复,但允许引用相同的对象● Queue一种先进先出的无阻塞结构,先进入的节点必须先弹出,常用于高并发环境2.2 ArrayList 和 LinkedListArrayList 是底层依赖数组,通过比较添加的内..

2020-08-06 18:03:34 3549 5

原创 【多线程】ThreadLocal

一、ThreadLocal 概述1.1 ThreadLocal 是什么ThreadLocal 会为每一个线程中都创建一个副本,每个线程仅可访问自己内部的副本变量,无法互相访问其他线程的副本变量。本质上是每个线程都有一个 ThreadLocalMap 类型的变量 threadLocals,以设置的 ThreadLocal 对象为 Key,要保存的值为 Value,存储到这个 threadLocals 中。由于每个线程都有自己的 threadLocals,故实现了线程隔离。且 map 中可以记录

2020-08-06 10:14:15 584

转载 【MySQL】 数据库定期备份

一、数据库备份方案数据库定期备份通常是使用备份脚本 + Cron 定期自动循环实现的,一般为每天一次的全量备份二、相关脚本2.1 数据库备份脚本#! /bin/bash#保存备份个数,备份31天数据number=31#备份保存路径backup_dir=/opt/mysqldump#日期dd=`date +%Y.%m.%d-%H.%M.%S`#备份工具tool=mysqldump#用户名username=root#密码password=root#将要备份的数.

2020-08-05 19:33:39 308

原创 【JVM】JVM 学习

执行引擎:将 java 语言翻译成机器语言的翻译者# 反编译javap -v StackStruTest.class二、JVM 生命周期# 打印当前程序执行的进程jps三、JVM 发展由于 JIT(即时编译器) 将字节码指令翻译成机器指令,是需要时间的。若只使用 JIT将所有代码先进行编译,则在启动时会发现有明显的卡顿。...

2020-08-04 23:54:58 107 1

原创 【多线程】volatile

一、jvm 内存模型在理解 volatile 之前,先要了解 jvm 内存模型如上图所示,有几个关键点:所有线程的共享变量都存储在主内存中,每个线程都有一个专属于自己的工作内存,每个线程都不会直接操作主内存中的变量,而是将主内存上的变量放进自己的工作内存中,只操作工作内存的数据。 当对工作内存修改完毕后,再将修改后的结果放回到主内存中。 每个线程都只能操作自己工作内存中的变量,无法直接访问其他工作内存的变量 线程间的变量传值只能依赖主内存完成二、volatile 的作用...

2020-08-04 18:03:37 237

原创 【多线程】锁机制详解

一、锁概述1.1 概述在多线程环境下,为了让多线程安全地访问和使用共享变量,必须引入锁机制。锁机制即当一个线程持有锁后,其他线程只能进行等待,直到持有锁的线程释放锁,再次重新竞争锁。1.2 三种锁的大类型锁大致可以分为互斥锁、共享锁、读写锁1.2.1 互斥锁(排它锁)互斥锁,即只有一个线程能够访问被互斥锁保护的资源在访问共享对象之前,对其进行加锁操作。在访问完成之后进行解锁操作。加锁后,其他试图加锁的线程会被阻塞,知道当前线程解锁。解锁后,原本等待状态的线程变为就绪状态,重.

2020-08-03 18:02:11 5837

原创 【多线程】Timer 和 ScheduledThreadPoolExecutor

一、周期性任务实现1.1 应用在实际应用中,我们需要创建一些延迟性的、周期性的任务,如每隔一小时记录一次日志、每隔一小时统计一次数据等。在 java 中给我们提供了两个实现方式,分别为 Timer 和ScheduledThreadPoolExecutor。1.2 对比1.2.1 两者对比 Timer ScheduledThreadPoolExecutor 线程 只支持单线程 支持多线程 多任务 任务之间互相影响 任务直接隔离 调度...

2020-07-31 18:01:41 280

原创 【多线程】线程池详解

一、为什么使用ThreadPoolExecutor二、ThreadPoolExecutor 基本参数

2020-07-31 10:56:51 527

原创 【多线程】多线程基础

一、程序、进程、线程、协程● 程序一段静态的代码,一段指令的有序集合,他是一个静态的实体,是应用程序执行的蓝本● 进程进程就是程序的一次动态执行,是一个动态的实体。它拥有自己的生命周期● 线程线程是进程的组成部分。一个进程可以有多个线程,而这多个线程必须依赖于同一个父进程。线程可以拥有自己的堆栈、程序计数器和局部变量,但不能拥有自己独立的系统资源。一个进程下的所有线程,都共享该进程的所有资源。二、线程的实现方式2.1 三种方式对比● 继承 Thread 类描述..

2020-07-30 18:03:18 183

原创 【Mysql】数据库锁

一、数据库锁1.1 锁的概念锁是计算机协调多个进程或线程并发访问某一资源的机制1.2 锁的分类● 操作类型区分读锁:读锁是共享锁,即针对同一份数据,对个读操作可以同时进行而不会互相影响 写锁:写锁是排它锁,在当前写操作没有完成前,会阻断其他读锁和写锁● 操作粒度区分表锁:偏向 MyISAM 存储引擎,开销小,加锁快;无死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低 行锁:偏向 InnoDB 存储引擎,开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发.

2020-07-30 11:36:53 143

原创 【MySQL】MySQL 调优

一、调优流程开启慢查询日志,设置阈值,如超过5秒钟的就是慢SQL,并将它抓取出来 explain + 慢 SQL 分析 show profile 进行 SQL 数据库服务器的参数调优

2020-07-29 16:01:19 253

原创 【MySQL】Mysql8.0及以上 only_full_group_by以及其他关于sql_mode原因报错详细解决方案

修改 mysql 配置文件vim /etc/my.cnf将下面话复制到 [mysqld] 下sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'结果:重启 mysqlsystemctl stop mysqld.servicesystemctl start mysqld.service...

2020-07-28 16:14:17 591

原创 大佬博客友情链

https://www.cnblogs.com/wt645631686/category/1003557.html

2020-07-28 11:11:36 129

原创 【Mysql】 Mysql 进阶

一、配置文件二进制日志 log-bin 用于主从复制错误日志 log-error 默认是关闭的,记录验证的警告和错误信息,每次启动和关闭的详细信息慢查询日志 log 默认关闭,记录查询的sql语句,如果开启会降低mysql的效率数据文件:frm => 存放表结构myd => 存放表数据myi => 存放表索引二、MyISAM 与 InnoDB 的对比 MyISAM InnoDB 外键 不支持 支持 事务 不支持 ...

2020-07-27 23:24:20 182

原创 【Mysql】 MySQL 常用命令

一、通用操作1.1 启动/关闭/登录# 启动service mysqld start# 关闭service mysqld start# 登陆mysql -uroot -proot.1231.2 数据库连接管理1.2.1 查看数据库最大连接数show variables like '%max_connection%';1.2.2 当前数据库连接数show status like 'Threads%';1.2.3 修改数据库最大连接数...

2020-07-23 17:36:56 154

转载 【Spring】SpringMVC 基于代码的容器初始化

Spring 支持通过 XML 文件配置,包括 web.xml 和 Spring 配置文件,但同时,Spring 还支持基于代码的配置,使 Spring 程序脱离 web.xml 文件。https://www.jianshu.com/p/44dc6f0826f7

2020-07-23 11:28:06 100

原创 【Spring】过滤器、拦截器、监听器各自的实现方式

123

2020-07-23 11:07:05 234

原创 J2EE 学习

一、什么是 J2EE二、 创建 webapp 项目https://www.jianshu.com/p/455c7c11dfb2https://blog.csdn.net/dream_an/article/details/49020211三、 使用

2020-07-23 10:24:05 355

转载 【Spring】Spring 常见面试题

一、请解释Spring Bean的生命周期?首先说一下Servlet的生命周期:实例化,初始init,接收请求service,销毁destroy;Spring上下文中的Bean生命周期也类似,如下:(1)实例化Bean:对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一个尚未初始化的依赖时,容器就会调用createBean进行实例化。对于ApplicationContext容器,当容器启动结束后,通过获取BeanDefiniti..

2020-07-22 14:19:08 114

原创 【Spring】SpringMVC 常见面试题

一、SpringMVC 概念1.1 什么是MVCMVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式● Model(模型):处理应用程序数据逻辑的部分● View(视图):处理数据显示的部分● Controller(控制器):处理与用户交互的部分示例流程图如下:1.2 SpringMVC 设计模式1.2.1 改进SpringMVC 将传统的 Model 层再次进行细化,拆分为 Service.

2020-07-21 16:42:36 653

原创 【JdbcTemplate】Spring 整合 JdbcTemplate

一、Spring 项目整合 JdbcTemplate1.1.1引入 Maven 依赖<dependencies> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <.

2020-07-20 13:39:34 141

原创 【DBUtils】Spring 项目结合 dbUtils

一、引入依赖<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.5.RELEASE</version> </dependency> &l

2020-07-19 13:38:31 146

原创 【Spring】Spring 事务

一、事务1.1 概念事务是指数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作,这些操作作为一个整体一起向系统提交,要么都执行,要么都不执行。通俗地事务就是一组不可再分割的操作集合,集合中的操作要么一起成功(事务提交),要么全部失败(事务回滚)1.2 特性(ACID)● 原子性(Atomicity)事务中所有的操作都是不可再分割的原子单位,事务中的操作要么全部执行成功,要么全部执行失败● 一致性(Consistency)事务执行结束后,数据库的完整性约.

2020-07-17 17:52:32 127

原创 【Spring】Spring AOP详解

一、 AOP 的概念1.1 概念AOP 称为面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。切面:即横向控制,能够将水平散布在各个类中的代码抽取出来,形成一个公共的可重用的模块。1.2 AOP解决了什么:例如一个日志功能,在传统的OOP编程中,更注重从上到下的关系,可日志模块的代码往往水平分布在各个对象层次中,而实际与业务处理毫无关系,这样的做法增加了代码的重复性,不利于代码的维护。而 AOP 则解决了这个问题,它可以将那些影响了多个类的公共行为封.

2020-07-17 15:49:21 208

原创 【MySQL】MySQL 学习

一、E-R 模型1.1 概述E-R模型主要用于描述数据库中实体之间的关系。当前物理的数据库都是按照 E-R 模型进行设计的。E(entry)即实体,一个实体对应着数据库中的一张表,R(relationship)则代表各个实体之间的关系。1.2 关系类型关系描述两个实体之间的对应规则,包括:一对一 一对多 多对多二、三范式经过研究和问题总结,人们对于设计数据库提出了一些规范,这些规范被称为范式。主要我们要遵循的三个范式为:● 第一范式:列不可拆分即当前..

2020-07-16 21:23:24 123

原创 【Spring】Spring 学习

一、什么是 SpringSpring 是一个分层的一站式轻量级开源框架,提供了多个模块给用户自由组合,能有效解决复杂的企业级应用二、Spring 的特点解耦,简化开发:使用 IOC 容器,将对象的创建和管理统一交给 IOC 来管理,降低各模块之间的依赖性,使开发者只需要着重逻辑业务的开发 统一管理:由 IOC 容器统一管理对象,维护对象之间的依赖关系 扩展性强:支持兼容主流框架,如 MyBatis、Hibernate等 面向切面编程:AOP使的开发者可以很方便地对程序进行权限拦截、运.

2020-07-15 18:02:01 2247

原创 【RocketMQ源码】三、Producer 源码学习

一、启动流程1.1 默认启动类解析查看这个start 的引用可以发现它是基于 DefaultMQProducer 这个类创建的,即需要通过这个类创建 Producer 并发送消息同时可以看到这个类中定义了各种消息的发送方法和默认参数1.2 默认参数解析参数名称 参数作用 producerGroup 生产者所属组 createTopicKey 默认Topic defaultTopicQueueNums 默认主题在每一个Broke.

2020-07-15 13:46:57 174

原创 雪花算法实现分布式有序且唯一的ID控制

public class IDWorker { /** * 起始的时间戳 */ private final static long START_STMP = 1480166465631L; /** * 每一部分占用的位数 */ private final static long SEQUENCE_BIT = 12; //序列号占用的位数 private final static long MACHINE_BIT = 5; .

2020-07-14 14:24:37 904

原创 【RocketMQ高可用】RocketMQ 双主双从集群搭建

一、 集群架构 描述 NameServer 集群 NameServer 是一个无状态的节点,可集群部署,节点都是各自独立的,无任何信息同步 Broker 集群 ①Broker 分为 Master 与 Slave,一个 Master 可以对应多个 Slave,但一个 Slave 只能对应一个Master ② Master 与 Slave 的对应关系通过制定相同的 BrokerName,不同的 BrokerID 来定义,id 为 0 表示 Master, ...

2020-07-14 13:45:22 3057 1

原创 【RocketMQ源码】二、NameServer 源码学习

一、架构设计1.1 消息中间件设计思路消息中间件的设计思路一般是基于主题订阅发布机制,即生产者发送某一个主题消息到服务器,消息服务器负责将消息持久化存储,消费者订阅感兴趣的主题,由服务器主动推送到消费者(Push模式)或消费者主动向消息服务器拉取(Pull模式),从而实现生产者和消费者解耦。1.2 NameServer 解决了什么1.2.1 存在的问题为了增加消息中间件的高可用性,避免消息服务器的单点故障导致整个系统瘫痪,通常会部署多台消息服务器共同承担消息的存储。那么问题随之.

2020-07-14 11:06:55 153

原创 【RocketMQ源码】一、源码下载和安装

一、项目搭建和测试1.1 代码拉取从官方仓库拉取:https://github.com/apache/rocketmq百度网盘:链接:https://pan.baidu.com/s/11gDiQ41LFRdpl03q_l8_xw 提取码:pjd81.2 源码结构目录broker: broker 模块(broke 启动进程) client :消息客户端,包含消息生产者、消息消费者相关类 common :公共包 dev :开发者信息(非源代码) distribution ...

2020-07-14 10:03:38 2661 2

原创 【RocketMQ 高可用】RocketMQ 高可用系列

一、消息存储机制1.1 介绍由于消息队列有高可靠性的要求,故要对队列中的数据进行持久化存储。如图:消息生产者先向MQ发送消息 MQ收到消息,将消息进行持久化,并在存储系统中新增一条记录 返回ACK(确认字符)给生产者 MQ 推送消息给对应的消费者,等待消费者返回ACK(确认字符,确认消费) 若这条消息的消费者在等待时间内成功返回ACK,则MQ认为消息消费成功,删除存储中的消息 若MQ在指定时间内没有收到ACK,则认为消息消费失败,会尝试重新推送消息1.2 存储...

2020-07-13 10:19:54 3156 2

转载 【Mysql】查看服务器当前连接数

https://www.cnblogs.com/caoshousong/p/10845396.html

2020-07-09 16:05:18 301

空空如也

空空如也

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

TA关注的人

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