自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(154)
  • 资源 (3)
  • 收藏
  • 关注

原创 《数据结构》二叉树

一、概念 二叉树是n(n>=0)个元素的有限集合,改集合或者为空,或者由一个根及两棵互不相交的左子树和右子树组成,其中左子树和右子树也均为二叉树。 二叉树的任一结点都有两棵子树(它们中的任何一个都可以是空子树),并且这两棵树之间 有次序关系,及交换位置后就成为一颗不同的二叉树。二叉树上任意左子树、右子树分别称该结点的左孩子和右孩子。二叉树的 五种形态。二、类型分类按类型分 为 完全二叉树、满二叉树。完全二叉树的 样子就是, 按顺序排列 每一层 从左到右...

2020-09-29 20:06:44 5519 52

原创 Redis 做延迟消息队列

看到消息队列,我们肯定会想到各种MQ,比如:RabbitMQ,acivityMQ、RocketMQ、Kafka等。但是,当我们需要使用消息中间件的时候,并非每次都需要非常专业的消息中间件,假如我们只有一个消息队列,只有一个消费者,那就没有必要去使用上面这些专业的消息中间件,这种情况我们可以考虑使用 Redis 来做消息队列。

2023-03-07 15:47:08 1078 1

原创 项目实战,集成Redis分布式锁

今天我们就来把基于Redis实现的分布式锁,集成到我们的项目中,分布式锁历来都受到大家的关注。不管是工作中、面试中,分布式锁永远是个不老的话题。分布式锁背景为什么要有分布式锁呢?不是已经有synchronized、ReantrantLock等相关锁了吗?是的,我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的锁进行处理,并且可以完美的运行,毫无Bug!注意:这是单机应用,后来业务发展,需要做集群,一个应用需要部署到几台机器上然后做负载均衡 :上图可以看到,变量A存在三

2023-03-07 11:54:19 2350

原创 【JVM】逃逸分析

在Java虚拟机中,Java堆上分配创建对象的内存空间几乎是Java程序员都知道的常识,Java堆中的对象对于各个线程都是共享和可见的,只要持有这个对象的引用,就可以访问到堆中存储的对象数据。相对的,如果一个数据可以继续分解,那它就被称为聚合量(Aggregate),Java中的对象就是典型的聚合量。线程同步本身是一个相对耗时的过程,如果逃逸分析能够确定一个变量不会逃逸出线程,无法被其他线程访问,那么这个变量的读写肯定就不会有竞争,对这个变量实施的同步措施也就可以安全地消除掉。

2023-03-04 21:10:39 3963 12

原创 【Spring Boot】 过滤器、监听器、拦截器的使用

对比一下其实我们可以发现,过滤器能做的事拦截器都能做,二拦截器做的事过滤器不一定做的了。使用Filter的完整流程:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。Filter是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源。就相当于于考试的时候,考官一直盯着你们,一旦有人有动静,考官就一直监督者你们,一旦有人作弊,考官马上将其拿下。测试类,写个controller来测试。

2023-03-04 21:06:02 4125 3

原创 【Java】 异步调用实践

BIO 模型当用户进程调用了recvfrom 这个系统调用,kernel 就开始了 IO 的第一个阶段:准备数据。对于 network io 来说,很多时候数据在一开始还没有到达(比如,还没有收到一个完整的UDP包),这个时候 kernel 就要等待足够的数据到来。而在用户进程这边,整个进程会被阻塞。当 kernel 一直等到数据准备好了,它就会将数据从 kernel 中拷贝到用户内存,然后 kernel 返回结果,用户进程才解除 block 的状态,重新运行起来。

2023-03-03 10:54:23 667

原创 Spring源码分析:创建 BeanDefinition 流程

一、前期准备1.1 环境依赖1.2 实体类简单的User类,在测试过程中创建这个User类的对象。在applicationContext.xml配置bean对象。1.4 测试代码通过applicationContext.xml配置应用程序的上下文,在容器中创建User对象二、探究过程2.1 目标目标:BeanDefinition是什么?是什么时候创建的?2.2 BeanDefinition的创建过程2.2.1 回顾bean对象的创建。

