- 博客(60)
- 收藏
- 关注
原创 MySQL—SQL优化笔记整理
SQL 优化第一节 准备数据1、修改配置为了能够看出 SQL 优化前后的性能差异,我们需要较为大量的数据。生成这些数据我们需要用到 MySQL 中的自定义函数。但是 MySQL 默认关闭了自定义函数功能,所以我们需要通过修改配置文件来开启这项功能。# 使用 vim 编辑器打开配置文件vim /etc/my.cnf在配置文件末尾增加如下内容:# 设置为 1 表示开启这项功能log_bin_trust_function_creators=1然后重启 MySQL 服务:systemctl
2022-03-13 21:28:03 4174 3
原创 Golang获取当天时间范围
Golang获取当天时间范围2022-05-19 00:00:00 +0800 CST 2022-05-19 23:59:59 +0800 CST// GetCurrentTimestamp 获取当天的时间范围 //Time类型 2022-05-19 00:00:00 +0800 CST 2022-05-19 23:59:59 +0800 CSTfunc GetCurrentTimestamp() (beginTime, endTime time.Time) { t := time.Now()
2022-05-19 18:49:14 693
原创 CompletableFuture异步编排实现商品查询
CompletableFuture异步编排问题:查询商品详情页的逻辑非常复杂,数据的获取都需要远程调用,必然需要花费更多的时间。假如商品详情页的每个查询,需要如下标注的时间才能完成获取sku的基本信息 1.5s获取sku的图片信息 0.5s获取spu的所有销售属性 1ssku价格 1.5s …那么,用户需要4.5s后才能看到商品详情页的内容。很显然是不能接受的。如果有多个线程同时完成这4步操作,也许只需要1.5s即可完成响应。1 CompletableFutu
2022-03-25 22:06:40 840
原创 分布式锁优化过程、Redisson,AOP实现缓存
分布式锁优化过程、Redisson,AOP实现缓存一 分布式锁优化过程1 本地锁的局限性我们学习过synchronized及lock锁,这些锁都是本地锁。接下来写一个案例,演示本地锁的问题1.1 编写测试代码在TestController中添加测试方法public interface RedisTestService { /** * redis的锁测试demo1 */ public void lockDemo1();}@Servicepublic
2022-03-23 20:57:29 1623
原创 Docker安装FastDfs和上传图片入门小程序
Docker安装FastDfs和上传图片入门小程序1.搭建FastDfs拉取镜像docker pull morunchang/fastdfs运行trackerdocker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh–net=host 和虚拟机使用同一套网络运行storagedocker run -d --name storage --net=host -e TRACKER_IP=服务器IP:22
2022-03-19 16:35:21 3619 1
原创 SpringMVC运行原理
SpringMVC运行原理第一节 启动过程1. Servlet 生命周期回顾生命周期环节调用的方法时机次数创建对象无参构造器默认:第一次请求 修改:Web应用启动时一次初始化init(ServletConfig servletConfig)创建对象后一次处理请求service(ServletRequest servletRequest, ServletResponse servletResponse)接收到请求后多次清理操作destroy
2022-03-16 22:44:46 1145
原创 MyCat入门配置详解和常见九种数据分片算法
MyCat入门配置详解和常见九种数据分片算法第一节 分库分表概述1、为什么要拆分?①MySQL 实例内部结构[1]单一架构[2]复制架构尽管搭建了复制架构,但是实际上从逻辑上来说仍然只有一个 db_hr 数据库。②性能瓶颈MySQL 工作过程中的性能瓶颈主要来自于下面三个方面(同等硬件条件下):数据存储量:单表 1000 万条数据达到极限;500 万条开始性能明显下降;300 万条开始就应该考虑拆分。I/O 瓶颈:关系型数据库以硬盘作为主要存储介质,所以必然存在 I/O 瓶颈。访
2022-03-15 18:20:15 4615
原创 MySQL 复制架构
MySQL 复制架构第一节 概述1.1 数据拓展热备份:数据库在运行的过程中,对数据进行备份操作。相对的,还有冷备份,冷备份需要停机,然后对数据进行备份操作。多活:所谓的多活,就是让数据库机器节点会存在多个,避免单点情况的出现。故障切换:当一台数据库物理机出现异常状况时,可以自动的切换到其他物理机上。读写分离:当存在多台数据库物理机,将读写操作分别交给不同的机器完成。负载均衡:假设当存在多台数据库物理机接收读请求时,多个请求会均匀的分配到不同的机器上,避免大量请求压在某一台机器上。1.2
2022-03-14 18:15:08 3269 1
原创 MySQL 索引的原理
索引的原理1、数据页假设有一张数据库表:emp_id(主键)emp_age(非主键)emp_name(非主键)121tom222jerry323bob424harry525lily………………对于 InnoDB 存储引擎来说,最小的存储单位就是:页。那么存放原始数据的页就称为数据页。一个数据页默认的大小是:16KB。如果我们假设一条记录所占空间的字节数是 1KB,那么这个数据页大致能够存储 16 条记录。那么如果这个
2022-03-12 23:57:43 421
原创 MySQL 逻辑架构,引擎和索引与法
MySQL 逻辑架构1、总述和其它数据库有所不同,MySQL 的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,『插件式』的『存储引擎架构』将查询和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。2、连接层最上层是一些客户端和连接服务,包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于 TCP/IP 的通信。主要任务是连接处理、授权认证、及相关的安全方案等。该层引入了线程池,为通过认证、安全接入的客户端提
2022-03-12 23:56:00 161
原创 JUC学习笔记(四)特定场景解决方案
特定场景解决方案尚硅谷JUC学习笔记第一节 CountDownLatch效果:指定一个操作步骤数量,在各个子线程中,每完成一个任务就给步骤数量 - 1;在步骤数量减到0之前,CountDownLatch 可以帮我们把最后一步操作抑制住(阻塞),让最后一步操作一直等到步骤被减到 0 的时候执行。1、班长锁门有六名同学在值日,班长负责锁门。班长必须确保所有同学都离开教室再锁门。// 声明一个变量,用来保存同学的数量int stuNum = 6;// 创建CountDownLatch对象Cou
2022-03-10 11:26:40 264
原创 JUC学习笔记(二) synchronized 底层原理探究
synchronized 底层原理探究,锁膨胀机制,对象存储结构,监视器对象结构,加锁和解锁流程,可重入性
2022-03-08 17:13:45 308
原创 JUC学习笔记(一)多线程基本知识
多线程知识尚硅谷学习笔记第一节 基础概念1、程序、进程、线程①程序程序从开发到发布的过程:源程序(源代码) → 打包封装 → 应用软件笼统的来说,源程序、应用软件都可以称之为『程序』。相对于进程、线程来说,程序是一个静态的概念。②进程内部视角:程序运行起来就是一个进程。所以相对于程序来说,进程是一个动态的概念。外部视角:站在操作系统的层次上来说,现代的大型操作系统都是支持多进程模式运行的,这样操作系统就可以同时执行很多个任务。③线程在一个进程中,需要同时处理多个不同任务,
2022-03-07 21:44:15 449
原创 JVM学习笔记(三)堆
堆空间组成部分,堆空间工作机制,永久代在各个JDK版本之间的演变,方法区、元空间、永久代之间关系,堆、栈、方法区之间关系,Runtime类使用案例,GC演示,,堆溢出异常,各状态分析,
2022-03-06 19:57:22 319
原创 JVM学习笔记(一)类加载,双亲委派
JDK、JRE、JVM关系回顾, 类加载机制,双亲委派机制,本地接口 Native Interface。执行引擎 Execution Engine。直接内存
2022-03-06 19:50:01 265
原创 RabbitMQ-高级特性
尚硅谷学习笔记-8 RabbitMQ高级特性8.1 消息的可靠投递在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。· confirm 确认模式· return 退回模式rabbitmq 整个消息投递的路径为:producer—>rabbitmq broker—>exchange—>queue—>consumerl消息从 producer 到 exch
2022-02-28 19:52:20 2109
原创 RabbitMQ-基础笔记
RabbitMQ1. 消息中间件概述1.1.为什么学习消息队列电子商务应用中,经常需要对庞大的海量数据进行监控,随着网络技术和软件开发技术的不断提高,在实战开发中MQ的使用与日俱增,特别是RabbitMQ在分布式系统中存储转发消息,可以保证数据不丢失,也能保证高可用性,即集群部署的时候部分机器宕机可以继续运行。在大型电子商务类网站,如京东、淘宝、去哪儿等网站有着深入的应用 。队列的主要作用是消除高并发访问高峰,加快网站的响应速度。在不使用消息队列的情况下,用户的请求数据直接写入数据库,在高并发的情
2022-02-28 19:47:58 698
原创 把数据库的表结构导出Excel格式
把数据库的表结构导出Excel格式话不多说先上代码!SELECTCOLUMN_NAME 列名,COLUMN_TYPE 数据类型,DATA_TYPE 字段类型,CHARACTER_MAXIMUM_LENGTH 长度,IS_NULLABLE 是否为空,COLUMN_DEFAULT 默认值,COLUMN_COMMENT 备注FROMINFORMATION_SCHEMA.COLUMNSwhere-- developerclub为数据库名称,只需要修改成你要导出表结构的数据库即可table
2022-02-22 22:37:11 6412 2
原创 计算机网络学习笔记整理
计算机网络OSI七层模型:应用层(Application Layer):只关心业务逻辑,不关心数据的传输比如微信,只关心谁发消息给了谁,不关心发了什么消息表现层(Presentation Layer):负责写上用于传输的数据格式,并转换数据格式会话层(Session Layer):负责管理两个联网实体间的连接传输层(Transport Layer):负责将数据从一个实体(一个服务或应用)传输到另一个实体,但不负责数据传输的方式。功能:数据分隔重组:将数据拆分后按顺序重组
2022-02-20 22:43:45 1909
原创 Linux环境搭建Nacos集群+Ngnix负载均衡
Linux环境搭建Nacos集群1.环境准备 需要1个nginx+3个nacos注册中心+1个mysql Linux 64bit OS Linux/Unix/Mac //推荐使用Linux系统 需要三个或三个以上的Nacos才能构成集群。本次搭建使用的是nacos-server-1.4.2.tar.gz , 下载地址https://github.com/alibaba/nacos/releases/download/1.4.2/nacos-server-1.4.2.tar.gz2.开
2022-02-18 20:38:03 950
转载 Windows 如何查看本地端口被进程占用的情况?
Windows 如何查看本地端口被进程占用的情况?1.查看端口占用情况:1.开始–运行–cmd 进入命令提示符。2.输入 netstat -ano(或netstat -nao) ,即可看到所有进程(这里显示进程的PID)占用端口的情况。3.在任务管理器中找到这个PID所对应的进程,如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-“选择列”。2.查看某个端口被哪些进程占用:1.开始–运行–cmd 进入命令提示符。2.输入netstat -aon|findstr “8069”。显
2022-02-16 21:08:44 3935
原创 单点登录及JWT学习笔记
单点登录及JWT学习笔记,1、单一服务器模式,2、SSO(Single Sign On)模式,3、Token模式。JWT学习笔记,JWT学习案例,加密解密优化,小结
2022-02-11 21:30:28 226
原创 java设计模式-享元模式
享元模式案例分析小型的外包项目,给客户A做一个产品展示网站,客户A的朋友感觉效果不错,也希望做这样的产品展示网站,但是要求都有些不同:有客户要求以新闻的形式发布有客户人要求以博客的形式发布有客户希望以微信公众号的形式发布1)需要的网站结构相似度很高,而且都不是高访问量网站,如果分成多个虚拟空间来处理,相当于一个相同网站的实例对象很多,造成服务器的资源浪费2)解决思路:整合到一个网站中,共享其相关的代码和数据,对于硬盘、内存、CPU、数据库空间等服务器资源都可以达成共享,减少服务器资
2022-02-06 22:24:30 141
原创 Docker容器卷学习笔记
Docker容器卷学习笔记1、踩坑cannot open directory .: Permission denied 2、容器卷介绍是什么能干嘛 3、容器卷命令挂载 4、容器和宿主机之间数据共享 5、读写规则映射添加说明 6、卷的继承和共享
2022-01-22 20:26:25 320
原创 跨域问题及解决方案
(原因: CORS 头缺少'Access-Control Allow-Origin') 。状态码: 200跨域产生的问题及解决方案
2022-01-19 21:07:02 2721
原创 Mybatis-plus条件构造器各种用法(三)
Mybatis-plus条件构造器各种用法,QueryWrapper,UpdateWrapper,LambdaXxxWrapper
2022-01-18 21:42:11 351
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人