自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 【最佳实践】使用 CAS 方式并发插入或更新数据到数据库 2021-08-17

CAS 并发更新或者插入一条数据使用场景Java 核心代码示例MySQL 业务表信息使用场景消费消息队列MQ的消息,持久化到DB时。可能会有并发操作的业务中。Java 核心代码示例import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.RandomUtils;import org.springframework.dao.DuplicateKeyException;import org.springframework

2021-08-17 20:31:59 1386 2

原创 【最佳实践】并发请求微服务接口来加快接口响应速度 2021-08-17

以前使用过的 CountDownLatch 方式CountDownLatch 基本工作原理和使用案例现在使用的 Lambda 方式示例代码:// 定义一个公共的池public static final ForkJoinPool FORK_JOIN_POOL = new ForkJoinPool(Runtime.getRuntime().availableProcessors());public List<RegionInfoDTO> getRegionInfos(

2021-08-17 17:55:31 421

原创 解决 CentOS7 最小化安装后无法联网问题

这里写自定义目录标题需要先开启网络服务需要先开启网络服务1)激活网卡切root用户修改文件:/etc/sysconfig/network-scripts/ifcfg-XXXX将 ONBOOT=no 改为 ONBOOT=yes2)启动network服务service network restart

2020-09-17 19:43:55 368

原创 单例模式最佳实践 2020-09-10

单例模式维基百科:In software engineering, the singleton pattern is a software design pattern that restricts the instantiation of a class to one "single" instance. This is useful when exactly one object is needed to coordinate actions across the system. The .

2020-09-10 23:40:15 233

原创 阿里云OSS与NAS

对象存储OSS调研结果:我们使用OSS的方式不是最佳实践,一句话解释:没有为对象Object使用随机前缀,而是使用的顺序前缀。顺序前缀策略可能会导致存储对象的分区成为热点分区,而每个分区的I/O能力是有限的,也就是说繁忙时会被限速;另外达到一定条件时,分区数据再均衡还可能会延长请求处理时间(因为它要忙着再均衡)。最佳实践:多开辟Bucket,多使用随机前缀,使得数据分布相对离散,从而最大化利用OSS的能力。适合场景:适合互联网架构的海量数据的上传下载和分发。文件存储NAS调研结果:.

2020-07-06 18:59:49 935

原创 同步编程和异步编程的差异

差异:同步编程- 一个请求对应一个线程。- 所有都是阻塞执行,所有的执行都在一个线程持续。- ThreadLocals工作良好。异步编程- 一个请求可能会被多个线程去执行。- 所有都是非阻塞执行,一个被接受的请求可能会被返回到另一个线程的客户端(Client)。- ThreadLocals必须从一个线程传播到另一个线程。关于异步编程的总结:DO...- Learn fu...

2020-04-08 17:05:22 835

原创 Git 常用命令简单记录

git reflog 查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)git reset --hard HEAD~1 退回到上一个版本git reset --hard <commitid> 退回到指定commitid的版本(不保留这些被退回的提交)git reset --mixed <commitid> 退回到指定commiti...

2020-04-08 17:02:40 112

原创 CountDownLatch 基本工作原理和使用案例

定义:一种多功能的同步工具,它允许一个或多个线程等待,直到在其他线程中执行的一组操作完成为止。字面可以翻译为“倒计时锁存器”。功能:使用给定的计数初始化CountDownLatch。由于countCount方法的调用,直到当前计数达到零为止,await方法将阻塞,此后所有释放的线程将被释放,并且任何随后的await调用将立即返回。这是一种一次性现象-无法重置计数。如果需要用于重置计数的版本,请...

2020-02-28 18:48:12 751

原创 给一个大的 List 分区(根据给定的最大子列表Size均衡的分割出相应的子List)

核心思想:就是计算出相对均等的桶大小,然后利用Guava的Lists.partition()方法来分区。应用场景:请求的接口只允许一次请求1000个数据,而实际上要请求的数据超过1000,此时就可以利用次方法先分割;然后,再利用多线程和CountDownLatch工具来并发获取数据,从而提高响应速度。好了,话不多说,请看代码:import com.google.common.co...

2020-02-27 18:27:00 247

原创 超实用的SpringBoot中全局异常处理器(供参考)

import com.xxx.exception.CodingCloudException;import com.xxx.exception.ResourceNotFoundException;import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import org.apache.com...

2020-02-06 19:05:38 607

原创 Linux 服务器上如何通过 Shell 脚本一键部署 SpringBoot 应用?

下面的脚本适用于在Linux环境下,部署Java可执行jar包。需要对应的修改环境相关的参数,比如代码路径、部署路径、日志输出位置等。记得执行 chmod +x restart_server.sh 来让脚本可执行。#! /bin/shexport JAVA_HOME=$JAVA_11_HOMEhome_path=/home/workgit_branch=masterserver_p...

2019-05-19 15:49:44 922

翻译 什么是 Servlet 容器?

目录1、什么是 Web 服务器?2、什么是 Servlet 容器?3、什么是 Servlet?4、Servlet 容器和 Web 服务器如何处理一个请求的?5、JVM 的作用我们简单的谈一谈关于Web服务器,Servlet 容器及其与JVM 的关系。其实Servlet 容器只不过是一个 Java 程序。1、什么是 Web 服务器?想要了解什么是 Servl...

2019-04-30 23:10:08 18921

原创 Git免密码操作

在部署服务的时候,初期阶段,在没有运维的情况下,我们需要自己给代码构建打包放到服务器上部署。一般我们有两种方式:一种是直接打好包,上传到服务器上,然后部署;一种是在服务器上拉代码,然后配置好构建环境,然后打包部署,这个方式好处是拉代码的速度远快于本地打包上传。使用持续集成工具部署的方式不在讨论范围之内,就不提了。现在我们来说说,在使用Git的情况下,如何使用服务器上Pull代码的形式,...

2019-01-07 18:29:54 1202

原创 MySQL中如何存储字符宽度最大为4个字节的UTF-8编码?

问题来源在存储Scratch项目的xml内容时,DB报了个错:Incorrect string value: '\xF0\x9F\x91\x8B",...' for colum ...........(省略)原因因为数据库默认配置都是uft8,具体如下:SHOW VARIABLES WHERE Variable_name LIKE 'character%' OR Variable_...

2019-01-01 23:14:03 1654

原创 SpringBoot中单机Reidsson客户端配置

这其中有一个大坑! 在 application.yml 配置中,redis密码配置为空的时候(如下代码所示),如果调用setPassword(password)方法直接设置密码,那么传入的将是一个空字符串,然后你就会发现怎么就连接不是redis呢?!所以这里一定要判断空字符串,将其转为null再SetPassword。(或者配置文件中不配置password这个属性应该默认就是null)...

2018-12-25 15:47:14 861

原创 Tomcat9 启动时创建 SecureRandom 实例使用了过长的时间

问题:Tomcat启动慢,启动日志提示:警告 [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [172,808] milliseco...

2018-12-04 17:47:01 1572

Objective-C培训教程

一份objective-c的快速入门教程,基本的知识点都有详细介绍。想自学的同志不要错过。

2014-08-11

空空如也

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

TA关注的人

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