自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

公子&小白的博客

爱上coding

  • 博客(375)
  • 资源 (2)
  • 收藏
  • 关注

原创 策略模式--在SpringBoot中的使用

【代码】策略模式--在SpringBoot中的使用。

2024-01-09 23:27:44 588

原创 JAVA-ArrayList的相关坑

在subList场景中,对父集合元素的增加或删除,均会导致子列表的遍历、修改、删除产生ConcurrentModificationException异常。

2024-01-01 00:00:39 394

原创 Nginx的location配置和proxy_pass配置规则理解

Nginx的location和proxy_pass配置规则

2022-08-16 00:12:59 1264 2

原创 设计模式之-工厂模式

工厂模式

2022-07-04 00:11:40 266

原创 设计模式之-单例模式

单例模式

2022-07-03 12:25:57 265

原创 2022-06-07-Redis的持久化方式

Redis的持久化选择

2022-06-07 07:00:00 374 1

原创 2022-06-06-缓存击穿、缓存雪崩、缓存穿透解决方案

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

2022-06-06 22:52:31 217

原创 2022-06-04-Redis实现分布式锁

Redis实现分布式锁

2022-06-04 15:23:09 145

原创 高并发专题--高并发一篮子解决方案

文章目录1. 高并发概述1.1 什么是高并发1.2 衡量高并发系统的指标2. 高并发解决方案2.1 硬件解决高并发问题2.1.1 单体应用垂直扩容方案2.2 通过缓存解决高并发问题2.2.1 浏览器缓存2.2.2 Nginx缓存2.2.3 CDN缓存2.2.4 应用缓存2.2.5 多级缓存2.2.6 缓存的使用场景2.3 集群解决高并发问题2.4 系统拆分解决高并发问题2.4.1 应用拆分2.4.2 数据库拆分2.5 静态化2.6 动静分离2.7 队列2.8 池化2.8.1 对象池2.8.2 数据库连接池2

2022-05-05 09:46:36 594

原创 Spring事务机制---XML配置事务和注解方式事务

文章目录1. Spring事务管理机制1.1 Spring事务管理机制1.2 PlatformTransactionManager事务管理器1.3 TransactionDefinition事务定义信息1.3.1 常用事务隔离级别1.3.2 事务的传播行为PropagationBehavior1.3.1 事务的传播行为1.4 事务状态:TransactionStatus1.5 Spring中要达到事务操作的三个步骤1.6 Spring事务管理两种方式1.6.1 编程式事务管理1.6.2 通过XML或者注解配

2022-05-01 19:41:09 947

原创 2022-04-16-Centos快速挂载磁盘,剔除登录用户

文章目录centos7踢除指定用户centos7快速挂载磁盘centos7踢除指定用户# 查看多少人who# 踢除他人pkill -kill -t pts/5centos7快速挂载磁盘# 给未分配的磁盘格式化并指定文件类型mkfs.ext4 /dev/vdb# 创建目录mkdir /data# 挂载磁盘到指定的目录下mount /dev/vdb /data/...

2022-04-16 14:30:18 123

原创 反爬研究---时间戳防盗链技术

文章目录1. 时间戳防盗链1.1 时间戳防盗链原理1.2 时间戳防盗链鉴权过程(七牛云)1.3 时间戳防盗链处理方案(无CDN)2. referer防盗链2.1 防盗链2.2 使用场景2.3 访问链接来源2.4 防盗链过滤器处理3. 防盗链其他方案4. 参考文档1. 时间戳防盗链1.1 时间戳防盗链原理时间戳防盗链的目的是使得每个请求的 url 都具有一定的 “时效性”,所以 url 本身需要携带过期时间相关的信息,同时还需要确保这个过期时间不能被恶意修改,因此采用 md5 算法,将 key、过期时

2022-04-09 18:35:12 1131

原创 2022-04-08-使用frp+nginx实现内网穿透

文章目录1. 应用场景2. 解决方案2.1 组件和架构图3. 主要问题点3.1 Nginx实现http域名访问https域名(非同一个域名)3.2 Nginx添加HTTP Basic认证4. 参考文档1. 应用场景公司网络中没有wifi公司不允许使用手机连接网络。需要在手机上测试小程序等内容。自己在内网搭建的网站,能够在公网访问。2. 解决方案使用花生壳等实现内网穿透frp+nginx实现内网穿透使用ssh实现内网穿透2.1 组件和架构图组件:Nginx+FRP(内网穿透工具)