2023-02-24 10:22:44 616

原创 如何设计一个 70w 在线人数的弹幕系统?分析

第一期弹幕使用腾讯云支持,效果并不理想,经常出现卡顿、弹幕偏少等问题。最终促使我们开发自己的弹幕系统。性能要求是需要支持,单房间百万用户同时在线。

2023-01-25 22:26:44 737

原创 MySQL-索引的数据结构

1.1 索引概述MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。索引的本质:索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”,满足特定查找算法。这些数据结构以某种方式指向数据, 这样就可以在这些数据结构的基础上实现。1.2 优点(1)类似大学图书馆建书目索引,提高数据检索的效率,降低,这也是创建索引最主要的原因。(2)通过创建唯一索引,可以保证数据库表中每一行。(3)在实现数据的参考完整性方面,可以。换句话说,对于有依赖关系的子表和父表联合查询时,可以提高

2022-11-15 14:32:15 152

原创 使用Jmeter进行性能测试的操作方法

JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,下载好之后 ,他得需要 jdk配置 好环境变量 才能运行。这是很重要的一点,。

2022-11-15 14:13:55 1155 2

原创 SpringCloud_OAuth 2.0 实现单点登录

这里我们首先需要了解一种全新的登录方式:OAuth 2.0,我们经常看到一些网站支持第三方登录,比如淘宝、咸鱼我们就可以使用支付宝进行登录,腾讯游戏可以用QQ或是微信登陆,以及微信小程序都可以直接使用微信进行登录。我们知道它们并不是属于同一个系统,比如淘宝和咸鱼都不属于支付宝这个应用,但是由于需要获取支付宝的用户信息,这时我们就需要使用 OAuth2.0 来实现第三方授权,基于第三方应用访问用户信息的权限(本质上就是给别人调用自己服务接口的权限),那么它是如何实现的呢?

2022-11-01 08:27:19 3231 1

原创 Redis持久化方式

AOF采用文件追加方式,文件会越来越大为避免出现此种情况,新增了重写机制, 当AOF文件的大小超过所设定的阈值时,Redis就会启动AOF文件的内容压缩,只保留可以恢复数据的最小指令集.可以使用命令bgrewriteaof

2022-10-24 15:00:00 127 1

原创 【Sentinel】 应用配置

现在我们就可以在Sentinel控制台中对我们的服务运行情况进行实时监控了,可以看到监控的内容非常的多,包括时间点、QPS(每秒查询率)、响应时间等数据。然后在配置文件中添加Sentinel相关信息(实际上Sentinel是本地在进行管理,但是我们可以连接到监控页面,这样就可以图形化操作了)启动之后,就可以访问到Sentinel的监控页面了,用户名和密码都是。按照上面的方式,我们将所有的服务全部连接到Sentinel管理面板中。注意下载下来之后是一个。

2022-10-04 14:35:24 525 3

原创 【Nacos】安装与部署

Nacos服务器是独立安装部署的,因此我们需要下载最新的Nacos服务端程序,下载地址:https://github.com/alibaba/nacos,表示单节点模式,Mac和Linux下记得将解释器设定为。至此,Nacos的安装与部署完成。默认的用户名和管理员密码都是。

2022-10-04 08:19:52 6726 1

原创 jvm-基础

jvm-基础。在虚拟机上看: 用top定位哪个进程对cpu的占用过高 ps H -eo pid,tid,%cpu | grep 进程id (用ps命令进一步定位是哪个线程引起的cpu占用过高) jstack 进程id 可以根据线程id 找到有问题的线程,进一步定位到问题代码的源码行号...

2022-08-16 14:45:29 179 1

原创 生产出现oom问题,怎么排查?

