自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (4)
  • 收藏
  • 关注

原创 flyway+junit5做集成测试、单元测试

适用场景功能开发完成后,后端开发人员进行代码自测代码重构后,集成测试一些注解相关源码包: junit-jupiter-apiannotationsdescription@Test用例@ParameterizedTest参数化用例@DisplayName标识用例的名称@BeforeEach每个用例运行之前操作@AfterEach每个用例运行之后操作@BeforeAll本类的每个用例运行之前操作@AfterAll本类的每个用

2021-08-30 16:12:04 471 1

原创 Zookeeper做分布式锁

相关命令 create [-s] [-e] [-c] [-t ttl] path [data] [acl] ls [-s] [-w] [-R] path delete [-v version] path实现思路一在指定目录下,创建有序且临时节点,客户端根据自身创建的节点是否是 “序号最小”的节点进行判断如果是 “序号最小” 的节点,则认为当前客户端 拥有 LOCK如果非 “序号最小” 的节点,则认为当前客户端 无 LOCK业务代码执行完毕后,释放LOCK操作,即 delete 该节点

2021-07-28 11:28:44 185

原创 Zookeeper做主从选举

相关命令create [-s] [-e] [-c] [-t ttl] path [data] [acl]ls [-s] [-w] [-R] path实现思路在指定目录下,创建有序且临时节点,客户端根据自身创建的节点是否是 “序号最小”的节点进行判断如果是 “序号最小” 的节点,则认为当前客户端是 master如果非 “序号最小” 的节点,则认为当前客户端是 slaver考虑点网络断线重连后(Event.KeeperState.SyncConnected),要检查自己是否为 maste

2021-07-27 13:45:19 324

原创 Zookeeper做配置中心

原始命令get

2021-07-25 09:08:33 272

原创 java.util.Properties的几个坑

