2021年推特网黄Top10排行榜

长安乱

100部BL动漫大放送(上篇)

夜读丨一个曾经绝密28年的名字!

汤加火山剧烈喷发,导致这个国家“失联”

分享到微信朋友圈

点击图标下载本文截图到手机
即可分享到朋友圈。如何使用?

填写问券帮助你更迅速地找到相关搜寻

日拱一兵

2021年3月29日

池化技术有多牛?来,告诉你阿里的Druid为啥如此牛逼!

minEvictableIdleTimeMillis:最小检查间隙,缺省值30min,官方解释:一个连接在池中最小生存的时间(结合检查区间来看,闲置时间超过这个时间,才会被丢弃)。
2021年3月26日

蚂蚁一面:谈谈你对读写分离以及分库分表的理解,回答出这些应该是不错的

一般情况下,我们都会选择一主多从,也就是一台主数据库负责写,其他的从数据库负责读。主库和从库之间会进行数据同步,以保证从库中数据的准确性。这样的架构实现起来比较简单,并且也符合系统的写少读多的特点。
2021年3月22日

Spring Native beta 版发布, 技术融合越来越快

JVM),并且还提供了一些有趣的特性,包括几乎即时启动(通常
2021年3月22日

深入Hotspot源码与Linux内核理解NIO与Epoll

当网卡接收到数据之后,触发操作系统的中断程序,根据该程序的Socket端口取对应的Socket列表中寻找该进程A,并将进程A从所有的Socket列表中的等待队列移除,并加入到操作系统的工作队列!
2021年3月19日

面试长知识了!Java 关键字 transient 竟然还能这么用

中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息,一个序列化后的对象可以被写到数据库或文件中,也可用于网络传输。一般地,当我们使用缓存
2021年3月19日

怎么在Java中自定义注解?

//业务代码...}解析注解最关键的一步来了,解析注解,一般在项目中会使用Spring的AOP技术解析注解,当然如果只需要解析一次的话,也可以使用Spring容器的生命周期函数。
2021年3月15日

Java编译和反编译那些事

在不同的虚拟机实现中,执行引擎在执行字节码的时候,通常会有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,也可能两者兼备
2021年3月15日

再来工具篇,10个解放双手实用在线工具

工作中时不时就会有运营人员或者老板直接甩个任务,给我统计一下某某销量的指标,用SQL查询很简单,但给外行人看这类数据,还要是更直观一点,反正都是干活为啥不完成的出彩一点。
2021年3月14日

Java中的枚举,一些不为人知的干货都在这了

位向量是一种极为高效的位运算操作,由于直接存储和操作都是bit,因此EnumSet空间和时间性能都十分可观,足以媲美传统上基于int的“位标志”的运算,关键是我们可像操作set集合一般来操作位运算。
2021年3月14日

都说程序员内向,那内向的我们如何快速成长?

程序员多不善言谈或内向,这种方式甚至会传染,内向的人也有自己的优势,选对办法,依旧可以快速成长
2021年3月10日

Online 黑科技工具,大部分我都在用

有没有因为某个动漫角色的颜值,爱上某一部动漫?你只需要提供一张二次元图片,就能够从这里搜索出对应的动漫作品。作者还在github上开源了这个项目源码,别star了,人家只是开源了前端的UI部分哈哈。
2021年3月8日

120000字,你们要的Java 并发编程图文小册整理出来了,免费送给大家!

这不是一个涵盖所有并发内容的小册,但至少是一个可以让你不枯燥入门,又可以形成一定知识体系的小册,带着上面这句话,我们一起继续深耕并发吧
2021年3月3日

一个快速排序这么多细节?

该方法实现也是比较简单的,借助了栈来实现,很容易实现。主要利用了先进先出的特性,这里需要注意的就是入栈的顺序,这里算是一个小细节,需要注意一下,其中分区函数和上面一致。大家只需看入栈出栈情况即可。
2021年3月1日

大厂(阿里美团头条京东滴滴)面试问题,看看自己差在哪?

5.concurrenthashmap原理,put,get,size,扩容,怎么保证线程安全的,1.7和1.8的区别,为什么用synchronized,分段锁有什么问题,hash算法做了哪些优化
2021年3月1日

啥是 PR?啥又是MR?

上面所有的项目必须是公开的,也就是说自己很渣的代码也必须要公开,不能藏着噎着。但是在一些小的公司或者创业团队,代码这种核心资产是不希望被公开,他们迫切需要私密仓这种需求,所以很多人都选择了
2021年2月22日

位运算就能做到,就不要写那么多代码了【位运算奇淫技巧】

a=a^b;//a=a^bb=a^b;//b=(a^b)^b=a^0=aa=a^b;//a=(a^b)^(a^b^b)=0^b=0原理已经写在注释里面了,是不是感觉非常diao呢?
2021年2月22日

还有年味的文章,ForkJoinPool 大型图文现场

TYTS,以上这些方式的子线程接到任务后不会再继续拆分成「子子」任务,也就是说,子线程即便接到很大或很复杂的任务也得硬着头皮努力执行完,很显然这个大任务是问题关键
2021年2月18日

K8S 图形化管理,Easy 到爆

DirectoryOrCreate以yaml的形式创建Service,操作路径为Services->创建->节点端口->以YAML文件编辑,配置信息如下;apiVersion:
2021年2月8日

常见 JVM 面试题+“答案”, 听说发完年终奖你就需要它了

首先是内存大小问题,基本上每一个内存区域我都会设置一个上限,来避免溢出问题,比如元空间。通常,堆空间我会设置成操作系统的2/3(这是想给其他进程和操作系统预留一些时间),超过8GB的堆优先选用G1。
2021年2月5日

你还不知道啥是布隆过滤器?

查询某个变量是否存在的时候,我们只需要通过同样的K个映射函数,找到对应的K个点,判断K个点上的值是否全都是1,如果全都是1则表示很可能存在,如果K个点上有任何一个是0则表示一定不存在。
2021年2月2日

try-catch-finally 人畜无害吗?

的官网查询到(英文文档):https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html
2021年2月1日

K8S, 让你发布项目丝滑起来

通过K8S扩展和管理容器化应用确实十分方便,通过几个命令我们就可以实现零停机更新,出了故障也不怕,一个命令实现回滚。但是大量的命令行操作总显得枯燥无味,要是有个可视化工具可以直接管理K8S就更好了。
2021年2月1日

写了很多代码,怀疑你连基本的数据结构都搞不懂

表示)之间建立一个确定的对应关系,使每个关键字和散列表中一个唯一的存储位置相对应。因此在查找时,只要根据这个对应关系找到给定关键字在散列表中的位置即可。这种对应关系被称为散列函数(可用
2021年1月27日

RSocket | 替代 REST 的不二选择

lengleng!|+--------+-------------------------------------------------+----------------+FNF
2021年1月25日

不会正确应用 Git 提交代码是影响年底KPI的

就是比较详细描述本次提交涉及的条目,罗列代码功能,这里胖哥习惯用markdown的列表语法,也就是用中划线换行隔开条目。当然body不是必选的,如果subject能够描述清楚的话。
2021年1月25日

2W字,Socket粘包问题终极解决方案—Netty版

上一篇我们写了《Socket粘包问题的3种解决方案》,但没想到评论区竟然炸了。介于大家的热情讨论,以及不同的反馈意见,本文就来做一个扩展和延伸,试图找到问题的最优解,以及消息通讯的最优解决方案。
2021年1月21日

10分钟玩转K8S还是很香的

Minikube是一种轻量级的Kubernetes实现,可在本地计算机上创建VM并部署仅包含一个节点的简单集群,Minikube可用于Linux、MacOS和Windows系统。Minikube
2021年1月20日

深入探索Redis的五种基础数据类型

3、根据新的编码格式重置之前的值,因为这时的contents存在着两种编码的值。从插入的数据的位置,也就是尾部,从后到前将之前的数据按照新的编码格式进行移动和设置。从后到前调整是为了防止数据被覆盖。
2021年1月20日

MySQL不会丢失数据的秘密,就藏在它的 7种日志里

|+---------------------+--------------------------------------------------------+通过如下命令开启慢查询日志后,我发现
2021年1月18日

Java/Go/Python,一文搞懂参数传递原理

car1==Car{name='bwm'}结果可能会与部分人预期相反,这样的修改却是可以影响到原有数据的?这岂不是和值传递不符,看样子这是引用传递吧?
2021年1月15日

SpringCloud LoadBalancer灰度策略实现

environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);
2021年1月15日

