- 博客(21)
- 收藏
- 关注
原创 RocketMQ的消息积压和消息逆序及延迟消费
RocketMQ 通过多种机制确保消息的可靠性,包括请求-确认机制、消息重试、持久化存储、主从复制、消息确认机制等。通过合理的配置和优化,可以有效解决消息积压和消息逆序等问题,确保消息的高效传输和可靠消费。。
2025-02-22 14:30:00
741
原创 RocketMQ的持久化机制与消息可靠性
RocketMQ 的持久化机制是其核心功能之一,确保消息在传输过程中不会丢失。RocketMQ 使用本地文件系统来持久化消息,主要通过三个关键组件来实现:、 和 。下面详细介绍这些组件及其工作原理。CommitLog定义: 是 RocketMQ 中最大的数据文件,用于存储所有的消息数据。每条消息以二进制格式存储在 中,消息之间通过偏移量来区分。特点:连续存储:消息按顺序连续存储,提高写入性能。固定大小:每个 文件的默认大小为 1GB。循环写入:当 文件达到最大大小时,会创建新的文件继续写入。文件结构
2025-02-21 16:58:27
551
原创 @Transactional 注解
注解是 Spring 框架提供的一个非常强大的工具,用于管理事务。通过使用这个注解,你可以指定某个方法或类的所有方法应该在一个数据库事务中执行。如果方法执行过程中发生异常,根据配置的不同,事务可以自动回滚,从而保证数据的一致性和完整性。
2024-10-18 10:42:17
480
原创 启动gateway时报错
gateway依赖和spring-boot-starter-web和log4j不能共存,需要删掉这两个依赖。如果出现503错误码,可能是配置文件里用了lb:的形式,但没有引入loadbalancer。
2024-09-26 22:58:31
211
原创 docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp 173.252.108.3:
还有这个目录下的这个文件"/etc/sysconfig/network-scripts/ifcfg-ens33"然后如果还不行的话,我是在docker目录下搞了两个文件,是demon.conf和demon.json。安装minio和mysql的时候出现了类似这样的错误,不能search也不能pull。内容是一样的,没有conf的话我docker运行会报错,内容如下。先修改配置,如果没有需要自己创建这个文件。然后就能正常search和pull了。但是可以ping通,不是网络的问题。主要是添加一下DNS1。
2024-09-24 22:00:39
1582
原创 Jenkins出现缺少Lombok或者缺少某个方法的错误解决办法
找到你的Jenkins_home的maven的conf下的settings.xml修改路径。如果你的maven是直接从本地拉下来的,就是虚拟机上的mvn_repo路径不对。
2024-09-23 18:18:30
350
原创 IDEA常用快捷键
alt + insert 或alt + Fn + insert 生成构造方法。* Alt + shift +箭头上 把下一行换到上一行的位置。* ctrl + alt + M 自动抽取选中的代码变为方法。* ctrl + alt + 鼠标左键 看源码时返回上一步。* ctrl + shift + U 选中的全部大写。* ctrl + alt + v 自动生成方法左边。* ctrl + alt + T 把选中的放进循环。* ctrl + alt + L 自动格式化代码。* sout 输出语句。
2024-08-19 21:08:53
512
原创 SpringBoot 中应该怎样使用并定义第三方的bean
如果要管理的bean对象来自于第三方(不是自定义的),是无法用@Component 及衍生注解声明bean的,就需要用到@Bean注解。解决方案1:在启动类上添加@Bean标识的方法//声明第三方bean@Bean //将当前方法的返回值对象交给IOC容器管理, 成为IOC容器bean@Autowired//第三方bean的管理@Test//省略其他代码...说明:以上在启动类中声明第三方Bean的作法,不建议使用(项目中要保证启动类的纯粹性)
2024-08-15 11:10:14
369
原创 Stringbuffer 和 Stringbuilder 的区别是什么?
一般都与String进行对比,因为String是不可变的,但是StringBuffer和StringBuilder是可变的。StringBuilder的性能比StringBuffer高,因为StringBuilder没有同步锁,所以性能要好一些。StringBuffer是线程安全的,原理是StringBuffer对内部方法加了Synchronize同步锁。String是被final修饰的,只能使用的时候赋值一次。那么问题来了,stringbuffer和stringbuilder是如何实现可变的?
2024-08-06 09:30:00
410
原创 JVM调优的常用指令和参数
2、jmap:用来生成dump文件和查看堆相关的各类信息的命令。5、jinfo:查看jvm参数和动态修改部分jvm参数。7、- XX:MaxPermSize:设置永久代最大值。6、-XX:PermSize:设置永久代初始值。3、jstat:查看jvm运行时的状态信息。4、jstack:查看jvm线程快照的命令。1、jps:查看进程及其相关去信息。3、-Xmn:新生代的内存空间大小。5、-Xss:每个线程的堆栈大小。1、-Xms:初始化堆大小。2、-Xmx:最大堆大小。
2024-08-05 09:00:00
254
原创 什么是事务,以及Spring事务在哪几种情况下会失效,为什么
将⼀组操作封装成⼀个执⾏单元,要么全部成功要么全部失败。为什么要⽤事务?⽐如转账,分为两个操作:第⼀步操作:A 账户 -10 元,第⼆步操作:B 账户 +10 元。如果没有事务,第⼀步执⾏成功了,第⼆步执⾏失败了,那么 A 账户平⽩⽆故的 100 元就“⼈间蒸发”了。如果使⽤事务就可以解决这个问题,让这⼀组操作要么⼀起成功,要么⼀起失败。
2024-08-04 09:00:00
371
原创 面试一问:说说Spring Bean生命周期
Spring Bean的生命周期是从创建到销毁,经历实例化、属性注入、初始化和使用,最终在容器关闭时进行清理的过程。
2024-08-03 22:28:26
334
原创 面试一问:Java中Integer和int的区别,为什么要int要对应设计一个Integer类型
Java本身是一个面向对象的语言,一切操作都以对象为基础,比如集合里面存的元素(ArrayList,HashMap),,我们可以用这些方法和属性对数据进行操作。3.Integer是一个对象类型,里面,int类型是直接存储在。2.Integer是存储在。1.作为成员变量来说,
2024-07-29 09:00:00
181
原创 一篇文章讲清楚cookie,session和token!
里面是你的信息,然后服务端就会返回这个session id给前端,这时候前端会自动调用set-cookie的方法来将session id保存到cookie中,这时候就登录成功了,,现在的系统都是分布式架构的,如果说访问服务器A,这时候服务器A保存了你的session id,这时候你再访问服务器B时候,他是没有保存你的session id的,校验不通过。,这时候前端就会把用户名和密码保存到cookie里面,这时候就登录成功了,以后再与其他的页面进行交互时候就需要把这个cookie带给服务器进行校验。
2024-07-28 09:00:00
387
原创 什么是跨域?怎么解决跨域问题呢?看完这篇文章,相信会对你有所启发
网页通过添加一个 元素,向服务器请求 JSON 数据,服务器收到请求后,将数据放在一个指定名字的回调函数的参数位置传回来。反向代理也是Nginx的特点之一,实现反向代理也需要对原Nginx进行代理服务的配置,是前后端分离开发的项目的主流。:是指协议(protocol)、域名(host)、端口号(port),都必须相同,其中一个不同都会产生跨域。:有些标签是不受跨域限制的,如:script,img,link,iframe。跨域,指的是浏览器不能执行其他网站的脚本,它是由浏览器。
2024-07-27 18:00:00
949
原创 什么是RabbitMQ?RabbitMQ有什么优点?我们该如何使用呢
RabbitMQ是一个开源的消息代理软件,也称为面向消息的中间件。它实现了高级消息队列协议(AMQP),由Erlang语言编写,旨在提供高性能、健壮以及可伸缩性的消息队列服务。RabbitMQ在分布式系统开发中应用广泛,支持多种操作系统和编程语言,如Linux、Windows、macOS等操作系统,以及Python、Java、Ruby、PHP、C#、JavaScript等编程语言。简单来说RabbitMQ 是一个流行的消息代理和队列服务器,它允许应用程序之间进行异步通信。
2024-07-25 09:00:00
1055
原创 AOP切入点表达式的两种书写方式
下面我们就来详细的介绍一下切入点表达式的具体写法。切入点表达式:描述切入点方法的一种表达式作用:主要用来决定项目中的哪些方法需要加入通知。
2024-07-24 09:00:00
1536
原创 AOP面向切面编程的概述
什么是AOP?AOP英文全称:Aspect Oriented Programming(面向切面编程、面向方面编程),其实说白了,面向切面编程就是面向特定方法编程。那什么又是面向方法编程呢,为什么又需要面向方法编程呢?来我们举个例子做一个说明:比如,我们这里有一个项目,项目中开发了很多的业务功能。然而有一些业务功能执行效率比较低,执行耗时较长,我们需要针对于这些业务方法进行优化。那首先第一步就需要定位出执行耗时比较长的业务方法,再针对于业务方法再来进行优化。
2024-07-23 09:00:00
729
原创 关于UDP和TCP两种通信协议的概念和用法
用户数据协议,是一种无连接不可靠,基于数据包的传输层通信协议。传输控制协议,是一种面向连接的,可靠的,基于字节流的传输层通信协议。TCP协议为应用层提供可靠的,面向连接的,基于流的服务,UDP协议则与之相反,它为应用层提供不可靠的,无连接和基于数据包的服务。
2024-07-22 21:47:44
574
原创 什么是Ajax?什么又是Axios?看了这篇文章,包你明白!
我们都知道,我们前端页面中的数据,应该来自于后台,但是我们的后台和前端是互不影响的2个程序,那么我们前端应该如何从后台获取数据呢?因为是2个程序,所以必须涉及到2个程序的交互,所以这就需要用到Ajax技术。
2024-07-16 23:18:45
814
转载 IDEA利器diagram的使用
作用:查看类从上到下的继承关系和接口实现在你想查看的类的标签页内,点击右键,选择 Diagrams,其中有 show 和 show ... Popup,只是前者新建在标签页内,后者以浮窗的形式展示:实际上,你也可以从左边的项目目录树中,对你想查看的类点击右键,同样选择 Diagrams,效果是一样的:然后你就会得到如下图所示的继承关系图形,以自定义的 Servlet 为例:显而易见的是:蓝色实线箭头 是指继承关系绿色虚线箭头 是指接口实现关系。
2024-04-28 12:26:57
486
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人