自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 【CompletableFuture模拟真实场景之性能优化】

基于真实场景的CompletableFuture实战经验,远比你想象更强大!

2022-10-21 16:15:01 399 1

转载 ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

ELK平台介绍在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段:以下内容来自:http://baidu.blog.51cto.com/71938/1676798日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不

2020-10-13 17:23:13 231

转载 ELK学习总结——我们为什么要用ELK

一. ELK是什么?ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案,是三个产品的首字母缩写,分别是ElasticSearch、Logstash 和 Kibana。ElasticSearch简称ES,它是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。Logstash是一个具有实时传输能力的数据收集引擎,用来进行数据收集(如:读取文本文件)、解析,并将

2020-10-13 17:17:02 447

转载 mysql间隙锁

一、间隙锁的基本概念1.什么叫间隙锁当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但不存在的记录,叫做“间隙(GAP)”,InnoDB也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁(NEXT-KEY)锁。2.间隙锁的产生上面的文字很抽象,现在举个栗子,介绍间隙锁是怎么产生的:假设有以下表t_student:(其中id为PK,name为非唯一索引)id name sex add

2020-09-28 16:25:16 280

转载 使用Maven Helper解决Maven插件冲突

作者:桔子214032segmentfault.com/a/11900000175423961、何为依赖冲突Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的。Maven的依赖机制会导致Jar包的冲突。举个例子,现在你的项目中,使用了两个Jar包,分别是A和B。现在A需要依赖另一个Jar包C,B也需要依赖C。但是A依赖的C的版本是1.0,B依赖的C的版本是2.0。这时候,Maven会将这1.0的C和2.0的C都下载到你的项目中,这样你的项目中就存在了不同版本的C,这时Maven会

2020-09-16 14:21:43 177

转载 java8中Map的10个常用新方法