sar命令,好一个大宝剑

sar命令很简单,它的参数主要分为四部分。其中,第二部分和第三、四部分,是可选的,也就是说,最终要的参数,就剩下一个,那就是类型。这个参数的值非常的多,我们暂且放在一边,看一下以上命令的简单意义。
2021年1月13日

坚持住,分布式缓存灵魂十连 Combo

redis服务端是单线程处理模式,这意味着如果有一个指令导致redis处理过慢,会阻塞其他指令的响应,所以redis禁止在生产环境使用重量级操作(例如keys,再例如缓存较大的值导致传输过慢)
2021年1月13日

不要再用main方法测试代码性能了,内置的不香吗?

JMH不仅能帮我们测试一些常见类的性能,比如对比StringBuffer和StringBuilder的性能、对比不同算法的在不同数据量的性能等,还能够帮助我们对系统中发现的热点代码进行量化分析。
2021年1月11日

如何安全传输存储用户密码?

即使是加了盐,密码仍有可能被暴力破解。因此,我们可以采取更「慢一点」的算法,让黑客破解密码付出更大的代价,甚至迫使他们放弃。提升密码存储安全的利器~Bcrypt,可以闪亮登场啦。
2021年1月11日

10分钟搞定让你困惑的 Jenkins 环境变量

https://e.printstacktrace.blog/jenkins-pipeline-environment-variables-the-definitive-guide/
2021年1月7日

数据库迁移搞炸了!没用这款开源神器的锅?

migrate命令,命令行会输出执行成功的信息;在\sql目录下添加SQL执行脚本,给ums_admin表添加一些数据,执行脚本为V1.0.2__Add_ums_admin.sql;INSERT
2021年1月5日

Docker不香吗?为什么还要用k8s,已经分家了

开发人员编写代码,在自己本地环境测试完成后,将代码部署到测试或生产环境中,经常会遇到各种各样的问题。明明本地完美运行的代码为什么部署后出现很多
2021年1月5日

10张图让你彻底理解回调函数

GetServiceD(c);代码很清晰,很容易理解有没有。我们知道异步回调的方式会更加高效,那么使用异步回调的方式来写将会是什么样的呢?GetServiceA(function(a){
2021年1月4日

让你看透世界的8个底层逻辑

不管能不能成功,就已证明他是一个有责任心的员工,他在帮我解决难题,在帮公司清理麻烦,虽然这个项目不好做,我相信有我的支持,有公司其他人的配合,他的机会还是有的。即便最后做不好,我也不会批评他”
2021年1月4日

Java日常开发的21个坑,你踩过几个?

=60如果「不通过反射」,传入Integer.valueOf(100),走的是Integer重载。但是呢,反射不是根据入参类型确定方法重载的,而是「以反射获取方法时传入的方法名称和参数类型来确定」的
2021年1月1日

基于 Spring Boot + Vue.js + MySQL 的 QQ 登陆实战

})},getAuthenticationUrl==http://127.0.0.1:10011/api/userservice/user/getAuthenticationUrl就是上文定义的接口
2020年12月30日

