自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Skr郎

你看这个碗,它又大又圆;就像这个面,它又长又宽!

  • 博客(85)
  • 收藏
  • 关注

原创 HashMap初始容量剖析

问题: 确定只装载10个元素, HashMap初始容量多少是最佳?答案: 16目的: 防止HashMap频繁扩容,影响性能解析:HashMap的底层数据结构是由 数组 和 单向链表 组成 扩容概念: 当所用数组的长度 大于 初始长度 * 0.75(负载因子)时,数组扩容 Map<String, String> map = new HashMap<String, String>(); 等同于 Map<String, String> map = ne

2020-05-15 17:21:46 384

原创 谈笑间学会模板方法模式

1 背景某天早上,Skr郎正在一边悠哉的吃着加了三跟烤肠的手抓饼,一边悠闲地逛着论坛,看着沙雕网友的帖子,Skr郎会心一笑,正欲给沙雕帖子点赞,邮件忽的弹出,Skr郎慢悠悠的打开邮件任务: 每日店铺交易表单导出时限: 一周要求如下: 1. 表头统一格式为Skr-店铺名称(eg:Skr-SM旗舰店) 2. 内容为店铺当日交易数据 3. 表尾为当天日期Skr郎心中暗喜,看我两天搞定,...

2020-03-20 19:33:07 189

原创 谈笑间学会策略模式