2022-04-08 16:17:28 5118

原创 并发编程四:Atomic原子类和Unsafe魔术类,ABA问题以及解决方案

文章目录1. Atomic原子类1.1 原子操作1.2 CPU原子操作的实现方式1.3 Atomic1.4 ABA问题1.5 使用Atomic修改数组1.6 使用Autmic原子类修改对象中的某个字段2. Unsafe魔法类2.1 Unsafe类的获取方法2.2 使用Unsafe魔术类修改对象中的属性值2.3 对象中的偏移量理解2.4 Unsafe魔术类的功能2.6 park和unpark的使用1. Atomic原子类1.1 原子操作原子操作:原子即“不能被进一步分割的最小粒子”,原子操作(atom

2022-04-05 15:13:41 766

原创 并发编程三:JUC编程中的Tools:Semaphore、CountDownLatch、CyclicBarrier、Exchanger等工具类实现以及使用场景

文章目录JUC编程中的ToolsSemaphore(信号量)什么是Semaphore构造方法重要方法基于Semaphore(信号量)机制实现非公平队列总结CountDownLatchCyclicBarrier应用场景ExchangerExecutors重要方法JUC编程中的ToolsJUC中主要包含5个工具类ExecutorsSemaphorExchangerCyclicBarrierCountDownLatchSemaphore(信号量)什么是SemaphoreSemapho

2022-04-04 09:55:34 371

原创 并发编程二:Synchronized和基于AQS的锁,显式锁和隐式锁,内存逃逸分析ReentrantLock实现公平锁

文章目录应用场景JAVA中常用的锁机制SynchronizedSynchronized加锁方式总结面试题下面主要有下面几个内容对象内存结构JVM开启逃逸分析JVM锁的优化-锁的粗化与消除JVM内置锁优化升级过程偏向锁---总是同一个线程多次获得锁轻量级锁---出现线程间交替执行自旋锁----让线程等待一段时间(空旋转一段时间)且这个等待时间的消耗小于切换成重量级锁的时间消耗锁消除ReentrantLock总结ReentrantLockAbstractQueuedSynchronizer同步等待队列自定义同步

2022-03-28 00:55:55 961

原创 并发编程一:计算机基础、并发编程要解决问题、JMM模型、Volatile关键字

文章目录计算机基础冯诺依曼计算机理论模型什么是线程Java线程和内核线程的关系JAVA线程的生命周期JMM模型多核和多CPU理解JMM的抽象理解总结MESI缓存一致性协议JAVA内存模型内存交互操作主要操作手段并发例子Volatile关键字JMM同步八种操作执行的顺序同步规则分析Volatile无法保证原子性指令重排happen-before原则:指令重排发生在哪些阶段禁止指令重排手动添加内存屏障问题?死锁代码例子JVM小技巧查找死锁进程参考网址计算机基础JAVA中并发编程的核心位置:JMM和vola

2022-03-28 00:39:06 457

原创 2022-03-26-Subline3的常用快捷键

文章目录常用快捷键微软快捷键参考文档常用快捷键替换: ctrl+H查找: ctrl+F列式编辑: shift+上箭头/下箭头 或者 ctrl+All 选中所有代码,点击 ctrl+shift+L 指定所有列。按右箭头确定光标,或者 ctrl+鼠标左键 抛弃某列在列式多个光标下ctrl+j 或者 del 键,可以将列式转为行。del键会删除选中的内容ctrl+shift+→ 键可以将光标按照一定的格式跳转例如,中间有空格,会根据空格跳转shift+→ 键可以让多个列式光标集体向右移动一列也要

2022-03-26 14:42:37 498

原创 2022-02-24-MySQL优化技巧

文章目录MySQL优化技巧MySQL优化技巧索引优化order by优化Group by优化分页查询优化join关联查询优化总结NLJ和BNL算法In和exists优化count(*)优化总结知识点知识点1:MySQL的delimiter用法参考文档MySQL优化技巧创建表CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT NULL DEFAULT '' COMMEN

2022-02-24 01:06:32 858

原创 2022-02-20-Quartz分布式定时任务(上)

文章目录Quartz理解Quartz简介Quartz运行环境Quartz的设计模式Quartz的核心概念Quartz的体系结构Quartz的常用APIQuartz应用Job和JobDeatilJobExecutionContextJobDataMap有状态的Job和无状态的JobTriggerSimpleTrigger简单触发器SimpleTrigger的注意点CronTrigger触发器CRON表达式Scheduler调度器Scheduler的创建方式Quartz.propertiesQuartz的监听器

2022-02-20 23:51:30 938

原创 maven升级3.8.1之后报:maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for reposi

原因分析maven在3.8.1 的默认配置文件中增加了一组标签,如果仓库镜像是http 而不是https 就会被拦截禁止访问,而当前公司私服一般是http 而不支持https.解决方案找到Maven安装目录编辑 $M2_HOME/conf/settings.xml注释如下代码<mirror> <id>maven-default-http-blocker</id> <mirrorOf>external:http:*</mirrorO

2022-02-17 10:35:31 1462

原创 2022-02-14-Git的常用操作:tag、合并分支、reset head等

git拉取远程分支把远程分支拉取到本地git fetch origin develop(develop为远程分支)本地分支切换到远程分支git checkout -b dev(本地分支名称) origin/develop(远程分支名称)把远程分支上的内容都拉取到本地git pull origin develop(远程分支名称)查看当前分支git branch -aGit将dev分支合并到Master分支步骤所有代码都提交到各自的分支上本地先合并,不要直接将代

2022-02-14 16:16:20 871

转载 2021-11-07-GitLab项目完整迁移方案(代码、分支、提交记录)

文章目录背景命令引用链接:https://blog.csdn.net/C_xiaofei/article/details/108831198背景因业务要求,需要将代码仓库从原所在的gitlab服务器整体(代码,分支,提交记录)迁移至另一台gitlab服务器命令首先需要在新的服务服务器上新建一个项目然后用 Git Bash 执行以下命令git clone --mirror 项目原代码仓库地址 //将原仓库远程项目克隆到本地会生成一个 .git 文件cd 生成的.git文件 //cd

2021-11-07 22:20:50 272

转载 2021-10-26-init ROS安装问题解决方案

问题简述操作系统:Ubuntu18.04 ROS版本:melodic 笔者在很长一段时间里,由于自身电脑问题,只能通过VMWare软件安装Ubuntu操作系统的虚拟机进行ROS相关的学习与应用,并偶然并多次的发现安装完系统后,进行ROS安装过程中,跟着官方安装教程执行到下面贴出的命令行时,出现了如下图所示的错误提示:sudo rosdep initERROR: cannot download default sources list from:http...

2021-10-26 03:30:23 225

转载 2021-09-16-分布式事务解决方案理解

文章目录什么是分布式事务分布式事务产生的原因数据库分库分表应用SOA化--微服务化分布式事务解决方案两阶段提交(2PC)两阶段提交缺点三阶段提交(3PC)CanCommit阶段PreCommit阶段doCommit阶段总结swot(2pc,3pc)补偿事务TCC消息事务+最终一致性消息事务步骤SAGA解决方案基于事件驱动实现优点:缺点:基于命令方式实现流程优点:缺点:参考文章什么是分布式事务指一次大的操作由不同的小操作组成的,这些小的操作分布在不同的服务器上,分布式事务需要保证这些小操作要么全部成功,

2021-09-16 02:21:37 142

原创 2021-09-08-Nginx笔记七:Lvs+keepalived实现Nginx高可用方案

文章目录计算机网络七层协议LVS常用三种负载转发技术KeepalivedKeepalived配置理解Nginx的IO模型计算机网络七层协议国际标准ISO制定的网络七层协议物理层、数据链路层、网络层、传输层、会话层、表示层和应用层四层负载(tcp):F5、LVS用虚拟ip+port接收请求,再转发到对应的真实机器HAproxy、Nginx(七层)用虚拟的url或主机名接收请求,再转向相应的处理服务器LVSlvs是Linux Virtual Server,Linux虚

2021-09-08 00:30:08 187

原创 2021-09-08-Nginx笔记六:OpenResty整合Nginx、风控系统设计、限流限速

文章目录OpenResty理解OpenResty整合Nginx流程Openstry安装以及查看版本Nginx+OpenResty整合Nginx内置变量Nginx+OpenResty实现网络访问限制步骤风控系统逻辑Nginx+OpenResty实现限速限流限速算法参考网站OpenResty理解OpenResty是基于Nginx和Lua的高性能web平台,内部集成精良的Lua库、第三方模块、依赖开发者可以快速搭建能够处理高并发、扩展性极高的动态web应用、web服务、动态网关OpenResty就是将Ng

2021-09-08 00:27:54 351

原创 2021-09-08-Nginx笔记五:Nginx配置Https

文章目录Https理解Nginx配置HttpsHttps理解什么是HttpsHttps是安全的超文本传输协议,是身披SSL外壳的HTTP。HTTPS可以加密数据包,抓包人员拿到的数据都是密文HTTPS交互流程HTTPS加密1、浏览器发起请求,服务端会将证书(有些网站证书是单独设计的)和公钥返回给浏览器。2、浏览器验证证书是否有效,如果没效,就报display https warning3、如果验证通过会随机生成一个对称密钥4、通过服务端返回的公钥进行加密5、加密后请求

2021-09-08 00:24:42 153

原创 2021-09-08-Nginx笔记四:Nginx优化接口性能

文章目录常见的开发人员控制的缓存分类Nginx配置缓存Nginx缓存测试Nginx的压缩配置常见的开发人员控制的缓存分类数据库缓存应用程序缓存Nginx网关缓存前端缓存Nginx配置缓存写法proxy_cache_path /root/cache levels=1:2 keys_zone=ipuu_cache:10m max_size=1g inactive=60m use_temp_path=off;server { location /{ ...

2021-09-08 00:22:48 132

原创 2021-09-08-Nginx笔记三:Nginx负载均衡、跨域处理、黑名单、异常兜底

文章目录Linux快速安装jdkLinux负载均衡配置负载均衡理解负载均衡种类Nginx配置负载均衡Nginx负载均衡策略Nginx探测后端节点可用性配置Nginx全局异常兜底处理使用Nginx封禁IP应用场景手动封禁IP自动封禁IP使用Nginx跨域处理跨域处理方案Nginx配置Location匹配规则匹配案例Nginx的Rewrite规则应用这是一个正则表达式,匹配完整的域名和后面的路径地址replacement部分是https://xdclass.net/$1,$1是取自regex部分()里的内容Ng

2021-09-08 00:21:29 137

原创 2021-09-08-Nginx笔记二:Nginx的access.log日志

文章目录access.log日志的用处默认配置解析Nginx统计分析访问情况查看访问最频繁的前100个IP统计访问最多的URL的前20名自定义日志格式,统计接口响应耗时access.log日志的用处统计访问ip来源以及某个时间段的访问频率查看访问最频繁的页面、HTTP响应状态码、接口性能接口秒级访问量、分钟访问量、小时和天访问量默认配置解析nginx默认日志配置#log_format main '$remote_addr - $remote_user [$time_local] "

2021-09-08 00:18:35 318

原创 2021-09-08-Nginx笔记一:Nginx基础配置

文章目录正向代理服务器反向代理服务器Centos7快速安装Nginx编译版域名备案与上线解析服务器Nginx目录理解Nginx相关命令Nginx配置理解使用Nginx访问前端使用Nginx做图片服务器正向代理服务器客户端与目标服务器之间的服务器,客户端向代理发送一个请求并指定目标服务器,然后代理向目标服务器请求并获得内容,并返回给客户端,平时的代理服务器一般是正向代理服务器。核心:用户知道自己访问的目标服务器场景:跳板机、访问原来无法访问的网站,比如国外的一些站点反向代理服务器客户端与目标

2021-09-08 00:14:49 154

原创 2021-09-02-本地事务与Spring事务处理方案

文章目录什么是事务事务的四大特性Spring中使用本地事务什么是事务事务可以看做是一次大的活动,它由不同的小的活动组成,这些活动要么全部成功,要么全部失败。在计算机系统中,更多的是通过关系型数据库来控制事务,这是利用数据库本身的特性来实现的,因此又称为数据库事务。由于应用主要靠关系数据库来控制事务,而数据库通常和应用在同一个服务器,所以基于关系型数据库的事务又被称为本地事务。事务中任何一个操作执行失败,都将全部回滚。事务的四大特性原子性(Automic):要么都执行完成,要么全部不执行。不

2021-09-02 22:49:53 145

原创 2021-08-21-Python笔记(十)-Python中的集合

文章目录集合理解集合的创建与使用集合的运算集合理解集合和列表非常相似集合和列表存在区别1、集合只能存储不可变对象,如果集合里面存储列表,就会报错,因为列表时可变对象2、集合中存储的对象是无序的,这一点类似于java中的无序的set集合3、集合中不能存在重复元素,如果在创建集合的时候存在重复元素会被集合去除集合的创建与使用集合使用 {} 来创建d={1,2,3,4,5}print(d,type(d)){1, 2, 3, 4, 5} <class ‘set’>

2021-08-21 00:40:31 130

原创 2021-08-20-Python笔记(九)-字典

文章目录字典理解字典创建实战中应用字典字典的创建字典常用函数字典修改字典删除与清空字典copy字典遍历字典理解字典又称dictionary,简称dict----官方称为Mapping type字典是一种数据结构,又称为映射,字典的作用和列表类似,都是用来存储对象的容器。与列表的区别:列表存储数据性能很好,但是查询数据性能很差在字典中每一个元素都有唯一的名字,通过这个唯一的名字可以快速查找到指定的元素,字典的查询效率很高字典都是以键值对进行存储,个人理解python中的字典,非常类似于java中

2021-08-20 08:03:36 120

原创 2021-08-18-python笔记(八):元祖和对象

文章目录元祖理解创建元祖可变对象元祖理解元祖是不可变序列:tuple元祖的操作基本是和列表一致的,当操作元祖的时候可以把元祖当做不可变的列表一样应用场景当我们希望数据不可变时,可以使用元祖。有点类似java中的final关键字修饰的变量创建元祖创建元祖使用()my_tuple=(1,2,3,4,5)print(my_tuple)print(my_tuple[3])(1, 2, 3, 4, 5)4[Finished in 0.1s]当元祖 不是空元祖的时候,括弧

2021-08-18 23:43:46 271

原创 2021-08-18-python开发简单ems系统

python代码ems系统可以直接执行# 显示系统欢迎信息print('-'*20,'欢迎使用员工管理系统','-'*20)# 创建列表emps=['小米\t12\t男\t北京','京东\t12\t女\t北京']while True: # 显示操作选项 print('请选择要操作的选项:') print('\t1.显示员工列表') print('\t2.添加员工信息') print('\t3.删除员工信息') print('\t4.退出系统') user_code=input('请

2021-08-18 01:25:12 372

原创 2021-08-16-Python笔记(七)-Python中序列和列表

文章目录序列序列理解列表(list)列表理解列表创建与使用切片切片理解切片创建与使用列表的通用操作列表的方法序列序列理解序列是Python中一种最基本的数据结构数据结构是计算机中数据存储的方式序列用于保存一组有序的数据,所有的数据在序列中都有一个唯一的位置(索引),并且序列中的数据会按照添加的顺序来分配索引序列分为:可变序列—列表。不可变序列—》字符串(就是将一个个字符串起来),元祖(tuple)列表(list)列表理解Python中的一个对象,和Python中的Number、boo

2021-08-16 01:01:48 162

原创 2021-08-13-springboot整合多数据源

文章目录SpringBoot+Mybatis整合多数据源方案分包方式整合注解方式整合分包方式整合案例与应用场景应用场景整合步骤注解方式整合案例与应用场景应用场景整合步骤参考链接SpringBoot+Mybatis整合多数据源方案分包方式整合使用不同数据源的Mapper分布在不同的包下,这个时候mybatis通过扫描不同的Mapper包就可以创建不同的数据源注解方式整合在不同的mapper接口,或者mapper下方法接口上添加注解实现不同的数据源需要mybatis-plus插件分包方式整

2021-08-13 00:48:05 120

原创 2021-08-13-SQL中的having的使用技巧和应用场景

文章目录Having和group by语句Having子句常见的having查询应用场景时间管理小知识参考链接Having和group by语句Having子句having子句主要是和where做对比的,where是sql查询时的一个过滤条件。where是建立在表字段基础上的,跟表结构关联性很大having子句是分组查询后的过滤条件,分组查询后是不能用where的,因为where是建立在表字段之上的,分组查询后的字段并非表字段,这个时候就需要用having来查询了where是分组前的筛选条件,g

2021-08-13 00:25:24 1167

一个网站的前端设计

用了CSS,HTML,PhotoShop,和HBuilder等技术和软件工具适合初学者。里面注释很多,初学者可以轻易理解

2018-03-22

python视频资源教程包含python运维,基础、进阶、一些项目

一些关于python 的技术,包含python基础、进阶、项目,价值很高的一些资源,希望大家多多赏脸。百度云盘

2018-01-27

空空如也

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

TA关注的人

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