自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一些常见的程序设计问题

库存扣减后发送mq消息,去异步执行创建订单流程,创建订单失败会造成少卖。可加重试机制,对多次重试依旧失败的,用定时任务处理。1.判断库存名额是否充足,2.进行扣减。2个50亿的url文件找出相同的url。为了防止超卖,必须保证这两部的原子性。2.rabbitMq的延迟队列。30min取消未支付订单。

2024-05-19 17:44:02 110

原创 Nginx读书笔记

Nginx 是高性能的 HTTP 和反向代理的web服务器。

2024-05-16 14:45:07 75

原创 spring面试题笔记

2、AsyncLogger是采用Disruptor,通过环形队列无阻塞队列作为缓冲,多生产者多线程的竞争是通过CAS实现,无锁化实现,可以降低极端大的日志量时候的延迟尖峰,Disruptor 可是号称一个线程里每秒处理600万订单的高性能队列。slf4j是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,它的接口并不能独立使用,需要和具体的日志框架实现配合使用(如log4j、logback、log4j2)。我们在项目中经常使用一个叫SLF4J的依赖,它是做什么的呢?

2023-11-05 19:06:52 293

原创 nacos面试题

通常我们说,Nacos技能保证CP,也能保证AP,具体看如何配置,但其实只不过是Nacos中的注册中心能保证CP或AP,Nacos中的配置中心其实没什么CP或AP,因为配置中心的数据是存在一个Mysql中的,只有注册中心的数据需要进行集群节点之间的同步,从而涉及到是CP还是AP,如果注册的节点是临时节点,那么就是AP,如果是非临时节点,那么就是CP,默认是临时节点。Nacos最外层是namespace隔离环境,然后是group对服务进行分组,然后就是服务,一个服务下 有多个集群,集群下有多个实例。

2023-10-29 20:27:37 293

原创 极客笔记-消息队列

如果nameserver都挂了,sdk缓存了topic信息,依旧可用,所有它是AP,即保证可用性跟分区容错性。

2023-10-16 09:34:15 149

原创 netty知识集锦2

2.定长解码器:服务器端选最大长度的消息作为定长,客户端不足补齐,缺点造成浪费。1短链接,它的消息边界是从链接建立到链接断开。netty协议设计与解析。Message编码解码。

2023-07-23 15:10:16 122

原创 netty知识集锦

Netty原理架构解析【硬核】肝了一月的Netty知识点简单深入理解高性能网络编程(Netty)中的Reactor模型(图文+代码)

2023-06-30 16:41:48 58

原创 sql知识集锦

ALTER TABLE ALTER COLUMN SET DEFAULT alter table alter column drop default。ALTER TABLE ADD COLUMN [约束条件]ALTER TABLE MODIFY COLUMN ALTER TABLE DROP COLUMN 若字段有默认值,则需要先删除字段的约束,在添加新的默认值。

2023-06-27 17:11:33 139

原创 spring框架终极版

spring

2023-04-24 20:29:27 56

原创 牛客JAVA问答题

链接:https://www.nowcoder.com/questionTerminal/82331a08576e4e9485de71fa54e12c7f来源:牛客网1、创建泛型对象的时候,一定要指出类型变量T的具体类型。争取让编译器检查出错误,而不是留给JVM运行的时候抛出类不匹配的异常。 2、JVM如何理解泛型概念 —— 类型擦除。事实上,JVM并不知道泛型,所有的泛型在编译阶段就已经被处理成了普通类和方法。 处理方法很简单,我们叫做类型变量T的擦除(erased) 。 总结:泛型代码与JVM ①

2023-03-29 10:19:29 283 1

原创 Slf4j

1

2022-09-16 15:39:28 193

原创 牛客网一些题目的错误笔记

小杂碎

2022-09-01 20:32:03 286

原创 sql习题

qqqq

2022-07-21 14:06:42 96

原创 Tomcat 集成大秘籍

Tomcat顶层架构Tomcat中最顶层的容器是Server,代表着整个服务器,从上图中可以看出,一个Server可以包含至少一个Service,用于具体提供服务。Service主要包含两个部分:Connector和Container。从上图中可以看出 Tomcat 的心脏就是这两个组件,他们的作用如下:Connector用于处理连接相关的事情,并提供Socket与Request和Response相关的转化;Container用于封装和管理Servlet,以及具体处理Request请求;一个To

2022-05-31 16:57:19 124

原创 操作系统--b站视频

https://www.bilibili.com/video/BV1wq4y1M7qf?p=45&spm_id_from=pageDriver进程

2022-05-19 18:43:22 78

原创 spring源码