线程间到底共享了哪些进程资源?

虽然看上去所有线程访问的都是同一个变量,但该全局变量独属于一个线程,一个线程对此变量的修改对其他线程不可见。
2020年12月30日

写出好的Join语句,前提你得懂这些

2.如果小结果集和大结果集连接的列都是索引列,mysql在join时也会选择用小结果集驱动大结果集,因为索引查询的成本是比较固定的,这时候外层的循环越少,join的速度便越快。
2020年12月28日

「Spring Boot 新特性」节省95%内存占用

https://gitee.com/gi2/codes/famcqz6n21iylpg3us7j036
2020年12月28日

Docker Container 就是个进程,多新鲜啊?🤪

mongo总结这里没有上来就和大家死背命令,现在不会,将来也不会。而是通过实际目的,结合命令补全自行查看的方式逐步认识与了解。强烈建议大家安装命令补全,可以尽情使用
2020年12月23日

WebSocket的姨母级教程

协议商定子协议,即使不需要使用子协议,而是用更高的应用程序级协议,但应用程序仍需要选择客户端和服务器都可以理解的消息格式。且该格式可以是自定义的、特定于框架的或标准的消息传递协议。
2020年12月23日

DockerHub访问慢怎么破?试试Harbor?

/etc/docker/daemon.json添加一行insecure-registries配置即可,允许使用非安全方式访问Harbor镜像仓库,注意不要少了端口号80;{
2020年12月21日

别的不多说,Spring的这几个设计模式,出现就要清晰认识

}}从源码中可以看出,是通过ConcurrentHashMap的方式,如果在Map中存在则直接返回,如果不存在则创建,并且put进Map集合中,并且整段逻辑是使用同步代码块包住的,所以是线程安全的。
2020年12月21日

Redis,从应用到底层,全到没朋友的那种

漏桶算法思路:把水比作是请求,漏桶比作是系统处理能力极限,水先进入到漏桶里,漏桶里的水按一定速率流出,当流出的速率小于流入的速率时,由于漏桶容量有限,后续进入的水直接溢出(拒绝请求),以此实现限流。
2020年12月15日

深入理解Mybatis解析Mapper底层原理

name警告信息的直接原因是pagehelper-spring-boot-starter和mybatis-plus-extension共同依赖的mybatis-spring的版本不一致导致。
2020年12月15日

精神多了,当Swagger遇上YApi,瞬间高大上了!

安装nodejs,直接下载安装包双击安装即可,这里安装的是12.14.0版本,下载地址:https://nodejs.org/dist/v12.14.0/node-v12.14.0-x64.msi;
2020年12月10日

SpringBoot健康检查,如何与容器配合?

监控的重要性就不必多说了吧,不要再花功夫开会讨论它的必要性了,当你线上遇到问题,就不会再怀疑监控是浪费开发成本的建设。监控让人告别了靠“猜”来维持的救火现状,它能够留下证据,来支撑我们后续的分析。
2020年12月8日

Validator,就来这一篇吧

@Validated注解是spring提供的,提供了一个分组功能,可以在入参验证时,根据不同的分组采用不同的验证机制。没有添加分组属性时,默认验证没有分组的验证属性(Default分组);
2020年12月8日

Docker 命令自动补全必须有

https://raw.githubusercontent.com/docker/compose/1.27.4/contrib/completion/bash/docker-compose
2020年12月6日

写代码有这16个好习惯,可以减少80%非业务的bug

所以,如果你的需求是在原来接口上修改,,尤其这个接口是对外提供服务的话,一定要考虑接口兼容。举个例子吧,比如dubbo接口,原本是只接收A,B参数,现在你加了一个参数C,就可以考虑这样处理。
2020年12月4日

「五大常用算法」一文图解分治算法和思想

将父问题分解为子问题同等方式求解,这和递归的概念很吻合,所以在分治算法通常以递归的方式实现(当然也有非递归的实现方式)。分治算法的描述从字面上也很容易理解,分、治其实还有个合并的过程:
2020年12月4日

年底谈完奖金,怎样才是跳槽的正确姿势?

不过风险往往也伴随着机遇,初创企业的文化一般比较开放、和谐,没有大企业的条条框框,同时最重要的一点就是你未来收益是有可能剧增的,比如阿里巴巴的上市造就了千位千万富翁。
2020年12月2日

Elasticsearch官方已支持SQL查询,用起来贼方便!

说真的,ES的Query我不常写,当要用到时,基本上就是官方文档查询API拼接query。SQL操练了很多年熟记于心,直接用SQL查询ES那就是完美的了,本文就把这个技能完整的展现出来了
2020年12月2日

M1 暴打 Intel?——x86 与 ARM 的爱恨情仇

看到这可能有人说,明显是复杂指令集好啊,同样数量的指令,复杂指令集包含的操作更多,这样你想完成一件较为复杂的事情是可能只需要发送一个指令就好了,要是精简指令集的话,你还得发送好几个指令才可以。
2020年11月30日

Windows 的这款工具,有时让我觉得 Mac 不是很香

当我们查找一个应用,我们要找桌面上的图片,常用的还好一下可以定位到位置,万一不常用可使要多找上一会;如果要找个文件或文件夹更是麻烦。PowerToys
2020年11月30日

cheat.sh 在手,天下我有

命令。为了记住一些杂乱的或不被经常使用的知识点,我们迫切需要一个“小抄”/备忘录,小抄内容多了自然繁杂,所以我们希望这个小抄要:
2020年11月27日

面试官:你知道select语句和update语句分别是怎么执行的吗?

