Java 中的几种重试机制
随着互联网的发展项目中的业务功能越来越复杂,有一些基础服务我们不可避免的会去调用一些第三方的接口或者公司内其他项目中提供的服务,但是远程服务的健壮性和网络稳定性都是不可控因素。在测试阶段可能没有什么异常情况,但上线后可能会出现调用的接口因为内部错误或者网络波动而出错或返回系统异常,因此我们必须考虑加上重试机制重试机制 可以提高系统的健壮性,并且减少因网络波动依赖服务临时不可用带来的影响,
SpringBoot+Druid多数据源配置详解
1.pom.xml文件 <spring.boot.version>2.2.5.RELEASE</spring.boot.version> <mysql-connector-jav
JVM优化配置
一、JVM基础参数配置-Xms 初始堆大小[默认物理内存的1/64]-Xmx 最大堆大小[默认物理内存的1/4] -Xmn 年轻代大小(1.4o
java 利用pdf模板生成PDF文件
首先如果是maven项目的话需要添加以下依赖,普通项目的话在官网(http://itextpdf.com/)下载对应的jar包加入即可。若是maven项目,添加依赖如下:<!-- pdf 操作 --> <dependency> &nb
Swagger Edit介绍
Swagger是专门用来管理接口一个工具。在开发过程中,接口一直是纷争的聚焦点,能有效管理接口(保存好记录、及时更新、方便查看、接口测试)。会让整个项目开发效率提升很大。 而其中Swagger Edit是用来编辑接口文档的小程序,简单易用。在官网上分为在线编辑和下载代码线下编辑,两种编辑方式。Swagger是通过YAML来定义你的接口规范。可以通过接口文档帮你生成不同框架的服务端和客户端
POI 分批读取Excel数据
StreamingReader.builder() .rowCacheSize(100) .bufferSize(8 * 1024) .open(file.getInputStream());
Kafka史上最详细原理总结
KafkaKafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写。
mysql 服务器巡检脚本
crontab -l# 每天早上1点 服务器巡检0 1 * * * /bin/bash /data/backup/scripts/check_server.sh > /data/backup/log/my3306/check_server.log 2>&1&
mysql巡检脚本
#!/usr/bin/env python3.5 import psutilimport mysql.connectorimport argparseimport jsonimport datetime def get_cpu_info(verbose): cpu_info={} if verbose >0: &nbs
JDK14新特性详解
预览版:该功能在当前版本可以使用,如果效果不是很好的话,可能以后的其他版本就会删去该功能。最终版:该功能在之前版本效果很好,之后的每个版本中都会存在该功能。1、Switch(最终版)和之前的jdk12、13功能一样,只不过确定下来为最终版int numLetters = switch (day) { &
JDK13新特性详解
1、switch优化更新(预览版) 什么是预览版,也就是说当前版本有这个功能,下一个版本不确定会有,如果该功能效果不是很好,会被下一版本移除该功能。JDK11以及之前的版本switch (day) { case MONDAY: case
Oracle服务器开启HugePages以支持大内存SGA
Linux内核支持linux虽然没有aix,hp unix那么强悍,但linux也是非常优秀的os。为了提升linux的性能,它采用了很多 io、memory的调度机制,linux使用内存的方式是采用vm的方式,即linux把物理内存和swap共同虚拟成可用内存来对外提供使用,有时用户看似使用内存,实则使用磁盘。linux管理内存的单位是页(pages),一般情况下默认的 page size 为4
Oracle的awr报告分析
AWR报告是了解ORACLE运行的一个重要报告,通过分析awr,定位到oracle db的性能问题所在,对后续的性能调优做到有的放矢。
JDK12新特性详解
JDK12新特性详解
JDK11新特性详解
JDK11新特性详解
JDK10新特性详解
JDK10新特性详解
JDK9新特性详解
JDK9新特性详解
JDK8新特性详解
JDK8新特性详解
如何实现优雅的重试?
无论是基于定时任务的重试机制,还是我们自己写的简单的重试器,缺点都是重试的机制太单一,而且实现起来不优雅,我们很难解决在什么条件下需要重试、什么条件下需要结束重试、重试等待的时间,很难监控整个重试的过程等等问题
mysql 5.7 虚拟列功能
首先判断一个SQL语句是不是慢查询语句,用的是语句的执行时间。他把语句执行时间跟long_query_time这个系统参数作比较,如果语句执行时间比它还大,就会把这个语句记录到慢查询日志里面,这个参数的默认值是10秒。当然在生产上,我们不会设置这么大,一般会设置1秒,对于一些比较敏感的业务,可能会设置一个比1秒还小的值。