Aware的作用?

2022-04-20 09:39:34 66

原创 HTTP与HTTPS的区别

HTTP 和 HTTPS 的区别(面试常考题)HTTPS:是以安全为目标的 HTTP 通道,是 HTTP 的安全版。HTTPS 的安全基础是 SSL。SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。HTTPS 设计目标:(1) 数据保密性:保证数据内容在传输的过程中不会被第三方查看。就像快递员传递包裹一样,都进行了封装,别人无法获知里面装了什么 。(2) 数据完整性:及时发现被第三方篡改的传输内容。就像快递员虽然不知道包裹里装了什么东西,但他有可能中途掉包,数据完

2022-03-21 22:45:37 73

转载 HTTP 状态码

链接200多这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。300多重定向400多请求错误400 Bad Request1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。2、请求参数有误。401 Unauthorized当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。如果当前请求已经包含了

2022-03-21 22:29:32 131

原创 并发 bibili.

锁他的原理

2022-03-20 10:28:56 225

转载 XXL-JOB原理

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。在众多XXL-Job平台的特征中,有如下几条需要关注的:1、使用简单:支持通过Web页面对任务配置,降低操作任务的难度;2、动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;3、调度中心HA(中心式):调度采用中心式设计,“调度中心”自研调度组件并支持集群部署,可保证调度中心HA;4、执行器HA(分布式):任务分布式执行,任务”执行器”

2022-03-18 11:36:58 15786

原创 WebSocket 的一些东东

HTML5 WebSocketWebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。现在

2022-03-17 21:03:05 79

原创 redis,缓存 bilibili

这个锁必须是分布式锁,,防止各个微服务并发,并且可以使不同的key对应不同的锁,,单纯用sychrnized并发不行

2022-03-15 00:07:30 1018

原创 分布式bilibili

采用第三方生成id,所有服务都请求第三方获取,,那第三方挂了,岂不是所有服务都无法插入数据库了,为保证高可用,可整个集群,主从模式,但主节点往从节点同步数据的时候,可能会延时,出现已执行问题,最终主节点挂了,切换从节点会产生撞key情况,可主主方式,比如用两个节点,各自生产自己的key,改变布长即可,比如步长为2,一台专门生产奇数,一个偶数,当然拓展性能比较差...

2022-03-13 14:40:41 1217

原创 select poll epoll

2022-03-09 00:03:15 78

原创 双亲委派机制

2022-03-07 23:20:51 96

原创 spring cloud 视频

2022-03-07 22:57:32 66

原创 AQS相关

2022-03-07 18:42:39 95

原创 接口和抽象类

接口:用于定义对象的公共行为;可以定义方法和常量,普通方法是不能有具体实现的;在jdk1.8之后,接口可以创建static和default方法,可以有实现;接口中定义的变量默认为public static final类型;子类可以不重写接口中的static和default方法;抽象类:抽象类中可以包含普通方法和抽象方法;抽象方法不能有具体的代码实现;抽象类不能直接实例化;抽象类中属性控制符无限制;抽象方法不能使用private修饰子类继承抽象方法必须重写抽象方法,可以不重写普通方法;

2022-03-06 15:13:11 53

原创 分布式id生成器

自增主键比不是自增随机的方式占用更小的内存因为存储结构是B+树,自增是依次填满叶子节点的,随机插入会产生很多不满的节点,也就是相同的数据量会产生更多的节点,且节点分裂会造成插入消耗了更多的IO次数,消耗了性能。 ,每个节点都是占一页的好处:唯一,递增,简短坏处:分表分库不适合,存在安全漏洞,可以推测记录条数,暴露了数敏感信息uuid:根据本机mac地址和时间戳生成的,坏处,不是自增的,太长SnowFlake 算法(雪花算法)snowflake是Twitter开源的分布式ID生成算法,结果是一个

2022-03-06 13:04:09 259

原创 面试题集锦

java/JVM1.接口和抽象类的区别2.JVM的架构是什么3.class文件的加载过程4.final的原理5讲讲GC,CMS和G1的区别spring1.IOC与AOP2.spring事务原理3.循环依赖4.设计模式5.输入url到浏览器到最终展示过程多线程1.线程的创建方式2.线程池无解队列的坏处3.cas的原理3.synchronized锁升级策略分布式1.怎么保证缓存一致性2.有百万级并发怎么应对3.并发与qps4.分布式锁如何实现,超时时间如何设置数据库/

2022-03-05 23:45:12 67

原创 HashMap线程安全问题