当建立连接,履行查询语句的时候,会先行检查在缓存区域看看这个sql与否履行过,若是之前执行过,它的执行结果会以Key-Value的形式缓存于内存中,Key是执行的sql,Value是结果集。
2020年11月25日

支持百万级TPS,Kafka是怎么做到的?答案藏在这10张图里

磁道:磁道就是以中间轴为圆心的圆环,一个盘面有多个磁道,磁道之间有间隙,磁道也就是磁盘存储数据的介质。磁道上布有一层磁介质,通过磁头可以使磁介质的极性转换为数据信号,即磁盘的读,磁盘写刚好与之相反。
2020年11月25日

10个经典又容易被人疏忽的JVM面试题

对象创建在虚拟机中是非常频繁的行为,可能存在线性安全问题。如果一个线程正在给A对象分配内存,指针还没有来的及修改,同时另一个为B对象分配内存的线程,仍引用这之前的指针指向,这就出「问题」了。
2020年11月24日

摸手教程-基于ShardingSphere-JDBC的MySQL读写分离

说的直白一点,Sharding-JDBC就是包含了分库分表读写分离功能的JDBC,因此我们可以直接把Sharding-JDBC当做普通的JDBC来使用。
2020年11月24日

话不多说, 3W字带你实战性搞定 RabbitMQ

Simple队列中只能一一对应的生产消费,实际开发中生产者发消息很简单,而消费者要跟业务结合,消费者接受到消息后要处理从而会耗时。「可能会出现队列中出现消息积压」。所以如果多个消费者可以加速消费。
2020年11月23日

Spring Boot 2.4 全新Cron表达式处理机制

现在支持以下代表常用表达式的宏。可以使用这些宏而不是六位的表达式,因此:
2020年11月23日

【硬核万字总结】看完这20道Redis面试题,直接通关

VALUEstring类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。string类型是Redis最基本的数据类型,一个键最大能存储512MB。
2020年11月19日

MySQL高可用之主从复制

那么,为了减轻每台MySQL主机的访问压力,还可以对MySQL进行读写分离,实际上,主从复制和读写分离一般就是联合使用的。我们实际生产环境使用的是sharding-jdbc来实现的读写分离。
2020年11月19日

Github资源那么丰富,为什么你啥都搜不到?

资源真是丰富到爆,从xx到yy,基本你需要的一切都可以在这上面找到,当找不到内容时,不妨了解一下
2020年11月18日

Docker 命令千万个,日常顺手用的就这几个

Docker是一个开源的应用容器引擎,让开发者可以打包应用及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上。使用Docker可以更方便地打包、测试以及部署应用程序。
2020年11月16日

ELK 到底是个啥?看完就懂了!

我们都知道,在生产环境中经常会遇到很多异常,报错信息,需要查看日志信息排查错误。现在的系统大多比较复杂,即使是一个服务背后也是一个集群的机器在运行,如果逐台机器去查看日志显然是很费力的,也不现实。
2020年11月16日

5 张图就搞定 Redis缓存雪崩事故,生动的很啊

公司最近安排了一波商品抢购活动,由于后台小哥操作失误最终导致活动效果差,被用户和代理商投诉了。经理让我带同事们一起复盘这次线上事故。
2020年11月14日

一石二鸟,从设计模式上剖析Mybatis源码

Mybatis是一个比较主流的ORM框架,所以在日常工作中接触得很多。我比较喜欢看优秀框架的源码,因为能写出这种框架的作者肯定有其独特之处。如果能看懂源码的一些巧妙构思,一定是受益匪浅的。
2020年11月12日

MySQL如何实时同步数据到ES?试试这款阿里开源的神器!

|+---------------------------------+-------------------------------------+再查看下MySQL的binlog模式;show
2020年11月10日

一文读懂线程池的工作原理(故事白话文)

「线程池」IT部门成立后,雇佣了几个与公司有正式合同关系的员工a,b,c,「小田螺」管他们几个正式员工做「核心线程」。当老板提一个需求过来,小田螺就把需求分配给「手上没活干」的线程处理...
2020年11月9日

tail 命令让我对日志追踪有了进一步理解

}}主要的思想,就是使用Java的Process启动一个子tail进程,一直监控着文件的输出。然后把标准输出和标准错误流,全部定向到BufferedReader中。接下来,你能做你想要做的任何事。
2020年11月7日

精心为你准备的最全的20道Mysql面试题。

而B+树是多叉树,一个数据页的大小是16kb,在1-3的树高就能存储10亿级以上的数据,也就是只要访问磁盘1-3次就足够了,并且B+树的叶子结点上一个叶子结点有指针指向下一个叶子结点,便于范围查询:
2020年11月7日

MySQL中,21个写SQL的好习惯,值得培养

(address,age)9.修改或删除重要数据前,要先备份,先备份,先备份(SQL后悔药)如果要修改或删除数据,在执行SQL前一定要先备份要修改的数据,万一误操作,还能吃口「后悔药」~
2020年11月5日

Lombok的这个注解在Spring中用起来真的很爽

我见过很多反对Lombok的同学,背地里又偷偷的把插件添加了进去,这是真香原理在搞鬼。嘴上说不要,身体很诚实。反对的人,应该是没见过一些业务代码的冗长繁杂,还沉浸在自己病态的完美主义中。
2020年11月5日

妙用 Intellij IDEA 创建临时文件,Git 跟踪不到的那种

中切换到其他项目中也可以看到你刚刚创建的这个文件,进一步说白一点,这是凌驾在项目之上的一个全局功能,如下图,切换到了其他项目中,Scratch
2020年11月3日

多数人都曾遇到过的 limit 问题,深入浅出 MySQL 优先队列