1 背景某天早上,Skr郎正在一边悠哉的吃着加了三个鸡蛋的手抓饼,一边悠闲地逛着论坛,看着沙雕网友的帖子,Skr郎会心一笑,正欲给沙雕帖子点赞,邮件忽的弹出,Skr郎慢悠悠的打开邮件任务: 对接阿里支付接口时限: 一周要求如下: 1. 单笔限额不超过1W 2. 可以成功提现 3. 发起提现后,可以主动查询提现结果Skr郎心中暗喜,看我两天搞定,剩下的时间就可以嘿嘿嘿了/**...

2020-03-13 16:59:45 316

原创 14 RabbitMQ解决分布式事务

1 原理最终一致性原理2 必要条件确认生产者将信息投递到MQ服务器中(采用MQ确认机制) 生产者向MQ发送消息失败,采用重试机制确认消费者能正确的消费消息,采用手动ACK模式(注意幂等性问题) 消费者消费消息失败,生产者无需回滚 ...

2019-12-26 15:49:15 271

原创 13 死信队列

文章目录1 图解2 消息如何进入死信队列3 应用场景4 代码样例4.1 生产者4.2 消费者5 注意事项1 图解2 消息如何进入死信队列消息过期队列长度已满消息被拒绝且不再重新尝试3 应用场景在定义业务队列时,指定一个死信交换机,并绑定一个死信队列当消息变成死信时,该消息就会被发送到该死信队列上这样就方便我们查看消息失败的原因4 代码样例4.1 生产者/*** 定...

2019-12-26 14:37:51 262

原创 12 补偿机制

文章目录1 出现场景2 实现原理2.1 @RabbitListener3 自定义重试4 如何选择重试机制4.1 需要重试4.2 无需重试5 幂等性1 出现场景rabbitmq 默认情况下,如果消费者程序出现异常,会自动实现补偿机制消费者出现异常,消息不会消费成功2 实现原理2.1 @RabbitListener@RabbitListener底层,使用Aop进行拦截,如果程序没有抛出异...

2019-12-26 13:53:37 821

原创 11 SpringBoot简单整合RabbitMQ

文章目录1 生产者1.1 代码地址1.2 项目2 消费者2.1 代码地址2.2 项目3 发送消息4 接收消息1 生产者1.1 代码地址https://github.com/3748/RabbitMq.git1.2 项目boot\rabbitmq-producer2 消费者2.1 代码地址https://github.com/3748/RabbitMq.git2.2 ...

2019-12-25 16:18:15 91

原创 10 交换机详解

文章目录1 交换机类型1.1 Direct(直连交换机)1.1.1 解释1.1.2 图解1.2 Fanout(扇型交换机)1.2.1 解释1.2.2 图解1.3 Topic(主题交换机)1.3.1 解释1.3.2 图解1.4 Headers(头交换机)1.4.1 解释1.4.2 匹配规则1.5 默认交换机1.5.1 解释1.5.2 默认交换机1.6 Dead Letter Exchange(死信交...

2019-12-25 12:01:28 1258

原创 9 通配符模式

文章目录1 图解2 代码3 代码介绍3.1 引入必须依赖3.2 获取MQ连接3.3 消息消费者13.4 消息消费者23.5 消息生产者3.6 启动生产者4 通配符规则1 图解2 代码url: https://github.com/3748/RabbitMq.gitpackage: com.test.rabbitmq.topic3 代码介绍3.1 引入必须依赖p...

2019-12-25 10:57:27 225

原创 8 路由模式

文章目录1 图解2 代码3 代码介绍3.1 引入必须依赖3.2 获取MQ连接3.3 消息消费者13.4 消息消费者23.5 消息生产者3.6 启动生产者1 图解2 代码url: https://github.com/3748/RabbitMq.gitpackage: com.test.rabbitmq.routing3 代码介绍3.1 引入必须依赖pom.xm...

2019-12-25 10:48:33 95

原创 7 发布订阅模式

.@[TOC]1 图解2 代码url: https://github.com/3748/RabbitMq.gitpackage: com.test.rabbitmq.ps3 代码介绍3.1 引入必须依赖pom.xml3.2 获取MQ连接com.test.rabbitmq.util.ConnectionUtil3.3 消息消费者1com.test.r...

2019-12-25 10:18:14 265

原创 2 Rabbit安装--Linux

未完待续[root@root ~]# cd /usr/local/src/[root@root src]# mkdir rabbitmq[root@root src]# cd rabbitmq/[root@root rabbitmq]# wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm-...

2019-12-24 14:56:41 114

原创 3 企业付款(Transfers)Demo

1 企业转账Demo1.1 pingpp–java在下载的ping++ sdk中找到TransferExample复制到你的项目中1.2 替换参数/* * * Ping++ Server SDK * 说明: * 以下代码只是为了方便商户测试而提供的样例代码,商户可根据自己网站需求按照技术文档编写, 并非一定要使用该代码。 * 接入企业付款流程参考开发者中心:https://www...

2019-12-20 09:31:05 417

原创 2 账号,私钥,公钥获取

文章目录1 注册2 App_ID3 Secret Key 与 Ping++ 公钥4 商户 RSA 公钥4.1 进入公钥生成网址4.2 获取相应的私钥与公钥4.3 生成商户公钥4.4 将4.2中生成公钥复制进来4.5 商户公钥生成完成1 注册2 App_ID3 Secret Key 与 Ping++ 公钥4 商户 RSA 公钥4.1 进入公钥生成网址https://help.ping...

2019-12-19 18:14:01 295

原创 1 环境部署

文章目录1 引入依赖1.1 远程引入1.2 本地引入1 引入依赖1.1 远程引入<dependency> <groupId>Pingplusplus</groupId> <artifactId>pingpp-java</artifactId> <version>2.3.14</vers...

2019-12-19 16:48:11 179

原创 6 保证消息不丢失

文章目录1 问题背景2 自动确认3 手动确认1 问题背景队列是如何知道消息已经被消费2 自动确认// 自动确认channel.basicConsume(QUEUE_NAME, true, consumer);只要消息从队列中获取,无论消费者获取到消息后是否成功消息,都认为是消息已经成功消费。3 手动确认// 手动确认channel.basicConsume(QUEUE_NA...

2019-12-17 20:48:52 179

原创 5 工作队列

文章目录1 图解2 代码3 代码介绍3.1 引入必须依赖3.2 获取MQ连接3.3 消息消费者13.4 消息消费者23.5 消息生产者3.6 启动生产者1 图解2 代码url: https://github.com/3748/RabbitMq.gitpackage: com.test.rabbitmq.work3 代码介绍3.1 引入必须依赖pom.xml3.2 获取...

2019-12-17 14:17:47 195

原创 4 简单队列

文章目录1 图解2 代码3 代码介绍3.1 引入必须依赖3.2 获取MQ连接3.3 消息生产者3.4 启动生产者3.5 消息消费者3.6 启动消费者1 图解2 代码url: https://github.com/3748/RabbitMq.gitpackage: com.test.rabbitmq.simple3 代码介绍3.1 引入必须依赖pom.xml3.2 获...

2019-12-17 14:04:37 165

原创 3 Virtual Hosts

文章目录1 添加Virtual Hosts2 创建用户2.1 用户角色2.1.1 超级管理员(administrator)2.1.2 监控者(monitoring)2.1.3 策略制定者(policymaker)2.1.4 普通管理者(management)2.1.5 其他3 Virtual Hosts分配用户3 界面中的功能1 添加Virtual Hosts相当于在mysql中创建一个数据库...

2019-12-15 18:23:16 1342

原创 1 Rabbit安装--Windows

文章目录1 安装[Erlang](https://pan.baidu.com/s/1hcO6vevn6gnVj_aFlC_ROA)2 安装[RabbitMQ](https://pan.baidu.com/s/1zZqtTLKItWYDs8kcw5QgsA)3 启动RabbitMQ4 检验是否安装成功1 安装Erlang1.1 类似于java开发需要jdk,RabbitMQ开发需要Erlan1...

2019-12-12 10:04:15 178

原创 1 去除Mybatis Xml红框

1 首先进入设置界面1.1 点击进入File-->Settings1.2 快捷键进入Ctrl+Alt+s2 搜索Inspections

2019-12-11 13:42:56 149

原创 5 linux修改hostname

[root@gp6 ~]# vi /etc/sysconfig/network改完成后重启

2019-11-13 14:39:12 94

原创 2 Perl安装

[root@gp6 perl]# yum install -y gcc# 下载[root@gp6 perl]# wget http://www.cpan.org/src/5.0/perl-5.16.1.tar.gz# 解压[root@gp6 perl]# tar -xzf perl-5.16.1.tar.gz[root@gp6 perl]# cd perl-5.16.1[root@gp...

2019-11-13 14:23:02 80

原创 1 JDK安装

1 JDK安装1.1 先卸载open-jdk// 查看是否已安装jdk[root@gp6 rabbitmq]# java -versionjava version "1.7.0_79"OpenJDK Runtime Environment (rhel-2.5.5.4.el6-x86_64 u79-b14)OpenJDK 64-Bit Server VM (build 24.79-b02...

2019-11-13 13:49:53 150

原创 9 两个list差值

package com.gp6.list.difference;import com.gp6.common.bean.Employee;import com.gp6.common.utils.ListUtil;import java.util.List;import java.util.stream.Collectors;/*** 测试list取差值** @author gp...

2019-10-16 16:33:16 537

原创 5 获取下个月第一天和最后一天

/** * 获取指定日期下个月的第一天 * * @param dateStr 当前时间 * @return 下个月第一天 */ public static String getFirstDayOfNextMonth(String dateStr) { SimpleDateFormat sdf = new SimpleDat...

2019-08-21 15:23:01 240

原创 4 时间字符串格式互转

/** * 中划线时间字符串格式化为 日期字符串(yyyyMMdd) * 其他格式,只需更改格式化即可 * * @param time 时间 * @return 格式化后时间 */ public static String midLineTimeFormatDate(String time) { try { ...

2019-08-21 15:22:14 123

原创 3 获取指定日期的指定天数后日期

/** * 获取指定日期的指定天数后日期 * * @param date 指定日期 * @param days 指定天数 * @return 结果 */ public static String getDesignatedDate(String date, String days) { try { ...

2019-08-21 15:19:07 489

原创 2 计算两个日期相差多少天

/** * 计算两个日期相差多少天 * * @param endDate 结束日期 eg:20190801 * @param beginDate 开始日期 eg:20191231 * @return 相差天数 */ public static String getDifferenceDays(String endDate, ...

2019-08-21 15:16:58 233

原创 1 Nexus

1 安装前提jdk安装且配置环境变量1.1 下载解压# 创建目录[root@gp6 soft]# mkdir nexus# 进入目录[root@gp6 soft]# cd nexus/# 将文件上传至该目录下[root@gp6 nexus]# rz# 解压[root@gp6 nexus]# tar -zxvf nexus-2.11.2-03-bundle.tar.g...

2019-08-12 14:02:25 124

原创 1 String与Date互转

public class Test { public static void main(String[] args) { //String转Date String string = "2016-10-24 21:59:06"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ...

2019-08-01 14:23:52 102

原创 1 公用

1 实体类package com.gp6.bean;import lombok.AllArgsConstructor;import lombok.Getter;import lombok.Setter;import lombok.ToString;import java.math.BigDecimal;/** * 员工 * * @author gp6 * @date 2...

2019-07-30 16:51:28 77

原创 1 将VUE项目放入nginx

1 静态资源文件2 Nginx配置server { listen 80; server_name m.com; location / { # 对应静态资源文件夹 root manage; # 对应首页 index index.html; # 解决登录之后刷新404 try_fi...

2019-04-21 18:35:09 454

原创 38 SpringBoot与VUE整合

1 将静态文件引入项目2 引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>3 配置文件...

2019-04-21 18:30:26 676

原创 8 求和(sum)

package com.java8.list;import java.util.ArrayList;import java.util.Comparator;import java.util.List;import java.util.Map;import java.util.stream.Collectors;/** * @author gp6 * @date 2019-04-...

2019-04-16 15:09:44 546

原创 7 排序(sorted)

package com.java8.list;import java.util.ArrayList;import java.util.Comparator;import java.util.List;import java.util.Map;import java.util.stream.Collectors;/** * @author gp6 * @date 2019-04-...

2019-04-16 14:55:49 182

原创 6 跳过(skip)

package com.java8.list;import java.util.ArrayList;import java.util.Comparator;import java.util.List;import java.util.Map;import java.util.stream.Collectors;/** * @author gp6 * @date 2019-04-...

2019-04-16 14:50:36 167

原创 5 限制(limit)

package com.java8.list;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.stream.Collectors;/** * @author gp6 * @date 2019-04-15 */public class TestList ...

2019-04-16 14:45:50 680

原创 4 去重(distinct)

package com.java8.list;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.stream.Collectors;/** * @author gp6 * @date 2019-04-15 */public class TestList ...

2019-04-16 11:46:28 151

原创 3 过滤(filter)

package com.java8.list;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.stream.Collectors;/** * @author gp6 * @date 2019-04-15 */public class TestList ...

2019-04-16 11:36:53 314

空空如也

空空如也

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

TA关注的人

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