自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(271)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java强化学习知识点梳理

/ TODO。

2023-02-22 16:57:34 347

原创 三个线程交替打印线程ID

【代码】三个线程交替打印线程ID。

2024-09-25 16:35:17 104

原创 【Spring Cloud Alibaba】Nacos 配置中心

用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。在没有明确指定配置的情况下, 默认使用的是 Nacos 上 Public 这个namespace。注意:该配置必须放在 bootstrap.properties 文件中。

2024-09-21 23:55:34 673

原创 【Spring Cloud Alibaba】Nacos

在Spring Cloud Alibaba套件中服务治理方面的核心组件是Nacos(Dynamic Naming and Configuration Service),在Spring Cloud Alibaba套件为基础的微服务中,Nacos担当的角色有服务发现和健康检测、服务注册中心(动态注册)、配置中心(动态配置)、服务元数据管理等功能。做为注册中心:Nacos管理所有的微服务,解决微服务调用之间的错综复杂、难以维护的问题。

2024-09-21 00:57:17 958

原创 订单防重复提交:token 发放以及校验

在很多秒杀场景中,用户为了能下单成功,会频繁的点击下单按钮,这时候如果没有做好控制的话,就可能会给一个用户创建重复订单。

2024-09-16 16:06:42 846

原创 深入了解Synchronized原理

冯诺依曼,提出计算机由五大组成部分,输入设备,输出设备存储器,控制器,运算器。CPU:中央处理器,是计算机的控制和运算的核心,我们的程序最终都会变成指令让CPU去执行,处理程序中的数据。内存:我们的程序都是在内存中运行的,内存会保存程序运行时的数据,供CPU处理。缓存:CPU的运算速度和内存的访问速度相差比较大。这就导致CPU每次操作内存都要耗费很多等待时间。内存的读写速度成为了计算机运行的瓶颈。于是就有了在CPU和主内存之间增加缓存的设计。

2024-08-05 20:48:10 1034 1

原创 【瓴岳科技】历史面试题

瓴岳科技(Fintopia)是以大数据和人工智能为基础的数字科技集团,致力于通过科技提高金融服务的品质与效率,为全球用户提供卓越的金融体验。2015年成立至今,瓴岳科技始终聚焦消费金融,业务遍布中国大陆、东南亚、拉丁美洲和非洲等;集团旗下拥有洋钱罐、Easycash等知名品牌,始终坚持以用户为中心,助力普惠金融发展。

2024-07-20 13:55:22 561

原创 【MySQL】锁(黑马课程)

锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。

2024-07-06 15:28:42 792

原创 【JVM-03】垃圾收集器

Serial收集器是单线程的,这里单线程并不仅仅是说明它只会使用一个处理器或一条收集线程去完成垃圾收集工作,更重要的是强调在它进行垃圾收集时,必须暂停其他所有工作线程,直到它收集结束。他的特别之处在于,它的关注点与其他收集器不同,CMS等收集器的关注点是尽可能地缩短垃圾收集时用户线程的停顿时间,而Parallel Scavenge收集器的目标则是达到一个可控制的吞吐量(Throughput)。它而非常符合在注重用户体验的应用上使用。从它的名字就可以看出它是一款优秀的垃圾收集器,主要优点:并发收集、低停顿。

2024-07-02 11:34:24 797

原创 【JVM-04】线上CPU100%

⼀般CPU100%疯狂GC,都是死循环的锅,那怎么排查呢?先进服务器,⽤top -c 命令找出当前进程的运⾏列表按⼀下 P 可以按照CPU使⽤率进⾏排序显示Java进程 PID 为 2609 的java进程消耗最⾼。使⽤命令 top -Hp 2609 找出这个进程下⾯的线程,继续按P排序。然后我们需要根据PID 查出CPU⾥⾯消耗最⾼的进程。

2024-07-02 11:03:54 751

原创 【JVM-02】垃圾收集(回收)算法