本文案例是课代表上线过程中遭遇到的实际问题,咨询了下周围同学,有好几个都遇到过此问题,网上文章大多浅入浅出,读完有隔靴搔痒之感,无法解答心中疑惑。遂整理此文。
2020年11月3日

Nginx如何支持HTTPS?手把手教贼简单!这个必须会

证书文件拷贝证书文件到Nginx的指定目录下,然后修改配置文件blog.conf,只要修改证书配置路径即可,修改完成后重启Nginx;#SSL配置ssl_certificate
2020年11月1日

Java对象转JSON时如何动态的增删改查属性

age;}其实思路很明确,只要我们能够将对象转换为ObjectNode就可以如法炮制。ObjectMapper提供了valueToTree方法可以实现这一点,所以对象转
2020年11月1日

借助 IDEA,咱好好看看 synchronized

因为JVM虚拟机自己有一些默认启动的线程,里面有好多sync代码,这些sync代码启动时就知道肯定会有竞争,如果使用偏向锁,就会造成偏向锁不断的进行锁撤销和锁升级的操作,效率较低。
2020年10月30日

ConcurrentHashMap核心原理,这次彻底给整明白了

415的二进制高位都为0,低位都是1。那么经过&计算后,hash值100的高位全部被清零,低位则保持不变,并且一定是小于(n-1)的。也就是说经过如此计算,通过hash值得到的数组下标绝对不会越界。
2020年10月30日

安利一个IDEA骚操作:一键生成方法的序列图

网上对于序列图的定义有很多,我觉得都不太好理解,太抽象了。最神奇的是,大部分文章对于序列图的定义竟然都是一模一样,看来大家是充分发挥了写代码的“精髓”啊!
2020年10月28日

并发环境下,先操作数据库还是先操作缓存?

通过数据库的「binlog」来「异步淘汰key」,以mysql为例 可以「使用阿里的canal将binlog日志采集发送到MQ队列」里面,然后「通过ACK机制 确认处理」
2020年10月28日

长文梳理 RocketMQ

就是要传输的消息,一个消息必须有一个主题,一条消息也可以有一个可选的Tag(标签)和额外的键值对,可以用来设置一个业务的key,便于开发中在broker服务端查找消息。
2020年10月23日

一网打尽Redis Lua脚本并发原子组合操作

KILL终止正在执行的脚本。但是为了数据的完整性此命令并不能保证一定能终止成功。如果当一个脚本执行了一部分写的逻辑而需要被终止时,该命令是不凑效的。需要执行SHUTDOWN
2020年10月20日

极限压榨elasticsearch写入速度

ES使用非常广泛,尤其是ELKB,几乎是上点规模的日志系统,都在用它。日志属于写多读少的业务场景,对写入速度要求很高。拿我们其中一个集群来说,单集群日志量达到百TB,每秒钟日志写入量达到10W条。
2020年10月20日

程序员必备的基本算法:递归详解

递归,在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。简单来说,递归表现为函数调用函数本身。在知乎看到一个比喻递归的例子,个人觉得非常形象,大家看一下:
2020年10月16日

Serverless|Framework——图文玩转 AWS Lambda

arn:aws:elasticloadbalancing:us-east-1:XXXXXX:listener/app/my-load-balancer/50dc6c495c0c9188/#
2020年10月13日

必知必会 | 关于Redis缓存这三大问题,必知必会

加锁,对于key过期的时候,查询数据库的时候加锁,可以让只有一个连接访问到数据库,然后获取到key缓存到redis中,减少了缓存的压力。在单机幻觉使用单机的锁,在分布式环境下使用分布式锁。
2020年10月13日

Docker 图形化管理又有更新了

容器,感觉它还是很强大的,非常好用。不足之处就是远程终端非常慢,不方便有时候远程进入容器内部进行操作。不过这不是拒绝它的理由,大部分日常都可以通过它很好的解决。
2020年10月12日

使用Sentinel对Spring MVC接口进行限流

.\sentinel-dashboard-1.8.0.jar客户端这时就可以移除注解相关的配置和样板代码了,但是拦截器GlobalSentinelWebMvcConfiguration配置务必保留。
2020年10月9日

高性能解决线程饥饿的利器 StampedLock

方法,第一个使用了乐观读,使得读写可以并发执行,第二个则是使用了读锁转换成写锁的编程模型,先查询缓存,当不存在的时候从数据库读取数据并添加到缓存中。
2020年10月9日

Java开发中如何自动填充SQL语句中的公共字段

this.strictUpdateFill(metaObject,"updater",String.class,userId);
2020年9月26日

一文快速入门分库分表(必修课)

我们知道数据库是以行为单位将数据加载到内存中,这样拆分以后核心表大多是访问频率较高的字段,而且字段长度也都较短,因而可以加载更多数据到内存中,来增加查询的命中率,减少磁盘IO,以此来提升数据库性能。
2020年9月26日

面试造飞机:面对Redis持久化连环Call,你还顶得住吗?

value值当AOF的日志文件增长到一定大小的时候Redis就能够bgrewriteaof对日志文件进行重写瘦身。当AOF配置文件大于改配置项时自动开启重写(这里指超过原大小的100%)。
2020年9月21日

体验spring-boot-devtools热部署,流畅且不失强大,Jrebel呢?

SpringBoot,StringBuilder,StringBuffer,俗称Java界的3个SB。尤其是SpringBoot,非常的好用,主要归功于它的autoconfig,靠约定来规范开发。
2020年9月21日

重磅!GitHub 推出容器镜像仓库服务!

一样,公共镜像是免费的,可以匿名拉取。私有镜像现阶段(测试阶段)是免费的,正式上线后将和
2020年9月17日

用SQL代替DSL查询ElasticSearch怎样?

