
java
文章平均质量分 79
微特尔普拉斯
非典型软件开发者!我不生产代码,我只是二进制数据的搬运工!
展开
-
深入解析数据倾斜:原因、影响与优化方案
如果大部分用户的订单数较少,但有个别用户(如大客户)拥有海量订单,某些计算节点的负载就会远高于其他节点,形成数据倾斜。• 表现:在分布式计算框架(Spark、Flink)中,如果 Join 关联的 Key 分布不均衡,某些计算节点会接收过量数据,导致计算瓶颈。• 方案:在 Key 前添加随机前缀,如 user_1 → 1_user_1、2_user_1,打散 Key 分布。• 方案:对大 Key 进行拆分,如 common_key_1_a、common_key_1_b,减少单个节点压力。原创 2025-03-02 12:39:12 · 442 阅读 · 0 评论 -
使用 Spring Boot 实现 JWT 生成与验证的自定义类
JWT 的结构通常包含三个部分:头部(Header)、载体(Payload)和签名(Signature)。通过对这三个部分进行编码和加密,JWT 能够安全地传递用户信息。有效的 JWT 需要在客户端和服务器之间传递,因此确保它们的安全性是至关重要的。原创 2024-09-29 10:37:17 · 1261 阅读 · 0 评论 -
打造聊天流式回复效果:Spring Boot+WebSocket + JS实战
本文介绍了如何使用 Spring Boot 和 WebSocket 实现类似 ChatGPT 的流式回复效果,并详细讲解了每个步骤的技术原理和代码实现。通过这种方式,我们可以构建更加 engaging 和 interactive 的 Web 应用,为用户带来全新的体验。原创 2024-08-13 11:34:24 · 1650 阅读 · 0 评论 -
Spring WebFlux 与 SSE 实现实时推送数据,精准推送到某个用户
通过 Spring WebFlux 和 SSE 的结合,我们可以轻松构建实时数据传输应用。SSE 提供了轻量级的服务器推送机制,而 Spring WebFlux 则为我们处理了底层的异步非阻塞 I/O 操作,并提供了简洁优雅的响应式编程模型,使得我们可以专注于业务逻辑的实现。相信随着实时数据需求的不断增长,Spring WebFlux + SSE 的组合将会在越来越多的项目中得到应用。原创 2024-08-13 11:26:00 · 2393 阅读 · 0 评论 -
实时数据推送:Spring Boot 中两种 SSE 实战方案
更适合处理大量并发连接和数据流的场景,代码简洁优雅,更符合响应式编程的思想。更适合处理单个请求的异步结果返回,代码相对简单,但可扩展性有限。你可以根据具体的业务需求选择合适的方案来实现实时数据推送功能。无论选择哪种方案,SSE 都为我们提供了一种轻量级、高效、易于实现的实时数据传输方案,可以帮助我们构建更加优秀的用户体验.原创 2024-08-12 13:30:49 · 1234 阅读 · 0 评论 -
Spring WebFlux 实现 SSE 流式回复:类GPT逐字显示回复效果完整指南
本文详细介绍了如何使用 Spring WebFlux 和 SSE 实现类似 ChatGPT 的流式回复效果,并提供了完整的代码示例。希望读者能够通过本文掌握该技术,并在实际项目中灵活运用。原创 2024-08-12 12:50:08 · 2996 阅读 · 1 评论 -
前端实现与Spring后端请求的实时流式响应,打造类 AI流式回复效果
本文介绍了如何利用WebSocket和SSE两种技术实现前端与Spring后端的长连接,并以ChatGPT的流式回复为例,给出了具体的代码实现和技术原理分析。在实际应用中,需要根据具体需求选择合适的方案。如果需要双向实时通信,WebSocket是更优选择;如果只需服务器单向推送数据,SSE则更为轻量级。无论选择哪种方案,掌握长连接和流式数据处理都是构建现代化实时交互应用的关键。希望本文能帮助你更好地理解和应用实时流式响应技术,为用户打造更加流畅、自然的交互体验!原创 2024-08-11 23:58:11 · 1727 阅读 · 0 评论 -
Java 电商秒杀系统优化实战:实现进阶示例详解与 RabbitMQ 配置
本文介绍了如何优化 Java 电商秒杀系统的代码实现和 RabbitMQ 配置,包括接口限流、分布式锁、异步处理优化和消息可靠性保障等方面。希望这些优化措施可以帮助您构建更加稳定、高效的秒杀系统。当然,实际的秒杀系统设计需要根据具体的业务场景和技术架构进行调整和优化。建议您在实践中不断学习和探索,打造出更加完善的秒杀系统。原创 2024-08-11 13:15:00 · 578 阅读 · 0 评论 -
Java 电商秒杀系统:消息队列、异步处理与库存一致性
本文介绍了如何使用消息队列、异步处理等技术构建高性能的 Java 电商秒杀系统。通过合理的设计和技术选型,我们可以有效地应对秒杀场景下的高并发挑战,同时保证数据一致性和用户体验。当然,实际的秒杀系统设计远比本文所述复杂,还需要考虑诸如前端限流、接口防刷、数据库优化等方面。希望本文能够抛砖引玉,激发您对构建高性能电商系统的兴趣和探索。原创 2024-08-10 23:44:59 · 1039 阅读 · 0 评论 -
Java后端处理前端字符串与 JSON 数据:安全拼接与转义技巧
在 Spring Boot 中处理前端传递的字符串和 JSON 数据时,需要注意潜在的 JSON 特殊字符问题。我们可以通过手动转义或借助 Jackson 库来安全地拼接字符串和 JSON 数据,确保数据完整性和程序稳定性。希望本文能够帮助您更好地理解 Spring Boot 中字符串与 JSON 数据处理的相关技巧,并在实际项目中得心应手。原创 2024-08-09 14:14:58 · 680 阅读 · 0 评论 -
认识消息队列:Spring Boot 实现 MQ 消息队列,解锁异步、削峰、广播等高级功能!
Data本文介绍了如何使用 Spring Boot 和 RabbitMQ 实现异步处理、流量削峰、消息总线、延迟队列和广播消息推送等功能。希望这篇文章能够帮助你更好地理解 MQ 的强大功能,并在实际项目中灵活运用。原创 2024-08-06 23:59:42 · 619 阅读 · 0 评论 -
Spring的Bean的生命周期,Bean的装配和注入
10.经过流程9之后,就可以正式使用该Bean了,对于scope为singleton的Bean,Spring的ioc容器中会缓存一份该bean的实例,而对于scope为prototype的Bean,每次被调用都会new一个新的对象,期生命周期就交给调用方管理了,不再是Spring容器进行管理了。该属性控制着bean对象的作用域。3.如果Bean实现了BeanNameAware接口,会回调该接口的setBeanName()方法,传入该Bean的id,此时该Bean就获得了自己在配置文件中的id,原创 2023-02-26 01:39:38 · 646 阅读 · 0 评论 -
redis缓存穿透解决之布隆过滤器
布隆过滤器原创 2022-09-29 00:27:02 · 1566 阅读 · 0 评论 -
redis的基本知识和应用,redis缓存雪崩,缓存击穿,缓存穿透
redis基本使用与详解,redis命令,redis缓存原创 2022-09-28 22:58:16 · 213 阅读 · 0 评论 -
springboot启动流程及原理,@SpringApplication注解分析
springBoot启动流程及原理,@SpringBootAllication核心注解的分析原创 2022-09-27 22:45:15 · 707 阅读 · 0 评论 -
关于Java堆栈的理解与说明
说到java的堆和栈就想起来了,java内存中的分配结构。作为一个Java的程序员,我们肯定知道Java的程序是运行在java虚拟机上的,也就是平时所说的JVM。程序中所有的方法、变量、常量、实例、静态存储都是由JVM在内存中进行分配的。1.寄存器:JVM中运行最快的,JVM内部的虚拟的存储器和CPU有关,我们无法控制。2.堆栈(也就是平时所说的栈stack):用来存放基本数据类型和引用数据类型的实例的(也就是实例对象的在堆中的首地址,Person p = new Person; p...原创 2021-10-28 21:31:37 · 4237 阅读 · 0 评论 -
数据结构与算法—Java快速排序
之前写的快速排序采用的是固定位置法,即每一次取得基准都是当前所排序区域的最左边的元素。接下来看一下快速排序的优化。一. 随机选取基准法这就是随机选取基准法,,在所排序的区域随机选取一个数与当前的基准交换,这个随机数就成了新的基准。然后进行一次快速排序。这种方法适用于数组本身有序,就会提高排序的效率。public static int partition(int[] array,int start,int end){//返回基准的下标 int low = start; int原创 2021-10-14 15:59:40 · 186 阅读 · 0 评论 -
Java中单例设计模式,饿汉式和懒汉式
单例模式所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。如果我们要让类在一个虚拟机中只能产生一个对象: 将类的构造器的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。 提供一个public方法作为该类的访问点,用于创建该对象,必须是static修饰的,因为在类的外部开始还无法得到类的对象,只能通过类调用该方法。 缓存已创...原创 2021-10-12 16:06:55 · 551 阅读 · 0 评论 -
一、请用C语言写出int、bool、float、double、指针型与零值的比较语句;二、判断一个坐标点C是否在点A与B之间的线上
一、请用C语言写出int、bool、float、double、指针型与零值的比较语句布尔变量与零值比较不可将布尔变量直接与TRUE、FALSE或者1、0进行比较。根据布尔类型的语义,零值为“假”(记为FALSE),任何非零值都是“真”(记为TRUE)。TRUE的值究竟是什么并没有统一的标准。例如Visual C++ 将TRUE定义为1,而Visual Basic则将TRUE定义为-1。假设布尔变量名字为flag,它与零值比较的标准if语句如下:if(!a) { re...原创 2021-09-30 23:02:52 · 1687 阅读 · 0 评论 -
关于excel多层级(树形)数据结构,提取成树形结构数据并导出到数据库
在开发中遇到一个问题,就是有一张excel表中的数据时多层级的,不是普通一行一行的,而是,一行对应多行,多行之中的每一行在对应多行数据。形成树形结构:如上图所示:我遇到的excel表的结构:导入到数据库中,是有多个表组成的!我要实现把这些数据提取出来西港城一个树形而机构的List,然后转为json,导入数据库。献上我的核心代码:// 获取Excel内容 public static List<?> getContent(Sheet sheet) { List<原创 2020-12-23 17:59:35 · 8220 阅读 · 0 评论 -
使用Freemarker模板来生成model,service,mapper,mapper.xml等
项目工程:https://gitee.com/geekcjj/code-generator.git原创 2020-12-11 17:41:44 · 587 阅读 · 0 评论 -
视频格式转换工具,用到ws.schild.jave,之前是用的it.sauronsoftware.jave,作者已经不维护了
package com.maike.common.util;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.nio.channels.FileChannel;import java.util.ArrayList;import java.util.List;import org.slf4j.Logger;import org.slf4j.LoggerFact.原创 2020-12-11 17:40:37 · 9739 阅读 · 16 评论 -
Java中banner字符画,可生成各种图案
http://patorjk.com/software/taaghttp://www.network-science.de/ascii/http://www.degraeve.com/img2txt.phhttp://patorjk.com/software/taaghttp://www.network-science.de/ascii/http://www.degraeve.com/img2txt.php原创 2020-11-26 11:47:55 · 4058 阅读 · 0 评论 -
关于自增型主键的表中插入新数据后同时获取主键的值,useGeneratedKeys和keyProperty
在开发项目中遇到一个问题,就是在A表插入一条新的数据后,同时插入该条数据相关联的B表中一条数据,关联字段为A表中的主键,而这个主键时自增的,那么我如何在插入这条新数据的同时获取该数据主键id的值。在我看来要在插入的同时获得这个主键id的值一步是完成不了的,可能需要两部,先插入,后查询出来获取id的值,但这样两次访问数据库感觉有点不太安全,于是,而且插入数据后,你怎么知道查询后取出来的时你刚刚插入的那条数据,这些都没法判断,万一插入的数据时相同的没有一些显著的区分条件,你无法从A表中找到刚刚才新插原创 2020-11-17 15:51:22 · 662 阅读 · 0 评论 -
java读取properties中的中文值会乱码
在项目的应用中,经常将一些配置放入properties文件中,在代码应用中读取properties文件,就需要专门的类Properties类,通过这个类可以进行读取。web-name=池塘网web-author=麦科特web-describe=一个有趣的网站在项目中读取properties配置文件中如果有中文则会出现乱码的现象,如:第一种方式:private static final String FILE_PATH="webinfo.properties";Properties原创 2020-06-04 16:59:54 · 1235 阅读 · 2 评论 -
Intellij IDEA四种热部署配置
热加载热加载可以使代码修改后无须重启服务器,就可以加载更改的代码。(其实分 java 和非 java 代码, 本处可以让 java 代码立即生效且不重启服务)第 1 种:修改服务器配置,使得 IDEA 窗口失去焦点时,更新类和资源菜单 Run -> EditConfiguration , 然后配置指定服务器下,右侧 server 标签下 on frame deactivation = Update classes and resource。优点:简单缺点:基于 JVM 提供的热加载原创 2020-05-11 11:21:43 · 432 阅读 · 0 评论 -
no applicable action for [springProfile], current ElementPath is [[configuration][springProfile]]
Spring启动时logback打印出很多日志,还有错误信息09:00:16,520 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]09:00:16,520 |-INFO in ch.qos.logback.classic.LoggerCon...转载 2019-11-07 09:54:31 · 1298 阅读 · 0 评论 -
数据库datetime时间前端显示格式化
后台查询数据库返回的这种时间格式2019-04-24T02:30:00.000+0000第一种方法:var time="2019-11-04T08:04:52.000+0000";var d = new Date(time);var times=d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() + ' ' +...原创 2019-11-05 15:18:36 · 3078 阅读 · 0 评论 -
mysql批量插入数据实现语句性能分析
想往某个表中插入几百万条数据做下测试,原先的想法,直接写个循环10W次随便插入点数据试试吧,好吧,我真的很天真....DROP PROCEDURE IF EXISTS proc_initData;--如果存在此存储过程则删掉DELIMITER $CREATE PROCEDURE proc_initData()BEGIN DECLARE i INT DEFAULT 1; ...转载 2019-04-18 15:26:29 · 418 阅读 · 0 评论 -
myeclipse导入项目报错解决:import sun.misc.BASE64Decoder无法找到
一直以来Base64算法的加密解密都是使用sun.misc包下的BASE64Encoder及BASE64Decoder来进行的。但是这个类是sun公司的内部方法,并没有在Java API中公开过,不属于JDK标准库范畴,但在JDK中包含了该类,可以直接使用。但是在Eclipse和MyEclipse中直接使用,却找不到该类。问题描述如下图:第一种方法:解决方案:第一步:在使用sun.mi...原创 2019-04-08 11:19:35 · 9637 阅读 · 1 评论 -
使用cmd命令行将jar包添加到自己本地电脑上的maven仓库
1.进入cmd2.cd命令进入到jar包所在目录3.使用命令:mvn install:install-file -DgroupId=smartload -DartifactId=smartupload -Dpackaging=jar -Dversion=0.0.1 -Dfile=SmartUpload.jar其中Dfile为jar包的完整名称,Dversion为jar的版本,D...原创 2019-04-10 15:38:31 · 1767 阅读 · 0 评论 -
Java实现点击按钮切换不同的字,相当于Tab切换
package com.Tab;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.TextArea;import jav原创 2017-06-22 09:36:25 · 1948 阅读 · 0 评论 -
java封装多态与重载
package first;public class FIrstjava { private int bs; private String devoleper; private boolean feiyong=true; private double hour; private double money; public int getBs() { return bs原创 2017-04-20 09:19:44 · 243 阅读 · 0 评论