自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mybatisplus处理多数据源关键字兼容问题

mp处理多数据源关键字兼容问题

2023-02-09 16:42:44 1206 1

原创 导入excel大文件

最近的在做导入excel ,测试大文件4M左右的excel,一导入服务就被killed掉了,poi在new 工作簿的时候,会产生非常多的对象,突然式内存暴增 ,oom 后被kill掉。查询poi 官网发现导入有两种方式,一种是用户模式,一种是事件模式,用户模式简单易写,对于小的excel好用,事件模式代码复杂,但是用的内存少直接贴代码(事件模式)import java.io.File;import java.io.IOException;import java.io.InputStream;im

2021-10-11 20:43:48 346

原创 excle ,csv文件 导入相关问题

最近做的excel导入遇到的问题1.csv导入时如果字符串中含有逗号如何出来 // 切割数据时用String[] split = lineData.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");2.excle 导入时处理数据防止报错将所有数据变成文本格式再进行读取 String value; if (cell.getCellType().equals(CellType.NUMERIC)) { value = df.f

2021-09-01 14:29:15 195

原创 随机密码生成器

随机位数的密码生成器import org.apache.commons.lang3.StringUtils;import java.util.*;/** * @ClassName: RandomPwGenerator * @Description: 随机密码生成器(生成方式:密码字典) * @Author: * @Date: 2021/8/3 15:04 **/public class RandomPwGenerator { /** * 大写字母密码字典

2021-08-04 20:24:45 284

原创 构建邮箱服务

今天springboot 构建邮件服务,遇到的一些问题记录一下主要构建的模板html邮件1.pom文件 // 邮件包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>

2021-08-04 20:13:31 230

原创 (六)消息积压该如何处理

如何预防消息积压消息积压的原因:在某个环节出现了性能问题,来不及处理上游发送的消息导致消息积压如何避免消息积压:可以从两个方面 生产端 和消费端进行优化 来避免消息积压。生产端:一个消息在进行发送时,主要经过消息数据的组织,消息的序列化,创建发送的请求,网络传输耗时和消息确认。我们可以通过批量发送和提高并发优化发送端性能。如果我们做的时在线业务,注重的是请求时效响应,那么选择多线程并发 并行的生产发送消息 ,如果对于请求时效响应不是特别看重,那么选择批量发送,可以减少网络之间的生产传输耗时等来提高生

2020-08-10 22:08:53 432

原创 (五)如何处理消息的重复消费

在MQTT协议中,给出了三种传递消息的标准1at most once 至多一次:一个消息只被消费一次,不管是否成功,允许丢失一部分消息。2at least once至少一次:一条消息会被重复消费3exactly once恰好一次:一条消息只被处理一次,且必须成功,不能够失败大部分消息队列都是符合 at least once, 如rabbitmq ,rocketmq ,允许出现重复消息。在有重复消息的前提下,添加幂等可以保证系统的稳定,保证消息不被消费。幂等可以通过几种方式来实现:1.采用数据库

2020-08-10 21:05:44 751

原创 (四)消息队列实现分布式事务和如何检测消息是否丢失

消息队列实现分布式事务在生产阶段,首先给队列发送一个半消息,半消息是一分全量消息,只是在确认之前,不会被消费者发现,第二步实现本地事务,根据本地事务决定队列上的消息提交还是回滚,在本地事务完成之后给队列发送的消息提交发生问题,队列没有收到提交或者回滚的命令,kafka会直接抛出异常让用户自己处理,rocketmq有自己的消息反查机制,它会轮询去查哪些消息还没有得到确认,回去调用户实现的一个反查接口,来处理这条消息的状态。如何检测消息是否丢失大部分消息队列都会提供拦截器机制,利用队列的有序性,在拦截器里

2020-08-09 22:03:15 197

原创 (三)主题和队列的区别

队列:队列是一种先进先出的线性表,它能够严格保证消息的有序性现在的消息队列大概分为队列模型和订阅模型队列模型:当多个生产者在队列生产消息,在消费者一端,多个消费者消费消息属于竞争模式,同一时刻只能有一个消费者在消费,并且消费过后则不能重新消费,如果每个消费者都要得到一份全量的数据就必须建立多个队列,一份消息复制到多个队列,给每个消费者一个队列,这样我们就必须知道消费者有多少个,违背的消息队列的解耦原则。订阅-发布者模式:发布者-主题-订阅者,每个订阅者都能够得到一根全量的数据。队列模式和发布者模式的

2020-08-09 16:43:32 465

原创 微信公众号开发,小程序开发所需要的加密解密方法(留下了没有技术的泪水)

1.微信公众号前端调用api所需签名SHA1算法public String SHA1(String str) { try { MessageDigest digest = java.security.MessageDigest .getInstance("SHA-1"); //如果是SHA加密只需要将"SHA-1"改成"SHA"即可 digest.update(str.getBytes());

2020-08-08 16:50:16 557

原创 (二)消息队列如何确保消息不会丢失

消息队列如何确保消息不会丢失一条消息从生产到消费可以分为以下三个阶段:1.生产阶段:生产者发送消息到MQ2存储阶段:MQ将消息存储3消费阶段:消费者从MQ中消费生产阶段:生产阶段消息队列通过最常用的请求确认机制保证可靠性,当消息发送给broker如果成功则会得到一个确认响应,客户端得到响应则认为是一次成功的消息发送,若长时间得不到确认响应,则会重新发送消息,若不成功则会抛出异常或返回代表失败的值,在编写代码中,正确的处理返回值和异常,则能保证在生产阶段确保消息不丢失。存储阶段:在存储阶段正常

2020-08-01 14:08:05 322

原创 消息队列的作用和选型问题

消息队列的作用和选型问题消息队列的作用:异步,解耦,和削峰选型问题:三款主流且开源的消息队列RabbitMQ:是一款开箱即用的消息队列,每秒大概可以处理几万到十几万的消息,用erlang语言进行开发,二次开发需要较大的学习成本,容易造成消息堆积,性能会极具下降,RocketMQ:阿里巴巴开源的消息队列,经历过多次双十一的考验,每秒可以处理十几万到几十万的数据,有很好的生态圈,是用java 开发的,代码易读,二次开发成本较低,品学兼优,对在线服务做了很多的优化,适合在线业务使用 如支付Kafka

2020-07-30 23:06:05 72

空空如也

空空如也

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

TA关注的人

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