- 博客(46)
- 资源 (1)
- 收藏
- 关注
原创 springboot的test模块使用Autowired注入失败
或者把@Test由junit4改成junit5的注解,就不用加上@RunWith,直接使用@SpringBootTest即可。解决方法:再加上@RunWith(SpringRunner.class)注解即可。注入失败的原因可能是用了junit4的包的Test注解。
2025-06-07 15:28:44
404
原创 RabbitMQ、RocketMQ 和 Kafka 的消息特性对比
rabbitmq、rocketmq,kafka,这三个MQ分别是如何保证消息不丢失,保证消息的顺序,保证消息幂等性,如何快速处理积压。
2025-03-30 16:36:47
731
原创 Kafka 的延迟队列、死信队列和重试队列
通过以上步骤,你可以在 Spring Boot 中实现 Kafka 的延迟队列、死信队列和重试队列。这些功能可以确保消息处理的可靠性和健壮性,避免消息丢失或重复处理。希望这些示例能帮助你更好地理解和使用 Kafka 的高级特性。
2025-03-27 22:47:14
1397
原创 Kafka简单的性能调优
Kafka 的性能优化需要从生产者、消费者、Broker 配置以及集群架构等多个层面进行综合调整。通过优化生产者的批量发送和压缩策略,可以显著提高消息发送效率;通过调整消费者的批量拉取和偏移量管理策略,可以提升消费速度和可靠性;通过监控集群的关键指标并调整 Broker 和 Zookeeper 配置,可以优化集群的整体性能。
2025-03-27 16:57:54
1077
原创 Kafka 的高可用性
Kafka 的高可用性主要通过副本机制、ISR 列表和控制器 Broker 来实现。这些机制共同确保了 Kafka 集群在部分节点故障时仍然可以正常运行,数据不会丢失,并且服务不会中断。通过合理配置和管理分区,可以优化 Kafka 集群的性能和可用性。希望这些信息能帮助你更好地理解和使用 Kafka 的高可用性特性。
2025-03-27 15:16:42
1351
原创 Kafka 偏移量
偏移量是一个非负整数,从 0 开始递增。每条消息在 Partition 中都有一个唯一的偏移量,用于标识该消息的位置。偏移量是 Kafka 内部用来管理消息顺序的机制。偏移量在 Kafka 中的使用场景非常广泛,它不仅是消息顺序性和消费进度管理的关键机制,还在消息的重新消费、跳过、回溯、快照、负载均衡、监控和调试等方面发挥重要作用。通过合理使用偏移量,可以确保 Kafka 系统的高效、可靠和可扩展性。
2025-03-27 14:41:04
1248
原创 令牌桶应用-RateLimiter
RateLimiter 是一个功能强大且易于使用的限流工具,适用于多种需要控制操作频率的场景。通过合理配置和使用 RateLimiter,可以有效防止系统过载,提升系统的稳定性和可靠性。
2025-03-20 15:59:02
580
原创 线程间通信方法
wait/notify/notifyAll 和 await/signal/signalAll详解;wait、sleep 和 join 比较。
2025-03-17 11:19:41
810
原创 ReentrantLock与synchronized原理及比较
ReentrantLock原理与synchronized 的原理,以及他们之间的比较
2025-03-17 09:52:32
890
原创 JVM 垃圾回收器的选择
用户停顿时间是指垃圾回收器在回收内存时,导致应用程序线程暂停的时间。垃圾回收器在执行某些操作(如 Full GC 或 Major GC)时,会暂停应用程序的执行,这种暂停被称为。是两个非常重要的性能指标。它们分别反映了垃圾回收器在处理垃圾回收任务时对应用程序性能的影响。:吞吐量是指应用程序在运行过程中,实际执行业务逻辑的时间与总运行时间的比值。它反映了应用程序在垃圾回收期间的效率。在实际调优中,需要根据具体的应用场景和性能要求,综合考虑吞吐量和停顿时间的平衡。在 JVM 调优和垃圾回收器选择中,
2025-03-13 10:51:09
827
原创 偏向锁、轻量级锁、自旋锁、自适应自旋锁、锁消除和锁粗化
JDK 1.6 引入的这些锁优化技术,使得在不同的场景下能够根据锁的竞争情况动态调整锁的状态(从偏向锁到轻量级锁,再到重量级锁),从而在保证线程安全的同时,尽可能减少锁操作的开销。
2025-03-10 15:19:54
374
原创 JVM 简单内存结构及例子
JVM内存管理是自动的,开发者通常不需要手动管理对象的创建和销毁,但理解内存结构有助于优化程序性能和减少内存泄漏的风险。Java虚拟机(JVM)内存结构是Java程序运行时内存分配和管理的方式。如果Person对象在方法执行过程中不再被引用,它将被标记为垃圾回收的候选,最终可能被垃圾收集器回收。堆内存被划分为年轻代(Young Generation)和老年代(Old Generation)。每个线程有自己的程序计数器,用于存储指向下一个将要执行的指令的地址。引用:存储在栈内存中,指向堆内存中的对象。
2025-02-26 15:44:55
515
原创 RDD编程初级实践
RDD编程初级实践1、需求描述1.pyspark交互式编程2.编写独立应用程序实现数据去重3.编写独立应用程序实现求平均值问题2、环境介绍3、数据来源描述4、数据上传及上传结果查看1、pyspark交互式编程2.编写独立应用程序实现数据去重3.编写独立应用程序实现求平均值问题5、数据处理过程描述5.1 pyspark交互式编程5.2编写独立应用程序实现数据去重5.3 编写独立应用程序实现求平均值问题6、经验总结1、需求描述在当今大数据背景下,许多东西都需要利用大数据的技术去解决。此次实验目的是为了让我们
2021-06-08 18:11:04
1242
原创 JWT token工具类
头部(header,一般使用base64加密)JWT的头部有两部分信息:声明类型,这里是JWT声明加密的算法,通常直接使用HMAC SHA256载荷(payload)该部分一般存放一些有效的信息(如用户名)。iss:JWT的签发者sub: JWT所面向的用户aud: 接收该JWT的一方exp(expires): 什么时候过期,时间戳iat(issued at): 在什么时候签发的签名(signature)前面两部分都是使用Base64进行编码的,即前端可以解开知道里面的信息。sign
2021-03-24 14:26:04
1229
1
原创 跨域问题中获取不到响应头header中的token
在前后端分离项目整合springboot于jwt的过程中遇到后端在请响应头header中添加token前端进行验证的时候只能获取部分header中的数据而获取不到token解决方法就是在jwt生成token存入header中的时候添加header数据Access-Control-Expose-headers:值为想让前端获取的数据,如token之后在后端就可获取到header中的数据测试:前端获取代码(使用jquery)向后端发出请求后先看请求头,已经存在后端存入的数据:再看控制台
2021-02-03 20:14:46
3754
原创 springboot websocket通信
1.导入pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId
2021-01-22 21:21:49
11246
11
原创 vue-springboot-mybatist-ajax注册
该注册页面用了thymeleaf的前端模板,前端样式使用了bootstrap,使用jquery添加属性前端表单提交的部分没有用到thymeleaf,而是改用vue.js使用axios(ajax)向后端发起请求,后端接收数据验证(持久层使用mybatis处理数据库)并将结果返回前端,前端接收数据并给出提示重新渲染页面vue验证:1.用户输入用户名失去焦点(@blur)之后会验证该用户在后端是否存在,若存在,返回提示,加入disable属性使按钮失效2.用户输入字符开始验证,每输入一个验证一次(@key
2021-01-18 00:25:06
255
原创 spring security-认证与授权
1、引入 Spring Security 模块<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency>2.前端页面(给出部分代码,使用了bootstrap这个ui框架)注:表单提交地址必须为controller的跳转地址<
2021-01-15 23:40:34
159
原创 vue-组件以及父子组件的基本使用
注意局部组件与全局组件的区别局部组件要在Vue对象中注册而全局组件可以用Vue.component(“com”,com);直接注册局部组件只有在挂载的Vue对象中注册的才可以使用,全局组件在所有的Vue对象中都可以使用ES6中可以使用``中间可打回车<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> </head>
2021-01-14 20:28:02
293
原创 vue-网络应用-天气查询(axios)
axios.get().then(function(response){}).catch(function(err){})get()发送请求,中间写请求地址then()成功的回调函数catch()失败的回调函数注:在回调函数中不能直接用this赋值,应先把this赋值给函数内的变量,再在回调函数中调用这个变量去改变他的值axios的在线cdn:https://cdn.staticfile.org/axios/0.18.0/axios.min.js<!DOCTYPE html>&l
2021-01-14 11:58:02
227
原创 vue-综合应用-记事本
改综合应用的需求:1.实现回车添加数组元素2.点击按钮删除3.显示内容条数及长度4.删除所有5.当数组个数为0时不显示最下面当前个数和删除所有那一行push:添加元素splice:删除元素(开始下标,删除个数)@ == v-on (简写)v-for :for循环,(i,index)=>循环元素与下标@keyup.enter :按下回车键v-model=“input_value” :与input——value动态绑定,实时变化v-show:值为true显示,否则不显示(改变d
2021-01-13 22:30:14
178
原创 vue初体验,计数器练习
引入vue.js建一个Vue对象,传入id为count的进行绑定,在对象里面定义变量与方法在外部使用{{}}取出vue中的值v-on:click : 点击按钮调用的方法或者语句<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>计数器</title> </head> <body> <div id="coun
2021-01-13 17:45:35
159
原创 springboot文件上传(MultipartFile)
pom配置文件配置文件上传单个文件最大不超过10m,所有文件不超过100mspring.servlet.multipart.max-file-size=10MBspring.servlet.multipart.max-request-size=100MB1.编写简单的上传页面<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org"><head> <meta charse
2021-01-13 15:25:05
628
1
原创 调用MapReduce对文件中各个单词出现次数进行统计
调用MapReduce对文件中各个单词出现次数进行统计一.Linux的安装二.准备工作1.创建hadoop账户2.更新apt3.安装SSH、配置SSH无密码登陆三.安装Java环境1.安装JDK2.验证JDK安装情况3.设置JAVA坏境变量四.安装 Hadoop五.Hadoop伪分布式配置1.修改配置文件2.执行 NameNode 的格式化:3.开启NameNode和DataNode守护进程六.调用MapReduce执行WordCount对单词进行计数1.将待分析的文件上传到HDFS2.安装Eclipse3
2020-12-14 23:20:56
1082
原创 Springboot测试
创建一个用于测试的Controller:import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class HomeController { @RequestMapping(
2020-12-03 00:07:07
212
原创 springboot CORS实现跨域请求
在HBuilder中创建项目,创建与idea中springboot Controller数据交互的js文件,代码如下:(使用了jquery,记得导包)<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><center> id:
2020-12-02 20:38:15
290
原创 spring boot 用ajax进行前后台交互(@RestController)
后端Controller:import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import java.util.concurrent.atomic.AtomicLong;@RestContro
2020-12-01 21:59:54
671
原创 SpringBoot设置所有错误页面并将错误源代码隐藏(注释)源代码,只有查看源代码才能看到
在resources下的templates创建error文件夹,springboot错误时会自动来这里找文件,注:命名要规范,得是xxx.html(错误代码),也可以是自定义的(得配置),这里error.html是自定义的。制造一个错误页面:import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic cl
2020-11-30 23:49:03
809
1
原创 spring boot 用ajax进行前后台交互
前端ajax传递json数据给后端并接受后端的数据: var jsonObj = {"user_name":"sss","password":"123"}; $.ajax({ contentType:"application/x-www-form-urlencoded; charset=utf-8", type:"post", url:"/test1", data:jsonObj, success:function(d
2020-11-29 23:44:28
689
原创 SpringBoot热部署
热部署能使我们每次更新代码不用每次都去重启服务器,能加快我们的开发效率。在pom.xml中加入依赖:<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</
2020-11-21 21:40:19
256
转载 Ubuntu 18.04 安装 Docker-ce
Ubuntu 18.04 安装 Docker-ce1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选)sudo cp /etc/apt/sources.list /etc/apt/sources.list.baksudo sed -i ‘s/archive.ubuntu.com/mirrors.ustc.edu.cn/g’ /etc/apt/sources.listsudo apt update2.安装需要的包sudo apt install apt-transport-https ca
2020-09-17 00:27:42
184
原创 mybatis框架mysql查询多对一
多对一查询的两种做法:在入门的基础上进行,有看不懂的点击这里:mybatis入门案例Lombok插件:@Date注释可自动生成get、set跟toString等方法,使程序更加简便,只需在全局配置文件pom.xml中加上配置:<dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>
2020-07-17 11:51:43
199
原创 mybatis使用注解查询
mybatis入门案例不使用注解入门案例:在入门案例的的基础上进行首先使用注解的话可以不使用UserMapper.xml,所以可以将这个文件去掉。UserMapper的两个查询(其他操作类似):package com.feng.dao;import com.feng.pojo.User;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.annotations.Select;import java.uti
2020-07-16 18:09:42
480
原创 myabtis入门案例
mybatis入门案例1.新建项目(Maven),搭建环境数据库(名:mybatis,表user)导出sql:/*Navicat MySQL Data TransferSource Server : localhost_3306Source Server Version : 50162Source Host : localhost:3306Source Database : mybatisTarget Server Type : MYS
2020-07-16 16:40:08
245
原创 mysql解压安装
先在官方网站上下载压缩包https://dev.mysql.com/doc/之后解压,我这里放D盘根目录下配置系统变量path,添加bin目录的路径然后搜索cmd,用管理员身份打开到mysql文件的bin目录下输入命令:mysqld --initialize-insecure为初始化数据库,并设置默认root密码为空输入命令:mysqld install为系统安装MySQL服...
2020-04-26 21:04:33
215
原创 wordpress管理的网站被入侵篡改文章
登上网站查看某篇文章的时候出来问题,一进去就会被跳转到其他网站,自己的页面查看不了。这时候想过恢复之前在服务器备份下来的文件,备份之后发现问题还是没有解决。所以改的地方应该是在数据库,由于数据库之前没有备份(网站一定要备份数据库),所以只能想其他办法,到底是哪些地方被改了。这时候点了篇文章进去看,发现多了一些之前没有的东西,如图:原因找到了,删除就行。建议所有的管理员密码都设复杂一点,不...
2020-03-10 16:00:02
563
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