release_date-----------------+--------------------+---------------+------------------------Peter
2020年9月17日

Spring Boot 配置文件的加载优先级总结

locations;}在任何情况下配置项spring.config.additional-location下的配置文件都会被先加载,如果我们指定了Spring
2020年9月14日

分布式锁(数据库、Redis、ZK)拍了拍你

其实,对于上面的问题基于数据库也可以解决,比如:不可重复,你可以「增加字段保存当前线程的信息以及可重复的次数」,只要是再判断是当前线程,可重复的次数就会+1,每次执行释放锁就会-1,直到为0。
2020年9月14日

一个工作三年的同事,居然还搞不清深拷贝、浅拷贝...

所以来到Java的世界,我们要习惯用引用去操作对象。在Java中,像数组、类Class、枚举Enum、Integer包装类等等,就是典型的引用类型,所以操作时一般来说采用的也是引用传递的方式;
2020年9月8日

Java常用属性拷贝工具类使用总结

org.apache.commons.beanutils.BeanUtilsBean#copyPropertygetPropertyUtils().setSimpleProperty(target,
2020年9月8日

【工具篇】程序员不愿意写 PPT 是姿势不对?

也是一个不容忽视的软技能,不要产生排斥心理,它可以锻炼自己归纳总结的能力,梳理内容的逻辑思维,以及演讲表达的技巧......开拓自己的技能,让能力等机会总是没错的
2020年9月8日

写log用占位符,背后有啥知识点?

小C说:不要拿这种老掉牙的问题来问我。+最终在字节码上,都是使用StringBuilder进行拼接的。我还知道StringBuilder和StringBuffer,其实在效率上并没有什么区别。
2020年9月7日

IntelliJ IDEA的数据库管理工具实在太方便了

Java后端开发主要跟数据库打交道,所以数据库图形化界面(GUI)是少不了的。通常图形化操作关系型数据库(RMDBS)大多数人会选择Navicat。如果你用的是Intellij
2020年9月7日

ElasticSearch 索引 VS MySQL 索引

通过以上内容可以看出再复杂的产品最终都是基础数据结构组成,只是会对不同应用场景针对性的优化,所以打好数据结构与算法的基础后再看某个新的技术或中间件时才能快速上手,甚至自己就能知道优化方向。
2020年9月4日

Windows给力!可以扔掉Linux虚拟机了!

https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"等待一小段时间,我们的终端颜值就更上一层楼了。
2020年8月31日

不可不知的软件架构模式

软件可以说是人类创造的最复杂的系统类型。软件的各个模块之间有各种显性或隐性的依赖关系,随着系统的成长和模块的增多,这些关系的数量往往以几何级数的速度增长。而理解运用这些复杂性的人并没有太多的变化。
2020年8月27日

一文把Redis主从复制、哨兵、Cluster三种模式摸透

并且,每个redis底层还维护了一个clusterNode数组,大小也是16384,用于储存负责对应槽的节点的ip、端口等信息,这样每一个节点就维护了其它节点的元数据信息,便于及时的找到对应的节点。
2020年8月27日
2020年8月24日

10分钟搞定 Java 并发队列好吗?好的

并发队列有了个初步的认识了,原来看似杂乱的方法貌似也有了规律。接下来就到了疯狂串知识点的时刻了,借助前序章节的知识,分分钟就理解全部队列了
2020年8月24日

谈谈如何防止抑郁?

这就是自我攻击的一种表现。久而久之,可能会就让自己处于抑郁之中。针对这种情况导致的抑郁,解决方案很明确,那就是行动起来,逐步获取小的成就,建立自信心与掌控感。
2020年8月21日

一个@Transaction哪里来这么多坑?

}}上面三个方法都在同一个类DmzService中,其中saveAB方法中调用了本类中的saveA跟saveB方法,这就是自调用。在上面的例子中saveA跟saveB上的事务会失效
2020年8月21日

监控系统选型,这篇不可不读!

性能瓶颈:机器量或者业务量大了后,关系型数据库的写入一定是瓶颈,官方给出的单机上限是5000台,个人感觉达不到,尤其现在应用层的指标越来越多。虽然最新版已经开始支持时序数据库,不过成熟度还不高。
2020年8月19日

面试被问到Redis实现发布与订阅,手摸手教

Redis的发布与订阅的功能应用还是比较广泛的,它的应用场景有很多。比如:最常见的就是实现实时聊天的功能,还是有就是博客的粉丝文章的推送,当博主推送原创文章的时候,就会将文章实时推送给博主的粉丝。
2020年8月19日

下载的附件名总乱码,一次搞定不好吗?

[URL]这里要求application/x-www-form-urlencoded类型的消息中,空格要被替换为+,其他字符按照[URL]中的定义来转义,其中的[URL]指向的是RFC
2020年8月18日

Java线程池实现原理及其在美团业务中的实践

事故原因:该服务展示接口内部逻辑使用线程池做并行计算,由于没有预估好调用的流量,导致最大核心数设置偏小,大量抛出RejectedExecutionException,触发接口降级条件,示意图如下:
2020年8月13日

“既生 ExecutorService, 何生 CompletionService?”