一般常见的OOM,要么是短时间内涌入大量的对象,导致你的系统根本支持不住,此时你可以考虑优化代码,或者是加机器;要么是长时间来看,你的很多对象不用了但是还被引用,就是内存泄露了,你也是优化代码就好了;这就会导致大量的对象不断进入老年代,然后频繁full gc之后始终没法回收,就撑爆了要么是加载的类过多,导致class在永久代理保存的过多,始终无法释放,就会撑爆。

2022-06-07 20:53:28 404 1

原创 秒杀如何设计及实现

互联网正在高速发展,使用互联网服务的用户越多,高并发的场景也变得越来越多。电商秒杀和抢购,是两个比较典型的互联网高并发场景。虽然我们解决问题的具体技术方案可能千差万别,但是遇到的挑战却是相似的,因此解决问题的思路也异曲同工。

2022-05-16 20:19:04 1562

原创 面向过程和面向对象各自的特征详细论述

面向过程,现实生活中 什么样,就怎么做。 它是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。简写为POP。面向对象,思想出现的比较晚,现实生活中没有 我们进行抽象。 面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工...

2022-05-13 19:45:31 866 1

原创 ER图总结

本文目录:两个有趣故事老田买火车票买火车票已经是很老的话题了。老田以前每年都会坐绿皮车回家过年,幸运的是这两年老家市区也有高铁了,少了些许奔波。现在就来回忆下当年的情景:每到年底最头疼的就是抢火车票,每次都需要去火车站排队买票。因为只要网上的票一开始出售,基本上都是手慢无,最后就只能在周末时去火车站买票了。但是,有一次无意间听说黄牛可以帮忙买票,只是要付点手续费。于是,后面每当自己抢不到票时,都会走黄牛,费用也不是很高。相比自己苦逼到火车站买票,还是轻松很多的。

2022-05-12 20:30:05 1761

原创 线上问题解决