算法分为“标记”和“清除”阶段:首先标记出所有需要回收的对象,在标记完成后,统一清除(回收)掉所有被标记的对象,也可以反过来,标记存活的对象,统一回收所有未被标记的对象。它是最基础的收集算法,会带来两个明显的问题:第一个是执行效率不稳定,如果Java堆中包含大量对象,而且其中大部分是需要被回收的,这时必须进行大量标记和清除的动作,导致标记和清除两个过程的执行效率都随对象数量增长而降低;当前虚拟机的垃圾收集都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。

2024-07-01 18:53:50 520 2

原创 【JVM-05】Java内存区域(运行时数据区)、对象创建过程、内存布局

Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK 1.8 和之前的版本略有不同。程序计数器虚拟机栈本地方法栈堆方法区直接内存(非运行时数据区的一部分)

2024-06-30 23:26:15 1166

原创 【JVM-01】引言

JVM即 Java Virtual Machine(Java虚拟机),是Java程序运行的环境(Java 二进制字节码运行环境)。好处:一次编写,到处运行自动内存管理,垃圾回收功能数组下标越界检查多态。

2024-06-29 17:45:52 269

原创 【Redis-04 补充】Redis事务

超时问题 通过Redis连接池解决超卖问题通过Lua脚本解决watch的乐观锁会造成库存问题。

2024-06-28 15:12:54 1134

原创 【Kafka 面试题】分布式通讯之Kafka面试题汇总(基础+进阶+高阶)-01

收集应用程序和系统的日志数据,并通过 Kafka 将其传输到集中式的日志处理和分析系统,如 ELK(Elasticsearch、Logstash、Kibana)栈。在数据湖中,Kafka 用于将实时数据流传输到数据湖,实现数据的集中存储和管理。在电商平台中,Kafka 用于实时处理用户行为数据、订单数据和库存数据,支持推荐系统和个性化服务。ISR中的副本都是最新的,并且它们的数据与Leader副本一致。在物联网应用中,Kafka 可以收集和处理来自各种传感器和设备的海量数据,支持实时数据分析和决策。

2024-06-25 14:58:16 711

原创 【设计模式-07】适配器模式(属于结构型模式)

如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。所以就需要一个插座转换器,转换器第1面插入当地的插座,第2面供我们充电,这样使得我们的插头在当地能使用。生活中这样的例子很多,手机充电器(将220v转换为5v的电压),读卡器等,其实就是使用到了适配器模式。将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类适配器模式和对象适配器模式。

2024-06-24 16:15:04 916

原创 【设计模式-04】原型模式

原型模式: 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。

2024-06-23 19:09:39 1031

原创 【Kafka】Kafka Broker工作流程、节点服役与退役、副本、文件存储、高效读写数据-08

在Kafka集群中,并不是每个Broker都有一个Controller,而是整个集群中只有一个活跃的Controller。这个Controller由一个Broker担任,其职责是管理和协调整个集群的元数据和状态变更。Kafka Controller职责分区副本状态管理:当一个分区的领导者副本不可用时,Controller负责选举新的领导者副本,确保分区始终有一个活跃的领导者来处理读写请求。Controller监控副本的状态,并确保追随者副本与领导者副本保持同步。

2024-06-21 21:53:03 968

原创 【Elasticsearch】基础入门、索引、文档、查询-01

The Elastic Stack, 包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。Elaticsearch,简称为 ES,ES 是一个开源的高扩展的分布式全文搜索引擎,是整个 Elastic Stack 技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。

2024-06-18 19:20:44 759

原创 【Vue3】

2020年9月18日,Vue.js发布版3.0One Piece4800+次提交40+个RFC600+次PR300+贡献者3.3.4。

2024-06-17 21:45:46 791

原创 【Kafka】Kafka生产者数据重复、数据有序、数据乱序-07