在多线程情况下,jdk1.7扩容时会产生循环问题因为采用头插法扩容在jdk1.8中对HashMap进行了优化,在发生hash碰撞,不再采用头插法方式,而是直接插入链表尾部,因此不会出现环形链表的情况,但是在多线程的情况下仍然不安全;HashMap中put操作的如果线程A和线程B同时进行put操作,刚好这两条不同的数据hash值一样,并且该位置数据为null。假设一种情况,线程A进入后还未进行数据插入时挂起,而线程B正常执行,从而正常插入数据,然后线程A获取CPU时间片,此时线程A不用再进行ha

2022-03-05 19:12:32 1029

原创 Apollo与nacos

Apollo配置中心动态生效机制,是基于http长轮询请求和Spring扩展机制实现的。在Spring容器启动过程中,Apollo通过自定义的BeanPostProcessor和BeanFactoryPostProcessor将参数中包含${…}占位符和@Value注解的Bean注册到Apollo框架中定义的注册表中。然后通过http长轮询不断的去获取服务端的配置信息,一旦配置发生变化,Apollo会根据变化的配置key找到对应的Bean,然后修改Bean的属性,从而实现了配置动态生效的特性。配置格式

2022-03-05 16:28:31 2687

原创 JVM bilibili视频

JVM启动参数

2022-03-05 16:11:48 113

转载 JVM本地方法栈/虚拟机栈

JVM的本地方法栈-通俗理解1.本地方法栈(Native Method Stacks)与虚拟机栈所发挥的作用是非常相似的,2.其区别不过是虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则是为虚拟机使用到的Native方法服务。3.虚拟机规范中对本地方法栈中的方法使用的语言、使用方式与数据结构并没有强制规定,因此具体的虚拟机可以自由实现它。甚至有的虚拟机(譬如Sun HotSpot虚拟机)直接就把本地方法栈和虚拟机栈合二为一。4.与虚拟机栈一样,本地方法栈区域也会抛出StackOv

2022-03-05 14:33:13 4546 1

原创 ThreadLocal内存泄露

2022-02-27 16:16:00 76

原创 CPU过高/内存过大排查手段

面试问题一:服务器CPU过高,排查方法面试被问怎么排查平时遇到的系统CPU飙高和频繁GC,该怎么回答?造成CPU比较高的原因可以通过限流熔断降级解决还有full GC 也会造成CPU飙高。

2022-02-27 15:18:00 163

原创 Spring IOC/bean/AOP

1.Spring启动时读取应用程序提供 Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表;2.根据这张注册表实例化Bean;3.通过配置文件装配好Bean之间的依赖关系,放到Bean缓存池,为上层应用提供准备就绪的运行环境。Bean缓存池:通过hashMap实现1.1 IOC容器介绍Spring通过一个配置文件描述 Bean 及 Bean 之间的依赖关系(依赖注入通过反射功能)。Spring的IOC容器在完成这些底层工作的基础上,还提供了Bean实例缓存、生命周期管理、B.

2022-02-27 12:14:58 391

原创 mybatis面试题集锦

通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?Dao接口,就是人们常说的Mapper接口,接口的全限名,就是映射文件中的namespace的值,接口的方法名,就是映射文件中MappedStatement的id值,接口方法内的参数,就是传递给sql的参数。Mapper接口是没有实现类的,当调用接口方法时,接口全限名+方法名拼接字符串作为key值,可唯一定位一个MappedStatementcom.mybatis3.

2022-02-26 16:54:34 599

原创 spring事务

Spring @Transactional1> 事务注解方式: @Transactional标注在类前:标示类中所有方法都进行事务处理标注在接口、实现类的方法前:标示方法进行事务处理只针对方法名的特定进行拦截,但无法利用方法签名的其它信息定位,如修饰符、返回值、方法入参、异常类型等。如果我们需要为同名不同参的同载方法配置不同事务就会出问题了。Spring事务失效的几种原因1、spring的事务注解@Transactional只能放在public修饰的方法上才起作用,如果放在其他非pub

2022-02-24 23:54:44 73

转载 redis指令

命令Redis中遍历大数据量的key:keys与scan命令keys命令keys * 、keys id:* 分别是查询全部的key以及查询前缀为id:的key。缺点:1、没有 offset、limit 参数,一次返回所有满足条件的 key。2.keys算法是遍历算法,复杂度是O(n),也就是数据越多,时间复杂度越高。3.数据量达到几百万,keys这个指令就会导致 Redis 服务卡顿,因为 Redis 是单线程程序,顺序执行所有指令,其它指令必须等到当前的 keys 指令执行完了才可以继续。

2022-02-19 16:01:54 68

空空如也

空空如也

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

TA关注的人

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