个人建议,生产环境不建议使用自动ack,这样会QOS无法生效。在使用手动ack的时候,需要非常注意消息签收。其实在将有问题的MQ重置时,是将错误的消息给清除才没有问题了,相当于是消息丢失了。try {// 业务逻辑。// 输出错误日志。}finally {// 消息签收。

2022-05-05 10:37:09 326 3

原创 Spring源码分析:Bean生命周期

准确的了解的生命周期是非常必要的。我们通常使用作为Spring容器。这里,我们讲的也是中Bean的生命周期。而实际上也是差不多的,只不过处理器需要手动注册。

2022-05-03 08:50:14 213 3

原创 @Resource和@Autowired的区别

Autowired功能虽说非常强大,但是也有些不足之处。比如它跟Spring强耦合了,如果换成了其他框架,功能就会失效。而@Resource是JSR-250提供的,它是Java标准,绝大部分框架都支持。除此之外,有些场景使用@Autowired无法满足的要求,改成@Resource却能解决问题。1、@Autowired默认按byType自动装配,而@Resource默认byName自动装配。2、@Autowired只包含一个参数:required,表示是否开启自动准入,默认是true。

2022-04-27 14:06:29 381 1

原创 vue node 和node-sass版本不匹配导致,vue项目install失败

目录前提解决方案npm install node-sass@npm install前提小编在运行前端项目的时候,发现了环境初始化一致失败。通过排查报错信息,发现本机安装的node 版本过高和node-sass 冲突不匹配。解决方案查看目前的node版本运行cmd窗口,执行如下命令。node -vnode 和node-sass 版本对应安装对应版本-node-sass不加版本,默认安装和当前版本匹配的node-sass版本...

2022-03-29 22:12:30 1090 2

原创 Redis概述

什么是redis?Redis(Remote Dictionary Server 即远程字典服务)是完全免费、开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。基于内存的可以持久化。最热门的Nosql技术之一redis能干嘛?内存存储、持久化,内存中是断电即失,所以说持久化很重要 效率高、可以用于缓冲 发布订阅系统 地图信息分析 计时器、计数器(浏览量) ......特性多样的数据类型 持久化 集群 事务 ....它的优势体现在哪?..

2022-03-29 22:01:00 584

原创 Nosql概述

## 01、目标SpringBoot中初始化加载的四种方式## 02、分析在平时的业务模块开发过程中,平常我们经常会有一些需求是项目启动时候加载一下预置数据,难免会需要做一些全局的任务、缓存、线程等等的初始化工作,那么如何解决这个问题呢?方法有多种,但具体又要怎么选择呢?![img](https://kuangstudy.oss-cn-beijing.aliyuncs.com/bbs/2021/06/03/kuangstudy073a9bf7-cb8a-4a3d-8b16-66271c6c1

2022-03-29 21:56:52 2629

转载 雪花算法的使用

关于雪花算法,大部分文章都可以看到这个图。这个图很好的诠释了雪花算法生成Id的几个重要组成部分,这里也不展开具体介绍了。时间戳,工作机器Id,序列号这些位数是可以根据自己的业务场景来进来调整的。10bit工作机器Id,其实就是上面说到的机器码,雪花算法内部并没有做任何处理,而是交由业务方自己定义,所以业务方需要自己保证这个的唯一性。大部分情况,会把它分为数据中心标识和机器Id。这样的话可以支持32个数据中心和32个机器Id。

2022-02-28 21:20:16 933 2

原创 解决雪花算法生成后,前端接收后缺失精度问题

JS的基础类型Number,遵循IEEE 754规范,采用双精度存储(double precision),具有53位有效数字精度,并总共占用64 bit。默认模式是最近舍入(Round to Nearest)。不超过Math.pow(2, 53) = 9007199254740992(16位) 不会丢失精度。:可能造成 各种类型 返回到前端都是 Stirng类型。前端接收后为: 252938458870317060。将要传的id 上加上注解。

2022-02-27 20:24:05 640 13

转载 fastdfs安装步骤

目录一定要安装执行步骤向下依次执行。环境准备使用的系统软件编译环境磁盘目录安装libfastcommon安装FastDFS安装fastdfs-nginx-module安装nginx单机部署tracker配置storage配置client测试配置nginx访问分布式部署tracker配置storage配置client测试配置nginx访问启动防火墙trackerstoragenginx检测集群说明配置文

2022-01-27 15:57:42 392

原创 Spring源码分析:启动流程

对于 Spring 启动流程和 Bean 的生命周期,总有一些小地方搞的不是很清楚,干脆直接通过修改代码增加日志输出,使用断点单步调试,把整个流程捋顺了。

2022-01-21 19:02:50 493 3

原创 实战 用户登录、session校验、分布式存储session

本文首先是实战了登录功能,其次接着实现了校验session拦截处理,然后总结出session分布式四种方案,最后实现了基于redis存储session的方案。

2021-12-31 14:34:14 1075

原创 TCP和UDP区别

一、TCP/IP网络模型计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议(protocol)。TCP/IP 是互联网相关的各类协议族的总称,比如:TCP,UDP,IP,FTP,HTTP,ICMP,SMTP 等都属于 TCP/IP 族内的协议。TCP/IP模型是互联网的基础,它是一系列网络协议的总称。这些协

2021-12-29 11:48:48 703 1

原创 Java中的多线程学习

引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都对其中的一些概念不够明确,如同步、并发等等,让我们先建立一个数据字典,以免产生误会。多线程:指的是这个程序(一个进程)运

2021-12-22 10:11:33 1005

原创 Kafka安装教程

Kafka实例应用场景,京东 到货通知, 货到了 给客户提醒。。生产者 消费者模式加入储存中介,减少生产者与消费者的耦合,进行缓存,数据单元保证数据的完整性优点:实时的数据处理、消息持久化、负载均衡和故障转移Kafka安装下载kafkawget https://downloads.apache.org/kafka/2.8.0/kafka_2.13-2.8.0.tgz安装 kafkatar -xvf kafka_2.13-2.8.0.tgz修改 conf

2021-12-17 16:10:14 2477

原创 @Autowire和@Resource

注解@Autowire和@Resource,我们都知道都可以用来装配bean,将对象加载到容器之中,但是他们具体有什么区别,现在简单说明一下这俩个注解的区别。@Autowired@Autowired默认按照类型装配,默认情况下它要求依赖对象必须存在,如果允许为null,可以设置它required属性为falsee@Resource装配顺序如果同时指定name和type,则从容器中查找唯一匹配的bean装配,找不到则抛出异常如果指定name属性,则从容器中查找名称匹配的bean装配,找不到则抛出异

2021-11-23 09:12:08 4972 1

原创 vue仿网易云音乐播放器

写了一个仿网易云音乐播放界面,能完整的实现音乐播放功能。前端简单的使用vue组件和audio标签实现了播放器界面,后端则是调用网易云的API获取对应的歌曲信息。歌曲播放界面(musicPlay.vue)<template> <div class="main-page"> <audio :src="songInfo.url" id="music" autoplay="autoplay"></audio> <div

2021-11-22 17:03:08 5917

原创 线上问题排查:接口超时

排查过程走了很多弯路,由于眼界和知识储备问题,也进入了一些思维误区,希望此问题能以后再查询此类问题时能有所警示和参考。而且很多排查方法和思路都来自于部门 leader 和 组里大神给的提示和启发,总结一下也能对这些知识有更深的理解。

2021-11-18 14:08:57 8321 5

原创 SpringBoot源码分析:核心原理

1.新建jar包自启脚本sudo vi /etc/init.d/jarSysInit.sh按i键进入编辑模式 输入以下内容:#!/bin/bash#JDK start 配置自己服务器的JDK环境(jkd8还是11)export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64export CLASSPATH=.:JAVAHOME/lib/dt.jar:JAVA_HOME/lib/dt.jar:JAVAH​OME/lib/dt.jar:JAVA_HOME/lib/too

2021-11-14 19:23:57 4395

原创 fastdfs启动tracker启动不起来也不报错

fastdfs启动tracker启动不起来也不报错 问题fdfs_trackerd /etc/fdfs/tracker.conf之后 也不出问题,ps aux|grep fdfs 也查不到启动,,解决问题:执行fdfs_trackerd /etc/fdfs/tracker.conf.sample去创建 这个文件 。。mkdir /opt/fastdfsmkdir /opt/fastdfs/tracker然后执行fdfs_trackerd /etc/fdfs/tracker.

2021-10-30 19:40:22 5430

原创 jenkins 配置好,jar不能推到服务器上

它是要从 target 那去找这个 jar , 但是我们开始 写的是target/ar-plus-backend.jar。它就找不到,所以推不上去。错误一: 创建的 ar-plus-banck文件 是 root 权限去创建的,,应该用 admin 去创建,要不然权限不够 创建不上去。问题,在配置ar-plus 的时候,配置好之后,发现服务上 ar-plus-banck文件下,没有该jar包。为什么修改为target/ar-backend.jar?

2021-10-29 16:53:18 4411

原创 java对List中信息进行排序

当查表,的到下图中的 一个 list信息。要将下图的信息变得有序。List排序4种写法方式1:JAVA中我们可以使用java.util.Collections类的sort(List list)方法对list集合中的元素排序。方式2:JDK8之后特别是lambda表达式的盛行,而且Collections的sort方法其实是调用了List接口自己的sort方法;所以可以使用List接口自己的sort方法排序方式3:方式2的lambda写法方式4:Stream流的sort方法写法。

2021-09-26 15:45:54 10329 7

文件上传到fastdfs服务器demo

文件上传到fastdfs服务器demo,

2022-03-29

通过java向fastdfs上传文件实例

通过java向fastdfs上传文件实例

2022-03-05

ChargeSystem1.1.zip

机房项目 Visual Studio

2021-09-10

空空如也

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

TA关注的人

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