虽然同一个消息不会被写入多个分区,但Kafka有一个副本机制(Replication),用于提高数据的可靠性和容错性。每个分区有一个主副本(Leader)和多个从副本(Follower),这些副本会在不同的Broker上保存相同的数据。相同键的消息会被写入同一个分区,从而保证了消息的顺序性。每个Kafka主题(Topic)可以有多个分区(Partitions),消息在这些分区之间分布。当Producer发送消息到一个分区的主副本时,主副本会将消息复制到从副本中,以保证数据的高可用性。

2024-06-16 17:33:46 706 2

原创 【Kafka】Kafka提高生产者吞吐量、数据可靠性-06

可靠性总结:acks=0,生产者发送过来数据就不管了,可靠性差,效率高;acks=1,生产者发送过来数据Leader应答,可靠性中等,效率中等;acks=-1,生产者发送过来数据Leader和ISR队列里面所有Follwer应答,可靠性高,效率低;在生产环境中,acks=0很少使用;acks=1,一般用于传输普通日志,允许丢个别数据;acks=-1,一般用于传输和钱相关的数据,对可靠性要求比较高的场景。

2024-06-16 12:19:13 1311

原创 【Kafka】Kafka Producer 分区-05

如果研发人员可以根据企业需求,自己重新实现分区器需求例如我们实现一个分区器实现,发送过来的数据中如果包含 atguigu,就发往 0 号分区,不包含 atguigu,就发往 1 号分区。实现步骤定义类实现 Partitioner 接口重写 partition()方法/*** 1. 实现接口 Partitioner* 2. 实现 3 个方法:partition,close,configure* 3. 编写 partition 方法,返回分区号/*** 返回信息对应的分区。

2024-06-15 15:07:19 1190

原创 【Kafka】Kafka生产者-04

main 线程将消息发送给 RecordAccumulator,Sender 线程不断从 RecordAccumulator 中拉取消息发送到 Kafka Broker。Kafka Producer 原理。在消息发送的过程中,涉及到了。在 main 线程中创建了。

2024-06-15 09:04:13 401

原创 Java多态

多态(Polymorphism)是面向对象编程(OOP)的一个核心概念,它允许对象通过相同的接口来调用不同的行为。多态的主要优点是代码的灵活性和可扩展性。Java中的多态主要通过方法重载(Overload)和方法重写(Override)来实现。

2024-06-11 21:39:08 491

原创 Java注解

从JDK 5 开始,Java 增加了对元数据(MetaData)的支持,也就是 Annotation(即注解,也被翻译为注释)。本章所介绍的 Annotation,其实是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用注解, 程序开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充的信息。代码分析工具、开发工具和部署工具可以通过这些补充信息进行验证或者进行部署。举例: @Override、@Test等等,作用是:让其他程序根据注解信息来决定怎么执行该程序。

2024-06-11 15:54:02 1101

原创 深拷贝、浅拷贝、引用拷贝

结果分析:由输出结果可以看出,它们的地址值是相同的,那么它们肯定是同一个对象。teacher和otherteacher的只是引用而已,他们都指向了一个相同的对象Teacher(“Taylor”,26)。两个对象指向同一个地址值。创建对象本身的一个副本。

2024-06-08 10:21:27 338

原创 Java网络编程

TCP(传输控制协议,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的通信协议,它是Internet协议栈中的核心协议之一。TCP提供了可靠的数据传输、流量控制和拥塞控制等功能,广泛用于网络应用,如HTTP、FTP、SMTP等。当一个程序需要通过网络进行通信时,它会绑定到一个特定的端口号并监听来自其他计算机的连接请求。UDP支持广播和组播,适用于向多个接收者发送相同数据的场景,如IPTV等。常见的CS结构的软件有QQ、微信、Steam等。

2024-06-07 22:24:01 1041

原创 Java IO流

IO流就是存储和读取数据的解决方案。转换流:是字符流与字节流之间的桥梁/*利用转换流按照指定字符编码读取(了解)因为JDK11:这种方式被淘汰了。替代方案(掌握)F:\JavaSE最新版\day29-IO(其他流)\资料\gbkfile.txt*/ /* //1.创建对象并指定字符编码//2.读取数据int ch;= -1){//3.释放资源//2.读取数据 int ch;= - 1) {} //3.释放资源 fr . close();} }/*

2024-06-06 16:26:05 945

原创 【Java基础】字符集

UTF-8不是字符集,是Unicode字符集的一种编码方式。GBK中一个汉字需要两个字节存储,一个英文占一个字节。在UTF-8的规则下英文1个字节,中文3个字节。ASCII字符集中一个英文占用1个字节。GBK字符集完全兼容ASCII字符集。计算机中最小的存储单元是一个字节。

2024-06-04 22:44:09 287

原创 【Java基础】反射相关面试题

Java 中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能成为 Java 语言的反射机制。

2024-06-03 23:34:56 400

原创 【Spring-01】BeanFactory和ApplicationContext

它是 ApplicationContext 的父接口它才是 Spring 的核心容器,主要的 ApplicationContext 实现 组合 了它的功能,也就是说,BeanFactory 是 ApplicationContext 中的一个成员变量。常用的 context.getBean(“xxx”) 方法,其实是调用了 BeanFactory 的 getBean() 方法。

2024-05-28 15:09:28 523

原创 Spring常见注解

我们都知道Spring最核心的特性就是IOC(控制反转)+ AOP(⾯向切⾯编程),IOC的原理就是实现了一个Spring容器,用来管理所有Spring Bean实例,DI也就是依赖注入,是我们作为开发者需要关心的核心话题,如何注入依赖,注入哪个依赖,是我们需要明确知道的。很久之前使用xml配置文件来声明一个bean,但现在,使用注解和代码来完成DI的过程。我们可以使用和包中的注释来启用 Spring DI 引擎的功能。

2024-05-25 00:13:34 1009

原创 【Kafka】SpringBoot项目配置多个Kafka

【代码】SpringBoot项目配置多个Kafka。

2024-05-14 23:16:13 193

原创 分布式锁与秒杀

【代码】分布式锁与秒杀。

2024-05-05 22:17:46 404

原创 【数据库主从架构】

随着公司业务线的增多,各种数据都在迅速增加,并且数据的读取流量也大大增加,就面临着数据安全问题,如果数据被相关人员删除,或者磁盘出现损坏,则会导致公司系统不可用和数据丢失的风险。

2024-05-02 18:28:20 444 1

原创 【高并发解决思路】

高并发指的是两方面。 第一方面 指同一时刻有大量的请求访问系统。 第二方面 指的是大量的请求并行访问系统,注意并行并不是同一时刻,但有个指标是一秒内能处理的请求数量。 当大量请求短时间内涌入系统的时候,我们第一时间能想到的是提升机器的性能。如何提升呢? 就是提升硬件,提升单机性能,比如说从8核提升到16核,从8G提升到16。 但是这样的提升毕竟有限。我们可以部署多台机器来分担压力,也就是常用的负载均衡。这也需要你的项目支持负载均衡的方式部署。比如引入redis来统一存储sessi

2024-05-02 16:12:47 411 1

原创 【Kafka】KafkaTopic命令-03

【代码】【Kafka】KafkaTopic命令。

2024-04-21 22:49:37 676 1

原创 【OpenFeign-01】OpenFeign使用demo

这个参数是可选的,它允许您为 FeignClient 指定一个唯一的标识符,以区分不同的 FeignClient。path:这个参数指定了被调用服务的基本路径。value:这个参数指定了 FeignClient 的值,即被调用的服务的名称。在这个例子中,Application.SERVER_NAME 是一个常量,用于指定服务的名称。总体而言,@FeignClient 注解用于声明一个 Feign 客户端,它定义了与目标服务通信的一些基本信息,包括服务名称、上下文 ID 和基本路径等。

2024-04-20 23:23:02 949

原创 最大二叉树

【代码】最大二叉树。

2024-04-07 23:48:19 151

idea配置tomcat

idea配置tomcat

2022-06-20

空空如也

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

TA关注的人

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