- 博客(182)
- 资源 (2)
- 收藏
- 关注
原创 Java List 转map,分组,排序
日常工作中经常需要用到对List集合的分组、排序、转Map等操作,每次都会忘记,然后去网上查,费时又费力,不如自己好好总结一下,提升工作效率和减少bug率。
2024-08-22 19:49:44 259
原创 Redis并发问题解决方案
Redis并发问题解决方案,分布式锁,原子操作,事务,虽然能解决并发问题,但是后2者不能完全保证数据一致性,因为都没有失败回滚
2023-11-23 11:30:33 2609
原创 Springboot 使用JavaMailSender发送邮件 + Excel附件
Spring自带的JavaMailSender发送邮件,并且带附件
2023-10-27 17:15:51 2664
原创 java 7大设计原则
解释:B无意中重写的父类的func1方法, 原本func1 是 num1 - num2,重写后 变成 相加, 这样 如果是无意识的话,程序员本来要做 func1的相减功能,但是结果却是相加。一个类 对自己依赖的类知道的越少越好。1、父类中凡是已经实现好的方法,虽然他不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。2、如果一个类被其他类所继承,则当这个类需要任意修改,就必须考虑到所有的子类,并且父类修改后,所有涉及到子类的功能都可能产生故障。
2023-04-23 17:29:51 1420
原创 Redis cache-aside模型-分布式锁等问题研究
缓存穿透,缓存击穿,雪崩,预热等情况,都是Redis缓存里没有对应数据的情况,这种时候如果发生大并发怎么办?这就需要并发排他
2022-09-02 17:45:31 867 1
原创 MySql -- 不存在则插入,存在则更新或忽略
1.前言Mysql在插入数据时,需要忽略或替换掉重复的数据(依据某个字段,比如Primary Key或Unique Key),这时候我们既可以在应用层处理,也可以使用复杂的 SQL 语句来处理(如果仅仅知道一些简单的 SQL 语法的话),当然也可以使用一些简单的 SQL 语法,不过它并不是通用所有的数据库类型。下面我们以MySQL为例,研究一下insert 怎样去忽略或替换重复数据2.表实例表名称:person表字段:Column Name Primary Key A
2022-05-31 17:04:20 7251
转载 精辟--为什么NIO被称为同步非阻塞
按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO。按照POSIX标准来划分只分为两类:同步IO和异步IO。如何区分呢?首先一个IO操作(read/write系统调用)其实分成了两个步骤:1、发起IO请求;2、实际的IO读写(内核态与用户态的数据拷贝)阻塞IO和非阻塞IO的区别在于第一步,发起IO请求的进程是否会被阻塞,如果阻塞直到IO操作完成才返回那么就是传统的阻塞IO,如果不阻塞,那么就是非阻塞IO。同步IO和异步IO的区别就在于
2022-05-27 13:13:30 1122 8
原创 猪齿鱼平台CI流程总结--遇到的坑
1.指定maven仓库猪齿鱼平台可以创建自己的maven仓库(nexus),但是目前上传jar包有问题,所以我们需要先使用之前的maven仓库:http://119.3.163.234:8051/repository/maven-public/。(1).指定maven仓库的设置,请看第3小节的修改“构建镜像”流程(2).上传jar包到maven仓库(目前一直失败,推测网络问题,先不管了)参考文章:maven安装、环境变量配置以及使用mvn命令上传文件 - 简书 (jianshu.com)
2022-05-23 15:24:05 855
原创 关于java web系统设计的一些点的思考总结
1.怎样提高数据库的读写能力?以Mysql,MongoDB为例,思想还是分流提高读能力:主从复制,读写分离。集群中所有数据库数据是相同的,读请求被分流到集群中的任何一个数据库,这样自然增加了读能力。但是增加从数据库并不能增加写能力,反而在一定程度上降低了主数据的写能力,因为写操作都是在主数据库中进行的,每增加一个从数据库,从数据库要从主数据库同步数据,这样会占用主数据IO,从而降低主数据库写IO操作性能。 提高写能力:主从集群不能提高写能力,那么可以通过分片集群的方式分流写操作,从而同时提高写能力
2022-05-14 09:11:03 372
原创 SEATA整合sharding-jdbc
本文使用的初始源代码来自于:seata-samples/springcloud-seata-sharding-jdbc-mybatis-plus-samples at master · seata/seata-samples · GitHub但是在运行上面代码过程中,发现老是运行失败,出现各种各样的错误,最后发现是因为配置的原因,初始代码中给的配置信息不全,这里给出完整的配置信息1.seata-order- sample模块(1). application.properties#订单微服务
2022-05-06 22:55:20 2426 3
原创 JVM调优总结--压力测试
1.查看JVM进程:C:\Users\ThinkPad>jps33360 Launcher453218696 MainClientBootStrap21864 Launcher18380 MainServerBootStrap19212 Jps2.Linux查看进程的线程信息参考文章:Linux查看进程的线程信息_慕城南风的博客-CSDN博客_linux查看线程(1)ps指令:在ps命令中,“-T”选项可以查看线程信息。下面的命令列出了由进程号为<pid>.
2022-05-05 15:26:36 1662
原创 Kafka生产与消费--简单示例
下面用java给出一个kafka生产与消费的简单示例:运行环境:java:java version "1.8.0_291"kafka:<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.11</artifactId> <version>2.1.0</version></dependency&
2022-05-03 07:29:23 2912
原创 IDEA 常用快捷键列表
IDEA新手对快捷键不熟,但是如果掌握了所有IDEA的快捷键使用,那么你完全可以丢掉鼠标,并且可以提高开发效率。一、Ctrl 快捷键Ctrl + F 在当前文件进行文本查找 (必备)Ctrl + R 在当前文件进行文本替换 (必备)Ctrl + Z 撤销 (必备)Ctrl + Y 删除光标所在行 或 删除选中的行 (必备)Ctrl + X 剪切光标所在行 或 剪切选择内容Ctrl + C 复制光标所在行 或 复制选择内容Ctrl + D 复制光标所在行 或 复制选择内容,并把复制内容插入
2022-04-23 16:05:36 300
原创 Kafka生产者原理与优化
Kafka生产者生产消息,基本上包括下面几个部分:线程:多个线程可以操作同一个kafkaProducer去生产消息,并且可以给多个不同的topic生产消息 kafkaProducer: kafka消息生产者,具体对应kafka的一个java类,里面包含了partitioner分区器(根据具体消息的key去选择发送到哪个分区,如果没有key则轮询选择分区);accumulator累加器(针对缓冲区进行操作,缓存产生的消息,缓冲区大小可以根据业务调优-优化),还有双向队列dq用来缓存消息(缓冲区中),dq
2022-04-14 13:14:11 2694
原创 Maven生成和推送Docker镜像到Docker仓库( IDEA 亲测可用)
1.搭建私有Docker镜像仓库1.搭建docker registry参考文档:docker-registry私有镜像库搭建并配置密码登录_知难行难1985的博客-CSDN博客docker registry 2 with tls and basic authentication-布布扣-bubuko.com官网:Registry - Official Image | Docker HubDeploy a registry server | Docker Documentation...
2022-04-13 16:51:46 7141
转载 docker-registry私有镜像库搭建并配置密码登录
一、docker构建私有仓库 #搭建私有镜像仓库 [root@docker_test opt]# docker pull registry Using default tag: latest latest: Pulling from library/registry Get https://registry-1.docker.io/v2/library/registry/manifests/sha256:b1165286043f2745f45ea637873d619
2022-04-12 10:58:13 7103 2
Fetion2011June.exe
2012-07-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人