之前排查线上问题,发现数据源的部分配置没有生效,结果跟了下源码,发现Properties这个类的新大陆,这里记录分享下下面的代码,大家认为输出分别是多少? 我先说结果啊,size:1 ,value: CHINA Properties firstProperty = new Properties(); firstProperty.setProperty("zone", "CHINA"); firstProperty.setProperty("time-o

2021-06-23 19:34:17 374

原创 XXL-JOB源码分析

本文档以2.2.0版本为基准一、表结构 xxl_job_group 执行器表 保存执行器列表,客户端地址列表 xxl_job_info 任务调度表 保存任务列表,下次调度时间 xxl_job_lock 并发锁表 Admin集群场景 ...

2020-10-10 13:44:55 2354

原创 简单了解JDK1.8的5种线程池

线程池 构造函数 核心线程 最大线程 线程存活时间 队列 FixThreadPool ? 等于核心线程数 永久 LinkBlockingQuque SingleThreadPool 1 1 永久 LinkBlockingQuque CacheThreadPool ? Integer.MAX_VALUE ? SynchronousQueue ScheduledThreadPool .

2020-06-05 11:40:27 487

原创 学习了解Mysql事务隔离级别

事务隔离级别 说明 场景 READ-UNCOMMITED 事务未提交,修改点也可被其他事务获取 READ-COMMITED 事务未提交,修改点不可被其他事务获取 业内普遍设置 REPEATABLE-READ 事务提交后,修改点不可被历史事务获取,可被新事务获取 mysql默认 不允许并发执行,相同数据行会由于死锁而重启事务 READ-UNCOMMITED隔离级别说明:事务A、线程B,即使事务A未comm...

2020-06-01 13:27:09 188

原创 Mysql-慢sql优化小结

永远不要等生产环境出现慢SQL,才想起优化你的SQL在编码前,先预判表大小,查询结果条数我们在编码前,可以先通过执行计划(explain)查看下,SQL的执行效率。普通mysql执行计划查看:explain select * from tableA where columnA = 'xiangbin'DRDS(mysql) 执行计划查看:explain execute se...

2020-04-03 11:31:38 207

原创 HashMap源码的初步了解

JDK1.8首先我们初始化HashMap对象,这里一共有3个构造函数 //初始化一个HashMap对象,定义初始化容量为2,加载因子为1f Map<Integer,String> map = new HashMap<Integer,String>(2,1f); //初始化一个HashMap对象,定义初始化容量为4,加载...

2020-02-27 11:02:32 268

原创 Dubbo灰度发布课题研究

之前公司内部组织进行课题小组研究,我们组选择了DUBBO的灰度发布任务到手,就是分析,灰度发布时,我们要注意哪些?一共5个注意点:1.数据库方面:DDL语句提前1天在业务低峰期由DBA进行操作,SQL代码层面,要检查,不允许出现select * from table 类似语句,要保证表字段可以随时添加2.对外流量灰度请求判定:这里我们的设计是,流量进来以后,在网关层进行拦截器处理inte...

2020-02-03 16:12:19 1460

原创 Dubbo应用优雅停机实践

网上相关的帖子很多,主要方法也都是加钩子HOOK,这里我对优雅停机进行了实践目前不管是dubboX、apache的dubbo、alibaba的dubbo都没有实现真正意义上的优雅停机(截止20191231)标红是重点,目前jar中自带的hook并不能满足先从注册中心移除、再销毁容器的...

2020-02-03 15:29:38 334

原创 代码版本GIT管理规范

目前team中的代码管理规范,分享一下一、版本管理工具git二、分支说明2.1 master分支master属于生产稳定主分支,所有版本迭代上线后,代码变动最终都需要合并至主分支的代码中。主分支上的代码每次被更新,都应有对应的标签(TAG)。2.2 feature分支feature属于产品规划的版本分支,是多个dev分支小组的合集,由dev合并生成。是正常产品版本提测时的分支,供测试...

2019-09-06 14:16:41 922

原创 设计模式—代理模式(Proxy)

代理模式的应用场景:springAOP、旧业务代码改造静态代理:首先有个业务接口IPayChannelService,里面有2个功能:扣款、退款public interface IPayChannelService { public boolean pay(String orderId); public boolean refund(String orderId);}旧...

2019-08-08 13:56:33 161

转载 Nacos 配置中心

转载文章:Nacos 配置中心原理分析Nacos 配置实时更新原理分析

2019-07-19 00:08:12 986

原创 FastJson序列化的注意点

最近在开发过程中,用FastJson将javabean序列化成String打印到日志中时,发现部分bean属性缺失检查发现,这是由于FastJson的序列化机制产生了影响public class DemoBean { private String name; private Integer age; private boolean isMale; //注意看这个g...

2019-07-04 10:58:10 1517

转载 【转】logback的使用和logback.xml详解

转载来源:https://www.cnblogs.com/warking/p/5710303.html 一、logback的介绍Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch。它当前分为下面下个模块:logback-core:其它两个模块的基础模块 logback-classic:它是log4j的一个改良版本...

2018-11-29 15:26:28 367 1

原创 跟着例子看java反射

关于反射,我的理解是用某些基本信息(类名、方法名、变量),逆向生成对象并调用其中的函数。有点像用基因技术生成一个新生命。这里,我用网关API来举例:我们平时在调用银联、xx银行的系统时,对方往往只给与一个url,具体业务依靠入参[交易代码]来做分流,内部调用不同的service。我们先创建一个交易代码枚举类ApiEnumspublic enum ApiEnums { CONSUM...

2018-11-27 16:02:33 102

原创 Linux常用命令

.sql大文件脚本导入数据库

2018-11-23 10:24:55 167

原创 JAVA回调

回调定义:先不告之,回头调用并告之。说明,回调机制有异步通知特点。 目前系统架构潮流是微服务+MQ异步,如果业务不需要这种架构或者仅单机部署,要怎么做到子线程业务不影响主线程服务呢。 这时候,回调就出现了Callback,比如有个业务,需要发送邮件,但发送邮件不能影响主业务 一般方法:main-Thread调用emailService,emailService另开线程发送邮件但如果我...

2018-07-02 14:45:56 281

原创 Redis做数据库缓存

业务场景:理财(查询可购买产品列表,某产品信息) 需要频繁查询某表的数据,如果每次都去数据库查询,会增加数据库压力,所以在访问数据库前增加一道缓存。 先上图,再来说明 上图所示,对于一般场景(缓存模型),先去访问redis中缓存的信息,避免每次访问数据库;但如果当我们的缓存key到了失效时间,过期了,redis中无数据,按照设计就要直接去查数据库了,1000个用户、2W个用户如果同时...

2018-06-20 15:28:02 871

原创 Redis常见用途

一、全局ID /** ID最大值 */ final static long maxNum = 2100000000; /** 初始ID */ final static long startNum = 1000000000; /** redis步长 */ final static long redisStepLength = 1; /...

2018-06-06 09:24:57 799

转载 JAVA回调机制(Callback)--转

转载自:https://www.cnblogs.com/heshuchao/p/5376298.html 转载来源序言 最近学习java,接触到了回调机制(CallBack)。初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义。当然了,我在理解了回调之后,再去看网上的各种讲解,确实没什么问题。但是,对于初学的我来说,缺了一个...

2018-06-04 15:13:26 244

原创 Mysql8.0安装步骤

第一步:下载安装包 MYSQL官方下载地址:官方下载 这里第一项是在线安装,第二项是离线包安装,我选择的是第二项(不用管你电脑是多少位的操作系统),因为: Note: MySQL Installer is 32 bit, but will install both 32 bit and 64 bit binaries. 不用注册、登录,直接选择左下按钮下载:No thanks,ju...

2018-05-10 14:39:05 145012 23

原创 maven仓库导入jar包

这里以导入支付宝sdk为例:打Jar包到本地仓库mvn install:install-file -Dfile=&quot;D:\Program Downloads\alipay-sdk-java-3.0.0.jar&quot; -DgroupId=com.alibaba -DartifactId=alipay-sdk -Dversion=2.0.6 -Dpackaging=jar打Jar包到Nexus远...

2018-05-10 10:45:24 488

原创 redis实现对账(集合比较)功能

现状:每日在进行系统之间的订单对账时,往往是这样的操作流程; 1.从外部系统拉取数据存入本地数据库; 2.查询本地订单数据集合localSet; 3.查询外部系统订单数据集合outerSet; 4.以本地localSet为基准,对照outerSet,进行遍历,将数据不一致(金额、状态等),或者localSet存在而outerSet不存在的数据,放入新集合localDiffSet; 5.以...

2018-03-07 10:47:27 8657 7

原创 使用iText库创建PDF文件(含中文解决方案)

所涉及到的JAR包地址: 下载地址 文档记录了生成PDF的4种场景: 第一部分:直接生成PDF文件; 第二部分:将HTML文件转成PDF文件; 第三部分:将字节流转成PDF文件,并放入servletResponse(本地不生成文件); 第四部分:将字节流转成PDF文件并打包成压缩包,并放入servletResponse(本地不生成文件); 第五部分:html转pdf,中文解决方案第

2018-01-30 10:32:19 1614

转载 RSA与AES的区别

外站链接

2017-12-28 16:58:36 1998

原创 AES加密解密

一般用在签名,token生成,数据加密package com.szd.util.base64;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmExc

2017-12-28 16:32:40 295

原创 Http/https请求工具类

含TLS1.2下载地址

2017-12-27 10:27:05 791 2

原创 查询数据库表重复数据

##----查询表中的重复数据SELECT *FROM business_sms_config tableBWHERE tableB.id NOT IN ( -- 剔除唯一数据剩下的就是重复数据 SELECT min(tableA.id) -- 遇到重复数据,取ID小的那条,得到唯一属性数据,和Max相反

2017-12-11 14:10:29 322

转载 UEditor上传图片到项目外部目录-java

转载地址http://blog.csdn.net/zrk1000/article/details/49885789

2017-10-25 08:57:35 295

原创 上转图片并预览

<!-- zhouxiang www.zhou-xiang.com --><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml

2017-10-18 10:10:04 168

原创 Websocket(一)简单的demo实现

首先是jar包依赖导入 dependency> groupId>javax.websocketgroupId> artifactId>javax.websocket-apiartifactId> version>1.1version> scope>providedscope>

2017-09-20 10:42:02 572

原创 springMVC异常统一处理

先以统一处理validation抛出的异常为例。// 该注解在4.0后支持对指定包、类进行管理annotations(), basePackageClasses(), basePackages()@ControllerAdvicepublic class ValidateControllerAdvice { /** * bean入参校验未通过异常捕获 */ @E

2017-09-11 10:25:09 438

原创 JAVA参数验证 Validation(二)分组校验&自定义校验

有些时候一个参数会在多个场景使用,不同场景对该参数的校验需求不同,即有些场景不对该参数进行校验。 比如注册时,我们要填写出生日期参数,但是登录时并不需要该参数这里可以用到校验分组groupspublic class User implements Serializable { // 添加2个空接口,用例标记参数校验规则 /** * 注册校验规则 */

2017-09-08 15:29:05 17254

原创 JAVA参数验证 Validation(一)

作者邮箱:[email protected]现状:部分人验证参数时,是在每个方法内对每一个参数进行一一验证;但是如果这些参数在多个接口共同会使用到,就会增加一部分重复代码劳作,如果能将这些参数验证放到一起,那么代码将会变得更加简洁。现状@Override public RechargeResponse recharge(RechargeRequest request) {

2017-09-08 14:15:20 2104

rabbitmq-server-3.8.9.zip

rabbitmq-server-3.8.9.zip

2021-01-12

erlang23.2版windows64位.zip

erlang23.2版windows64位

2021-01-12

Itext生成PDF相关JAR包

itextpdf-5.5.12.jar,itext-asian-5.2.0.jar,xmlworker-1.2.1.jar

2018-01-30

http/https请求工具类

// 提交方式 public static String REQUEST_METHOD_POST = "POST"; public static String REQUEST_METHOD_GET = "GET"; // 媒体类型 public static String MIME_TYPE_FORM = "application/x-www-form-urlencoded;charset=utf-8"; public static String MIME_TYPE_XML = "application/xml;charset=utf-8"; public static String MIME_TYPE_JSON = "application/json;charset=utf-8"; public static String MIME_TYPE_TEXTHTML = "text/html;charset=utf-8"; public static String MIME_TYPE_TEXTXML = "text/xml;charset=utf-8"; public static String MIME_TYPE_TEXTPLAIN = "text/plain;charset=utf-8";

2017-12-27

空空如也

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

TA关注的人

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