假设你有一组针对某个问题的solvers,每个都返回一个类型为Result的值,并且想要并发地运行它们,处理每个返回一个非空值的结果,在某些方法使用(Result
2020年8月11日

自己动手编写一个Mybatis插件:mybatis脱敏插件

今天对编写Mybatis插件的一些要点进行了说明,同时根据说明实现了一个脱敏插件。但是请注意一定要熟悉四大对象的生命周期,否则自写插件可能会造成意想不到的结果。
2020年8月11日

万字长文,助你深度遨游Spring循环依赖源码实现!

getMergedLocalBeanDefinition(beanName); ....忽略不必要代码,这里主要做一些判断,比如实例化时的依赖(@dependsOn)等.... //
2020年8月6日

Spring Boot核心原理实现及核心注解类(文末送三本书)

这里是搜狐技术产品的知识分享平台。作为中国领先的互联网品牌,在拥有媒体、视频、搜索、游戏四大业务平台和超7亿用户的背后,搜狐始终致力于技术的创新与实践,更多实战干货和技术资讯将在此与您分享。
2020年8月6日

不会优雅使用Spring Validation ?接我一jio

其实Spring框架已经给我们封装了一套校验组件:validation。其特点是简单易用,自由度高。接下来课代表使用springboot-2.3.1.RELEASE搭建一个简单的
2020年8月3日

一个hashCode问题的追问,差点让我陷入无底洞

现在,如果任何类创建了一个ThreadLocal变量,但没有显式地删除它,那么即使在web应用程序停止之后,该对象的副本仍将保留在工作线程中,从而阻止了该对象被垃圾收集,所以乱用也会导致内存泄漏
2020年8月3日

作为程序员,你还没发布过项目到Maven中央仓库?

整个上述过程用大概40分钟,官方回复的还比较及时,由于是下午四五点进行操作的,不确定大家在操作时是否会遇到时差问题。大家可在主面板上查看一下最近其他人提交的Issues的回复情况来确认是否等待。
2020年7月29日

一款功能简约到可怜的SQL 客户端

(https://github.com/sqlectron/sqlectron-gui/wiki/Keyboard-Shortcuts)也少的可怜,大家可以自行查阅
2020年7月27日

程序员没做过加签验签?

「验签」:接收方拿到原始报文和数字签名后,用「同一个Hash函数」从报文中生成摘要A。另外,用对方提供的公钥对数字签名进行解密,得到摘要B,对比A和B是否相同,就可以得知报文有没有被篡改过。
2020年7月27日

YGC问题排查,又让我涨姿势了!

有一个细节点需要注意的是:拷贝对象的目标空间不一定是S1区,也可能是老年代。如果一个对象的年龄(经历的YGC次数)满足动态年龄判定条件便直接晋升到老年代中。对象的年龄保存在Java对象头的mark
2020年7月21日

日拱一兵第一次朴实无华的送书活动,过来白piao吧

适读人群:对分布式、分布式全栈中使用的技术栈感兴趣;想通过学习分布式全栈中的概念、设计思想以加深对分布式理解的技术人员。想深刻理解并灵活运用分布式全栈中的设计思想、优化方案的技术人员。
2020年7月20日

搞定 CompletableFuture,并发异步编程和编写串行程序还有什么区别?你们要的多图长文

不会通知你它的完成,它提供了一个get()方法,程序调用该方法会阻塞直到结果可用为止,没有办法利用回调函数附加到Future,并在Future的结果可用时自动调用它
2020年7月20日

给你5分钟白漂:我的常用在线工具网站

好啦,这次先整理出个人在平时工作和学习工程中常用的工具网站,后面遇到好玩的、有用的也会持续分享,点击下方图片「在线工具收集party」链接,也欢迎小伙伴们分享和安利出你们觉得有用的工具。
2020年7月14日

还在手动整理数据库文档?试试这个工具

hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
2020年7月14日

有比 ReadWriteLock更快的锁?全面解析StampedLock, 了解后瞬间升级

对于StampedLock来说,写锁被占用的标志是第8位为1,读锁使用0-7位,正常情况下读锁数目为1-126,超过126时,使用一个名为readerOverflow的int整型保存超出数。
2020年7月13日

我就想加个索引,怎么就这么难?

看吧,就因为我加了个索引,服务就挂了,我没加之前还是好好的。遇到问题,我们要冷静,不是我们的锅坚决不能背,真的是我们的问题,下次一定要记得改正。那么,此刻的服务为什么就不可用了呢?
2020年7月13日

了解Tomcat架构设计,你会对Spring有全新的理解

设计就是要找到系统的变化点和不变点。这里的不变点就是每个组件都要经历创建、初始化、启动这几个过程,这些状态以及状态的转化是不变的。而变化点是每个具体组件的初始化方法,也就是启动方法是不一样的。
2020年7月9日

不会用Java Future,我怀疑你泡茶没我快, 又是超长图文!!

赋值还没结束,这时主动让出执行权,让其他线程优先执行(只是发出这个信号,至于是否别的线程执行一定会执行可是不一定的)
2020年7月8日

OAuth2 Token 一定要放在请求头中吗?

SecurityContextHolder.getContext().setAuthentication(authResult);
2020年7月8日

IDEA 不为人知的 5 个骚技巧!真香!

IDEA的全部特性,不过看到了就要分享出来,小小的发现也有大大的用处,送给有需要的你,提高一分钟的效率
2020年7月7日

RPC的超时设置,一不小心就是线上事故

通过以上3步,基本就定位到了问题出现在推荐服务,后来进一步调查得出:是因为推荐服务依赖的redis集群不可用导致了超时,进而导致线程池耗尽。详细原因这里不作展开,跟本文要讨论的主题相关性不大。
2020年7月4日

手摸手教你美化微软的新终端Windows Terminal

]}如果你想修改字体找到fontFace配置Powerline字体;如果你要修改配色方案,找到schemes数组后将配色方案添加进去即可,激活参考上面的配置将
2020年7月4日

大厂面试官必问的Mysql锁机制

根据索引的有序性,而普通索引是可以出现重复值,那么当我们第一个sesson查询的时候只出现一条数据num=3,为了解决第二次查询的时候出现幻读,也就是出现两条或者更多num=3这样查询条件的数据。
2020年6月29日