package com.jandmin.demo;import java.util.HashMap;import java.util.Map;import java.util.function.BiFunction;/** * @Description: java8中的map新方法 * @Author: JandMin */public class MainTest { public static void main(String[] args) { //ma.

2020-08-28 17:50:02 477

转载 MySQL产生死锁的根本原因及解决方法

一、 什么是死锁死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等的进程称为死锁进程.二、 死锁产生的四个必要条件•互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放•请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此

2020-08-26 11:35:50 511

转载 IDEA 2019.3 下载插件 Plugins Nothing found

问题: 如下如示,下载插件Key Promoter X时,搜索结果显示Nothing found解决: File - Settings - Plugins - HTTP Proxy Settings勾选箭头指示的框 - 点击OK重启IDEA...........................................................................................................

2020-08-20 12:02:42 1013

转载 mysql函数substring_index的用法

MySQL中一个很好用的截取字符串的函数:substring_index。用法规则: substring_index(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N)详细说明: 首先,设待处理对象字符串为“15,151,152,16”(虽然这里指的不是iP,可以看作是IP来处理吧) 这里截取的依据是逗号:“,” 具体要截取第N个逗号前部分的字符; 意思是:在字符串中以逗号为索引,获取不同索引位的字符。举例如下:1. 取第一个...

2020-08-19 16:40:49 2840

转载 ++小Flag实现,一百期面试题汇总++

1-10期【10期】Redis 面试常见问答【09期】说说hashCode() 和 equals() 之间的关系?【08期】说说Object类下面有几种方法呢?【07期】Redis中是如何实现分布式锁的?【06期】单例模式有几种写法?【05期】消息队列中,如何保证消息的顺序性?【04期】分库分表之后,id 主键如何处理?【03期】如何决定使用 HashMap 还是 TreeMap?【02期】你能说说Spring框架中Bean的生命周期吗?【01期】Spring,Spr

2020-08-17 15:36:55 186

转载 面试官最爱的 volatile 关键字,这些问题你都搞懂了没?

前言volatile相关的知识点,在面试过程中,属于基础问题,是必须要掌握的知识点,如果回答不上来会严重扣分的哦。volatile关键字基本介绍volatile可以看成是synchronized的一种轻量级的实现,但volatile并不能完全代替synchronized,volatile有synchronized可见性的特性,但没有synchronized原子性的特性。可见性即用volatile关键字修饰的成员变量表明该变量不存在工作线程的副本,线程每次直接都从主内存中读取,每次读取的都是最

2020-08-17 14:49:53 186

转载 MySQL中按天、自然周、月、季度、年份统计

在Oracle数据库中,通过to_char()函数来操作日期变量,而在MySQL中,则通过date_format()函数实现日期相关周期的统计。date_format()函数一共有两个参数:date参数表示日期变量,format参数表示日期格式。如果想查看date_format()函数的具体参数及其取值情况,可以搜索引擎中自行查询。比如输入“MYsql date_format”可以看到W3school中对该函数的详细介绍。http://www.w3school.com.cn/sql/func_date_

2020-08-14 10:47:39 1197

转载 一文搞懂JVM新生代、老年代和永久代

Java堆是垃圾收集器管理的主要区域,因此很多时候也被称为“GC堆”。从内存回收角度看,由于现在收集器基本都采用分代收集算法,所以Java堆中还可以细分为:新生代和老年代。再细致一点儿就是Eden空间、From Survivor空间以及To Survivor空间等。注意:堆=新生代+老年代,不包括永久代(方法区)从内存分配角度看,线程共享的Java堆中可能划分出多个线程私有的分配缓冲区(TLAB)。新生代Eden区域和Survivor区域,Survivor区域由FromSpace和ToS

2020-07-30 15:13:19 2981

转载 mysql字符串拼接

CONCAT() CONCAT_WS() GROUP_CONCAT()为了方便下面举例,这里放个student表供下面使用s_id s_name s_sex 01 张三 男 02 李四 男 03 王五 男 04 赵六 null 一、CONCAT() :最常用的字符串拼接方法,但遇到拼接中的字符串出现null的情况会返回null语法:CONCAT(string1,string2)DEMO1mysql &g

2020-07-30 14:04:51 115

转载 spring boot 防止重复提交

服务器端实现方案:同一客户端在2秒内对同一URL的提交视为重复提交上代码吧pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache..

2020-07-29 16:55:56 295

转载 迄今为止最好理解的ZooKeeper入门文章

大家好,今天来讲讲zookeeper,其实很早就计划写关于它的文章,但是由于各种原因一直推到了今天。本文会以类比的方式循序渐进、层层展开。各位坐稳了,让我们开启一段大脑的旅程。边界的产生与突破不觉间孩子已经上小学了,前段时间还参加了一次家长会,那就以学校和开会来说吧,这大家都很熟悉。如果一个班要想开班会,那随时开都行,不需要提前安排与通知,因为一个班级从内部看就是一个整体,在班级内,同学之间以及与老师之间都可以随意交流,没有任何隔阂与阻碍。一个班级从外部看就是一个独立的个体,因为班级与班.

2020-07-18 13:58:14 121

原创 Java生成唯一不重复的订单编号的方法

原理其实很简单,就是借助 java 中 String 类的 hashcode() 方法即可。整个代码实现如下所示: 1 2 3 4 5 6 7 8 9 10 11 publicstaticStringcreateOrderId(){ intmachineId=1;//最大支持1-9个集群机器部署 inthashCodeV=UUID.ran...

2020-07-15 13:56:23 1951

转载 IDEA的基本使用:让你的IDEA有飞一般的感觉

1.设置maven在File->settings->搜索mavenMavan home directory--设置maven安装包的bin文件夹所在的位置User settings file--设置setting文件所在的位置Local repository--设置本地仓库的2.IDEA 设置代码行宽度在File->settings->Editor->Code Style有人会问,如果输入的代码超出宽度界线时,如何让IDE自动将代码换行?有两种方式!第一种.

2020-07-09 14:02:48 214

转载 utf-8的中文是一个字符占几个字

英文字母和中文汉字在不同字符集编码下的字节数英文字母:·字节数 : 1;编码:GB2312字节数 : 1;编码:GBK字节数 : 1;编码:GB18030字节数 : 1;编码:ISO-8859-1字节数 : 1;编码:UTF-8字节数 : 4;编码:UTF-16字节数 : 2;编码:UTF-16BE字节数 : 2;编码:UTF-16LE中文汉字:字节数 : 2;编码:GB2312字节数 : 2;编码:GBK字节数 : 2;编码:GB18030字节数 : 1;

2020-07-09 11:18:17 1132 1

转载 sourcetree和Git的使用教程

1、简单的用Git管理项目。2、怎样既要开发又要处理发布出去的版本bug情况。SourceTree是一个免费的Git图形化管理工具,mac下也可以安装。下载地址:https://www.sourcetreeapp.com/1、从Git服务器上获取项目2、提交我的修改项目3、发布新版本4、修复bug参考:http...

2020-07-08 16:40:18 128

转载 SourceTree使用方法

之前在协同开发中遇到过这样的一个问题,在使用git合并代码时会覆盖掉其他同事的代码,刚开始接触的时候用的是命令行,后台开始用IDEA自带的git插件,今天第一次用到SourceTree,操作起来挺方便的!一 、SourceTree简介SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作。同时它也是Mercurial和Subversion版本控制系统工具。支持创建、提交、clone、push、pull 和merge等操作。二

2020-07-08 15:52:05 683

转载 SourceTree 3.1.3 版本跳过bitbucket注册方法

首先下载并安装好git程序。 接着下载并执行SourceTreeSetup-3.1.3.exe,会进入登录或注册bitbucket的界面,我只是想用软件,并不想去注册账号。怎么办?请往下看。 关闭上述安装窗口,打开 %LocalAppData%\Atlassian目录,接着进入SourceTree目录,创建accounts.json文件,并修改accounts.json内容如下: [ { "$id": "1", "$type": "Sourc...

2020-07-08 11:33:25 173

转载 Git生成SSH密钥

git config --global user.name "yangjianliang"配置用户名git config --global user.email "526861348@qq.com"配置邮箱此时,会在C:\Users\Administrator目录下生成.gitconfig配置文件:请勿删除!ssh-keygen -t rsa -C "526861348@qq.com"生成公钥和私钥按3次Enter,不需要设置名称与密码cat ~/.ssh/.

2020-07-08 10:03:00 260

转载 Spring Boot + redis解决商品秒杀库存超卖,看这篇文章就够了

问题描述在众多抢购活动中,在有限的商品数量的限制下如何保证抢购到商品的用户数不能大于商品数量,也就是不能出现超卖的问题;还有就是抢购时会出现大量用户的访问,如何提高用户体验效果也是一个问题,也就是要解决秒杀系统的性能问题。本文主要介绍基于redis 实现商品秒杀功能。先来跟大家讲下大概思路。总体思路就是要减少对数据库的访问,尽可能将数据缓存到Redis缓存中,从缓存中获取数据。在系统初始化时,将商品的库存数量加载到Redis缓存中;接收到秒杀请求时,在Redis中进行预减库存,当Redis中的库

2020-07-07 17:26:26 1008

转载 阿里巴巴java开发手册2020, 2019

如果直接点击提示有风险 复制到地址了访问即可2020版链接:https://pan.baidu.com/s/1MQqgvZwfDgvisxQOW48Wxg提取码:49tv2019版链接:https://pan.baidu.com/s/1If_ZKAM_74-8NTbjqhGKjA提取码:8st12018版链接:https://pan.baidu.com/s/1plo_H6a6ZFrUvLEuDJ8vEQ提取码:dxfv————————————————版权声明:本文为CSDN博主「

2020-07-07 16:49:18 2215

转载 四连问:API 接口应该如何设计?如何保证安全?如何签名?如何防重?

说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢?下面我们就来讨论下常用的一些API设计的安全方法,可能不一定是最好的,有更牛逼的实现方式,但是这篇是我自己的经验分享.一:token 简介Token:访问令牌access token, 用于接口中, 用于标识接口调用者的身份、凭证,减少用户名和密码的传输次数。一般情况下客户端(接口调用方)需要先向服务器端申请

2020-07-03 14:43:05 119

转载 SQL查找是否“存在“,别再count了,很耗费时间的

作者:程序猿囧途链接:http://suo.im/5T1tGv根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写 SQL 的时候,还要 SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的 count目前多数人的写法多次 REVIEW 代码时,发现如现现象:业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。普遍的 SQL 及代码写法如下##### SQL写法:SELECT.

2020-07-03 11:20:49 112

转载 MySql小表驱动大表

有的时候我们在操作数据库时会将两个或多个数据表关联起来通过一些条件筛选数据,在关联表时我们要遵循一些原则,这样会使我们编写的SQL 语句在效率上快很多。一、优化原则小表驱动大表,即小的数据集驱动大得数据集。在知道什么是小表驱动达大表之前,我们先来了解两个查询关键字,IN 与 EXISTS。我们通过两段查询语句先来了解一下它们的作用。我建立了两张表,一张员工表,一张部门表,员工表中有部门id 这个属性,将这两张表关联起来。我们先使用IN 来查询数据:SELECT *FROM t_empW..

2020-07-02 10:21:10 173

转载 Java中去除字符串中空格的方法

1、方法分类str.trim(); //去掉首尾空格 str.replace(" ",""); //去除所有空格,包括首尾、中间 str.replaceAll("",""); //去掉所有空格,包括首尾、中间 str.replaceAll(" +",""); //去掉所有空格,包括首尾、中间 str.replaceAll("\\s*",""); //可以替换大部分空白字符,不限于空格;  \\s*可以匹配空格、制表符、换页符等空白字符的其中任意一个。2、代码示例p...

2020-06-30 10:00:52 259

转载 使用Java生成二维码图片

下面我来分享两种生成二维码图片的方法。第一种,填入你扫描二维码要跳转的网址直接生成二维码第一步:导入相关的包1 <dependency>2 <groupId>com.google.zxing</groupId>3 <artifactId>core</artifactId>4 <version>3.3.3</version>5 </dependency>第二步:配置

2020-06-29 15:30:32 1957 1

转载 项目中常用的19条MySQL优化

在写文章之前,首先感谢飞友科技陆老师提供的文档。。声明一下:下面的优化方案都是基于 “ Mysql-索引-BTree类型” 的一、EXPLAIN做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别 key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式 key_len列,索引长度 ro...

2020-06-18 16:06:24 118

转载 微信卡券跳转小程序遇到的小坑

作者:苍茫小一关注需求背景在2019年8月13日之前,微信卡包里的卡券都是跳转到对应公众号的页面,但是在2019年7月26日时,微信发布通告:微信卡券“网页链接跳转”能力即将下线通知各位开发者:为了确保微信生态良性发展,微信卡券将于2019年8月13日下线网页链接跳转能力。下线后,卡券创建流程中,“自定义入口”与“卡券详情>立即使用跳转”不再支持跳转至网页配置,你可尝试使用跳转小程序作为替代。本次调整仅针对券,会员卡原有能力暂时不变。给你带来不便,敬请谅解。感谢你的理解和支持。

2020-06-18 16:00:05 1314

转载 微信网页授权access_token和普通access_token区别

access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需要使用access_token。注意:是所有接口都需要使用两者异同有效期:两者有效时间都是7200s。使用范围:通过网页授权获得的access_token,只能获取到对应的微信用户信息,与微信用户是一对一关系;而普通的access_token在有效期内可以使用,可以获取所有用户信息。次数限制:普通access_token每天获取最多次数为2000次,而网页授权的access_token获取次数没有限制。如何利用普通a

2020-06-18 15:57:21 692

转载 MySQL的死锁系列- 锁的类型以及加锁原理

作者:历小冰,公众号:程序员历小冰疫情期间在家工作时,同事使用了 insert into on duplicate key update 语句进行插入去重,但是在测试过程中发生了死锁现象: ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction 由于开发任务紧急,只是暂时规避了一下,但是对触发死锁的原因和相关原理不甚了解,于是这几天一直在查阅相关资料,总..

2020-06-17 15:26:50 148

转载 大话集群和负载均衡,太强了!

作者:阿苍老师www.cnblogs.com/nullering/p/9311151.html在“高并发,海量数据,分布式,NoSql,云计算……”概念满天飞的年代,相信不少朋友都听说过甚至常与人提起“集群,负载均衡”等,但不是所有人都有机会真正接触到这些技术,也不是所有人都真正理解了这些“听起来很牛的”技术名词。下面简单解释一下吧。要了解这些概念首先要了解一下项目架构的演进,我这里应用一张Dubbo的文档图片如图一:项目架构的演进ORM与MVC:早期的架构都集中在一台服.

2020-06-17 13:52:33 121

转载 一线大厂的分布式唯一ID生成方案是什么样的?

来源:老顾聊技术www.toutiao.com/i6682672464708764174一、前言分布式系统中我们会对一些数据量大的业务进行分拆,如:用户表,订单表。因为数据量巨大一张表无法承接,就会对其进行分库分表。但一旦涉及到分库分表,就会引申出分布式系统中唯一主键ID的生成问题,永不迁移数据和避免热点的文章中要求需要唯一ID的特性: 整个系统ID唯一 ID是数字类型,而且是趋势递增的 ID简短,查询效率快 什么是递增?如:第一次生成的ID为1...

2020-06-15 11:11:48 135

转载 Java中的BigDecimal,你真的会用吗?

作者:LanceToBigDatacnblogs.com/zhangyinhua/p/11545305.html一、BigDecimal概述Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(Stri.

2020-06-15 11:08:53 131

转载 “干掉” Date,Java8 LocalDate 真香!

作者:Wayfreemwww.sf.gg/a/1190000012922933简介伴随 lambda表达式、stream 以及一系列小优化,Java 8 推出了全新的日期时间API。Java处理日期、日历和时间的不足之处:将 java.util.Date 设定为可变类型,以及 SimpleDateFormat 的非线程安全使其应用非常受限。然后就在 java8 上面增加新的特性。全新API的众多好处之一就是,明确了日期时间概念,例如:瞬时(instant)、 长短(duration).

2020-06-15 11:04:08 104

空空如也

空空如也

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

TA关注的人

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