自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL执行计划解读

​ MySQL查询进行SQL查询,一般要求尽量使用到索引,否则会导致全表扫描。问题1:全表扫描会产生什么问题?全表扫描实际上是直接扫描表的主键索引,依次读并发送。详细介绍,查看以下博客。MySQL-全表扫描以及MySQL-全表扫描成本计算​ 另外,简单查询是不会加锁的。例如select * from table;问题2:怎么确定有没有使用到索引?explain关键字。

2024-05-16 14:26:55 311

原创 如何查看MySQL binlog日志

错误 [1227] [42000]: Access denied;you need (开启方式:打开mysql配置文件my.cnf,在[mysqlId]下面增加。若是执行SQL报错如下,则是权限不够。若是OFF,则需要开启binlog日志。log_bin:on 是开启状态。

2024-05-13 11:24:19 429 1

原创 Mysql修改表结构、添加索引会锁表吗?

在MySQL5.7和MySQL8.0中,表结构修改和索引添加通常不会锁定整个表。但是,在某些情况下,MySQL可能需要锁定整个表。

2024-05-10 16:57:31 905

原创 软件可靠度计算

软件的整体可靠度依据:若是单个就是当前部件的可靠度。若是多个部件,就需要多个部件的可靠度相乘。若是多个部件且有相同备份,那么计算公式更加不一样。计算公式:部件数:N部件可靠度均为:R单个部件的可靠度为R单个并联部件(备份)可靠度为1-(1-R)(1-R)单个部件+单个并联部件:R*(1-(1-R)(1-R))单个部件+两个并联部件:R*(1-(1-R)(1-R))*(1-(1-R)(1-R))

2024-05-08 17:21:38 160

原创 表达式的记法

前缀、中缀、后缀 都是以符号为基准。

2024-04-29 11:29:19 208

原创 Mac Pro 突然不能双击打开文件夹

当Mac Pro 突然不能双击打开文件夹 不防右击看看这儿 有没有勾选。如果勾选就会在打开的瞬间 闪退关掉文件夹。

2024-03-06 18:03:56 644

原创 分享软考课件笔记【 Persimmon NGP 项目】

在微信公众号【 Persimmon NGP 项目】软考证书 的好处都懂得 中级不需要写论文。分享软考中级 软件设计师证书的课件笔记。

2024-03-06 10:38:16 311

原创 生产报错日志【The last packet successfully received from the server was 5,007 milliseconds ago】

生产日志报错 显示日志异常为:

2024-02-20 15:45:56 271

原创 新安装的IDEA 在工作的时候总是卡?

之后发现还是卡,就以为CPU内存太小了,是8G。再次注意到还有日志输出,常规来说,日志输出不影响服务,但是写入日志也需要占用CPU的资源,由此这也是一方面的原因。(此项特别容易忽略)后来重新安装了一个新的,但是没注意看默认内存设置,然后发现工作的时候有点卡。在这个过程中,博主一不小心把垃圾收集器给改了,G1变成了CMS,这也是工作的时候,卡一会一会的。一般都是考虑IDEA的内存是不是太小、或者CPU的内存,和磁盘空间不够了,但是还有种可能是垃圾收集器。之前复制的时候,大概脑袋是懵的吧,学的都忘了呀!

2024-01-19 09:40:30 579

原创 sun.misc.BASE64Encoder() 找不到jar包

导入报错

2024-01-04 15:41:58 474

原创 RocketMQ-NameServer详解

​ RocketMQ架构上主要分为四部分, Broker、Producer、Consumer、NameServer,其他三个都会与NameServer进行通信。​ NameServer 是专为 RocketMQ 设计的轻量级名称服务,也是一个简单的Topic路由注册中心。具有简单、可集群横向扩展、无状态,节点之间互不通信等特点。​NameServer 通常以集群的方式部署,各实例间相互不进行信息通讯,只是互为备份,达到高可用的效果。​。

2023-11-23 12:29:58 274

原创 Sentinel概述

​ 在现行高并发场景下,通常会采用微服务架构,可以更好的对服务接口进行水平扩展、接口限流等有效保障服务的可用性和稳定性。其中为了保障服务的高可用,同时也为了防止故障蔓延,通常会选择断路器,防止故障的服务还一直占用CPU资源,可能导致其他服务不能及时处理数据请求。​ 由于服务器所能承受的压力是有限的,为了保证可用性,一般会做服务限流,减少服务压力。

2023-11-15 18:16:09 435

原创 压测参数说明

​ **QPS 其实是衡量吞吐量(Throughput)的一个常用指标。**一个有着简单业务逻辑(包括数据库访问)的程序在单核心运行时可以提供 50 – 100 左右的 QPS,即每秒可以处理 50 – 100 个请求。​ 大部分请求的响应时间在 15 – 30 毫秒左右,如果每个请求花费 15 毫秒的话,那么每秒可以处理 66 个请求,也就是我们前面提到的 66 QPS;而如果都是复杂的请求,每个需要 30 毫秒的话,那么服务器就只有 33 QPS 了。

2023-10-24 18:35:10 389

原创 Netty的高性能基石ByteBuf

​ NIO中缓冲区是数据传输的基础,JDK通过ByteBuffer实现,Netty框架中并未采用JDK原生的ByteBuffer,而是构造了ByteBuf。​Netty中的ByteBuf对ByteBuffer做了大量的优化,比如说内存池,零拷贝,引用计数(不依赖GC)。​ Netty的内存池,适用于大文件传输设计、也适用于普通业务型的消息。大文件采用堆外内存,业务处理采用池化内存,方便管理,同时还能提升性能。

2023-10-21 16:55:26 206

原创 kafka简述

​ 在大数据高并发场景下,当系统中出现“生产“和“消费“的速度或稳定性等因素不一致的时候,就需要消息队列,作为抽象层,弥合双方的差异。一般选型是Kafka、RocketMQ,这源于这些中间件的高吞吐、可扩展以及可靠性。​另外企业中离线业务场景实时业务场景都需要使用到kafka,Kafka具备数据的计算能力和存储能力,但是两个能力相对(MR/SPARK,HDFS)较弱,Kafka角色的角色与hbase比较像,层级关系比较多。

2023-10-13 19:08:19 1069

原创 ES中个别字段属性说明

​ 先获取正在合并的段列表,通过调用 getSortedBySegmentSize 方法,根据段的大小从大到小对 infos 中的段进行排序,得到排序后的列表 sortedInfos。**表示允许索引中的删除文档占总文档数的最大百分比。**在forcemerge和forcemergeDeletes情况下,同时合并的最大段数,默认无限。**在NATURAL情况下,最大允许生产的合并后段的大小,默认5G。​ 计算所有段的删除文档的比例,超出这比例的段或者索引一定会被合并。

2023-10-10 20:08:34 512

原创 Unsafe概述

​ 如果看过Java并发包里面的源码、或者netty网络通讯相关源码,就会到Unsafe类有一定的了解。这个与其的特性有关。​ **Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,如直接访问系统内存资源、自主管理内存资源等,这些方法在提升Java运行效率、增强Java语言底层资源操作能力方面起到了很大的作用。**但是过度使用、不正确使用会适得其反,所以慎用。

2023-10-07 16:47:20 128

原创 ConcurrentHashMap详解

ConcurrentHashMap

2023-10-04 17:12:31 203

原创 Seata详解

Seata详解

2023-10-01 09:10:07 214

原创 MySQL-三大日志

bin log redo log undo log

2023-09-19 17:45:06 327

原创 MySQL缓冲池Buffer Pool

MySQL Buffer Pool 缓冲池

2023-09-18 20:15:19 288

原创 ES-索引管理

​ 搜索引擎是对数据的检索,所以我们先从生活中的数据说起。结构化数据非结构化数据也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。指具有固定格式或有限长度的数据,如数据库,元数据等。又可称为全文数据,不定长或无固定格式,不适于由数据库二维表来表现,包括所有格式的办公文档、XML、HTML、Word 文档,邮件,各类报表、图片和咅频、视频信息等。

2023-09-08 21:04:22 4928

原创 SpringBatch简述

​ 如今微服务架构应用增多,但在企业里还存在海量数据的批处理场景。诸如银行的金融机构中,每天有3-4万笔的批处理作业需要处理。而常见处理方案有:1、数据脚本跑批2、批处理框架3、多线程事务处理方案。**健壮性:**不会因为无效数据或错误数据导致程序崩溃;**可靠性:**通过跟踪、监控、日志及相关的处理策略(重试、跳过、重启)实现批作业的可靠执行;**扩展性:**通过并发或者并行技术实现应用的纵向和横向扩展,满足海量数据处理的性能需求;​。

2023-08-31 16:20:43 371

原创 Spring Security概述

​Spring Security是一个功能强大且高度且可定制的身份验证和访问控制框架,除了标准的身份认证和授权之外,它还支持点击劫持,CSRF,XSS,MITM(中间人)等常见攻击手段的保护,并提供密码编码,基于HTTP Basic的身份验证、基于HTTP Digest的身份验证、LDAP认证,Session管理,Remember Me认证,JWT,OAuth 2.0等功能特性。​ Spring Security的核心思想是认证和授权,即验证用户身份并授予相应的权限。

2023-08-27 17:57:43 436

原创 JUC工具类-LockSupport概述

​ 多线程并发场景中,时常需要线程协同,故而需要对当前线程进行阻塞,并唤醒需要协同的线程来一起完成任务。​ LockSupport来自于JDK1.5,位于JUC包的locks子包,是一个非常方便实用的线程阻塞工具类,它定义了一组的公共静态方法,这些方法提供了最基本的线程阻塞和唤醒功能,可以在线程内任意位置让线程阻塞、唤醒。​在AQS框架的源码中,当需要阻塞或唤醒一个线程的时候,都会使用LockSupport工具来完成。

2023-08-26 17:03:44 177

原创 Gateway简述

​ 在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端调用多个微服务接口的地址。另外微服务架构的请求中,90%的都携带认证信息/用户登录信息,都需要做相关的限制管理,API网关由此应允而生。客户端多次请求不同的微服务,增加客户端代码或配置编写的复杂性。认证复杂,每个服务都需要独立认证。存在跨域请求,在一定场景下处理相对复杂。​。

2023-08-22 22:52:53 1559

原创 Nacos简述

​Nacos主要在微服务生态中可以发现、配置和管理微服务,实现动态服务发现和注册、服务配置、DNS服务、服务元数据及流量管理。​ 目前Nacos支持多种生态,比如SpringCloud、Dubbo、云原生Cloud Native等。​ Nacos除了服务的注册发现之外,还支持动态配置服务。并且支持负载均衡以及流量权重,另外提供sdk方式服务注册和发现和DNS服务。并且支持集群,也有心跳检测机制,服务健康检测机制,以及异常上报,有直观的UI方便管理。

2023-08-22 20:07:33 222

原创 Synchronized与Java线程的关系

​ Java多线程处理任务时,为了线程安全,通常会对共享资源进行加锁,拿到锁的线程才能进行访问共享资源。而加锁方式通过都是Synchronized锁或者Lock锁。​ 那么多线程在协同工作的时候,线程状态的变化都与锁对象有关系。​如果当前锁已偏向其他线程||epoch值过期||class偏向模式关闭||获取偏向锁的过程中存在并发冲突,都会进入到锁膨胀方法, 在该方法中会进行偏向锁撤销和升级。

2023-08-18 15:46:30 294

原创 Sharding-JDBC概述

​ Sharding-JDBC 是当当网开源的适用于微服务的分布式数据访问基础类库,完整的实现了分库分表,读写分离和分布式主键功能,并初步实现了柔性事务。​ **ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy 和 Sharding-Sidecar这3款相互独立的产品组成。

2023-08-11 18:37:17 1165

原创 JUC工具类:CompletableFuture介绍

​ 一些业务场景我们需要使用多线程异步执行任务,加快任务执行速度。JDK5新增了Future接口,用于描述一个异步计算的结果。虽然 Future 以及相关使用方法提供了异步执行任务的能力,但是对于结果的获取却是很不方便,我们必须使用的方式阻塞调用线程,或者使用轮询方式判断任务是否结束,再获取结果。​ 与此同时,Future无法解决多个异步任务需要相互依赖的场景,简单点说就是,主线程需要等待子线程任务执行完毕之后在进行执行,这个时候你可能想到了,没错确实可以解决。

2023-08-07 16:14:59 171

原创 Redission分布式锁详解

​ 在分布式系统中,当不同进程或线程一起访问共享资源时,会造成资源争抢,如果不加以控制的话,就会引发程序错乱。而分布式锁它采用了一种互斥机制来防止线程或进程间相互干扰,从而保证了数据的一致性。​ **Redission是一个基于Redis实现的Java分布式对象存储和缓存框架。它提供了丰富的分布式数据结构和服务。**例如:分布式锁、分布式队列、分布式Rate Limiter等。

2023-07-27 18:29:38 9793

原创 Linux零拷贝

​ 磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝、直接 I/O、异步 I/O 等等,这些优化的目的就是为了提高系统的吞吐量,另外操作系统内核中的磁盘高速缓存区,可以有效的减少磁盘的访问次数。​ 早期 I/O 操作,内存与磁盘的数据传输的工作都是由 CPU 完成的,而此时 CPU 不能执行其他任务,会特别浪费 CPU 资源。

2023-07-06 16:55:35 117

原创 Docker基础

*而在创建容器的时候,会创建唯一的veth pair分别放到本地主机和新容器中。​ 主机 A 和主机 B 的网卡一都连着物理交换机的同一个 vlan 101,这样网桥一和网桥三就相当于在同一个物理网络中了,而容器一、容器三、容器四也在同一物理网络中了,他们之间可以相互通信,而且可以跟同一 vlan 中的其他物理机器互联。​ 如果在企业内部应用,或者做多个物理主机的集群,可能需要将多个物理主机的容器组到一个物理网络中来,那么就需要将这个网桥桥接到我们指定的网卡上。

2023-07-06 15:12:06 346

原创 Docker介绍

虚拟化技术什么是虚拟化​ 在计算机技术中,虚拟化(Virtualization)是一种资源管理技术。它是将计算机的各种实体资源,如:服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以用更好的方式来利用这些资源。​ 虚拟化的目的是为了在同一个主机上运行多个系统或应用,从而提高系统资源的利用率,并带来降低成本、方便管理和容错容灾等好处。虚拟化技术分类​ 从实现形式来分,虚拟化技术可分为基于硬件的虚拟化和基于软件的虚

2023-07-03 18:43:41 2122

原创 ES-工作原理

​ 搜索引擎是对数据的检索,而数据总体分为两种:结构化数据和非结构化数据。而对于结构化数据,因为他们具有特定的结构,所以一般都是可以通过关系型数据库MySQL/oracle的二维表的方式存储和搜索,也可以建立索引。​ 对于非结构化数据,对他们进行搜索主要有两种方法:顺序扫描、全文检索。而全文检索就依靠Apache 的 Lucene全文检索引擎工具包。​ 数据采用乐观锁机制通过算法来判断存储在哪个分片上,先存入缓存,后刷盘到磁盘。

2023-06-24 16:40:37 2679

原创 ElasticSearch(ES)介绍

1、ElasticSearch具备非常强的大数据分析能力。虽然Hadoop也可以做大数据分析,但是ElasticSearch的分析能力非常高,具备Hadoop不具备的能力。比如有时候用Hadoop分析一个结果,可能等待的时间比较长。2、ElasticSearch可以很方便的进行使用,可以将其安装在个人的笔记本电脑,也可以在生产环境中,将其进行水平扩展。3、在当今大数据时代,掌握近实时的搜索和分析能力,才能掌握核心竞争力,洞见未来。​ ElasticSearch是最受欢迎的企业级搜索引擎。​。

2023-06-13 12:44:16 971

原创 RocketMQ详解

​ RocketMQ作为一款纯Java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。1、NameServer 名称服务器用于保存Broker消息服务器的相关元信息,Producer 和 Consumer 使用的话都需要查找Broker 消息信息。2、在启动时,Broker消息服务器会向NameServer 注册自己的信息,并与NameServer 服务器保持长连接,NameServer会每隔30S会进行检查Broker是否存活。

2023-06-07 20:58:27 1993

原创 RabbitMQ详解

​消息中间件是在消息的传输过程中保存消息的容器,消息中间件再将消息从它的源中继到它的目标时充当中间人的作用。队列的主要目的是提供路由并保证消息的传递,如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功的传递它为止,当然,消息队列保存消息也是有限期的。​RabbitMQ是实现AMQP消息队列和路由功能的进程,内部结构为多个Virtual Host虚拟机,虚拟机中有Exchange和Queue两个组件。

2023-06-06 14:00:13 703

转载 Redis-集群节点分片手段

​虽然可以通过主从复制和哨兵机制保障了高可用,就读写分离而言虽然slave节点扩展了主从的读并发能力,但是写能力和存储能力是无法进行扩展,就只能是master节点能够承载的上限。​ 如果面对海量数据那么必然需要构建master(主节点分片)之间的集群,同时必然需要吸收高可用(主从复制和哨兵机制)能力,即每个master分片节点还需要有slave节点,这是分布式系统中典型的纵向扩展(集群的分片技术)的体现;所以在Redis 3.0版本中对应的设计就是Redis Cluster。

2023-06-03 17:30:18 161

原创 Redis-主从复制以及哨兵

​ 在Web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务。在Redis层面,高可用的含义要宽泛一些,除了保证提供正常服务(如主从分离快速容灾技术等),还需要考虑数据容量扩展数据安全等等。​在Redis中,实现 高可用 的技术主要包括 持久化、复制、哨兵 和 集群。持久化:持久化是最简单的高可用方法。它的主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。复制:复制是高可用Redis的基础,哨兵和集群都是在复制基础上实现高可用的。

2023-06-02 18:49:35 665

Java技术路线(针对面试图总结)

Java技术路线(针对面试图总结)

2023-06-24

Java脑图(基础、框架、中间件以及原理分析)

Java脑图(基础、框架、中间件以及原理分析)

2023-06-24

阿里云DevOps助理工程师认证笔记

阿里云DevOps助理工程师认证笔记

2023-06-23

空空如也

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

TA关注的人

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