CountDownLatch和CyclicBarrier 傻傻的分不清?超长精美图文又来了

并发编程的三大核心是分工,同步和互斥。在日常开发中,经常会碰到需要在主线程中开启多个子线程去并行的执行任务,并且主线程需要等待所有子线程执行完毕再进行汇总的场景,这就涉及到分工与同步的内容了
2020年6月29日

Jackson 如何优雅序列化Java枚举类

Boot的自动配置为我们提供了一个个性化定制ObjectMapper的可能性,你只需要声明一个Jackson2ObjectMapperBuilderCustomizer并注入Spring
2020年6月24日

废柴电脑拯救计划:搭个云服务器它不香嘛?

光猫改成桥接模式,路由器通过拨号方式来上网,然后路由器的防火墙是不能关的,所以要用NAT映射把访问端口做一个转换,例如访问路由器的22端口转到我们服务器的22端口来。
2020年6月22日

性能调优必备利器之 JMH

预热所需要配置的一些基本测试参数,可用于类或者方法上。一般前几次进行程序测试的时候都会比较慢,所以要让程序进行几轮预热,保证测试的准确性。参数如下所示:
2020年6月9日

日常 Explain SQL,慢慢就懂得SQL调优了

id、select_type、table、partitions、type、possible_keys、key、key_len、ref、rows、filtered、Extra
2020年5月22日

聊聊贯穿Java并发编程的中断机制

InterruptedException,当我们捕获到该异常时,绝不可以默默的吞掉它,什么也不做,因为这会导致上层调用栈什么信息也获取不到。其实在编写程序时,捕获的任何受检异常我们都不应该吞掉
2020年5月18日

你 IDEA 中应该有的插件和配置

在主题下载量排行榜中高居第一。安装主题后(在页面底部就会有进入主题的快捷入口),选择自己喜欢的主题进行微调就可以啦,如果懒得做配置,按照下图勾选相应设置就和我的一样了:
2020年5月4日

Java SPI 机制,你的数据库驱动就是靠它加载的

driver);}分析到了这里,我们就明白了Java的SPI机制是如何加载Mysql的驱动类的并如何将Mysql的驱动类注册进DriverManager的registeredDrivers集合中的。
2020年4月1日

IntelliJ IDEA的这个接口调试工具真是太好用了!

我还是不放心,把我的登录返回结构(项目中怎样设计这种结构,可以参考之前写的Springboot返回统一JSON数据格式是怎么实现的?)粘贴在此处吧,这回理解了吧?
2020年2月10日

一张图帮你记忆,Spring Boot 应用在启动阶段执行代码的几种方式

我们会觉得它可以非常方便将启动逻辑按照指定顺序执行,但如果你这么写,说明多个代码片段是有相互依赖关系的,为了让我们的代码更好维护,我们应该减少这种依赖使用
2019年12月30日

Lombok 使用详解,简化Java编程

函数式编程或者说流式的操作越来越流行,应用在大多数语言中,让程序更具更简介,可读性更高,编写更连贯,@Builder就带来了这个功能,生成一系列的builder
2019年11月25日

读取Excel还用POI?试试这款开源工具

完整代码请在公众号回复「demo」,点开链接,查看「easy-excel-demo」文件夹的内容即可,另外个人博客由于特殊原因暂时关闭首页,其他目录访问一切正常,更多文章可以从
2019年10月21日

可见性有序性,Happens-before来搞定

第一感觉这个原则是一个在理想状态下的"废话",并且和上面提到的会出现重排序的情况是矛盾的,注意这里是一个线程中的操作,其实隐含了「as-if-serial」语义:
2019年9月17日

并发Bug之源有三,请睁大眼睛看清它们

你(CPU)在看两本书(两个线程),看第一本书很短时间后要去看第二本书,看第二本书很短时间后又回看第一本书,并要精确的记得看到第几行,当初看到了什么(CPU
2019年9月9日

基础面试,为什么面试官总喜欢问String?

方法修改其属性在String类中包含很多学问,包括你对JVM模型的理解,这也就是为什么面试官为什么喜欢问String,主要考察你的基本功
2019年9月4日

学并发编程,透彻理解这三个核心是关键

分工是设计,同步和互斥是实现,没有好的设计也就没有好的实现,所以在分工阶段,强烈建议大家勾划草图,了解瓶颈所在,这样才会有更好的实现,后续章节的内容,我也会带领大家画草图,分析问题,逐步养成这个习惯
2019年9月2日

统一异常处理这样剖析,安否?

解剖这个过程是相当纠结的,为了更好的说(yin)明(wei)问(wo)题(lan),我要说重中之重了,真心希望看该文章的童鞋自己去案发现场发现线索还是在
2019年8月19日

每天用SpringBoot,还不懂RESTful API返回统一数据格式是怎么实现的?

userVoList.add(UserVo.builder().id(1L).name("日拱一兵").age(18).build());
2019年8月12日

你应该知道的 @ConfigurationProperties 注解的使用姿势,这一篇就够了

代码获取,回复公众号「demo」,打开链接查看对应的子文件夹即可参考链接:https://reflectoring.io/spring-boot-configuration-properties/
2019年7月26日

“犯罪心理”解读 Mybatis 拦截器

带着疑问去思考,然后串联,进而归纳总结,不断追问自己,进行自我辩证,像侦查嫌疑案件一样看待技术问题,漆黑的街道,你我一起寻找线索,你就是技术界大侦探福尔摩斯
2019年6月25日

不得不知的责任链设计模式

大家小时候都玩过击鼓传花的游戏,游戏的每个参与者就是责任链中的一个处理对象,花球就是待处理的请求,花球就在责任链(每个参与者中)进行传递,只不过责任链的结束时间点是鼓声的结束.
2019年6月20日