自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(509)
  • 资源 (2)
  • 论坛 (1)
  • 收藏
  • 关注

原创 【Hash】loadbalance 一致性hash算法线上应用

1 小结:小心处理链接泄露问题 listener 监听更新要可能早于注入更新(可能是一定) 权重每次重分布都要更新2 源码:import com.alibaba.nacos.api.NacosFactory;import com.alibaba.nacos.api.config.ConfigService;import com.alibaba.nacos.api.config.annotation.NacosValue;import com.alibaba.nacos...

2021-01-26 20:15:08 4

原创 【mysql】Innodb B+树如何保证数据不丢失?可靠性

In order to make the database resilient to crashes, it is common for B-tree implementations to include an additional data structure on disk: a write-ahead log (WAL, also known as a redo log WAL 保证了可靠性). This is an append-only file to which every B-tree mod

2021-01-22 21:22:07 17

原创 【mysql】 SQLException: Unable to load authentication plugin ‘caching_sha2_password‘.

Exception in thread "main" java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.如果是mysql 8.0<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</arti.

2021-01-22 14:22:22 7

原创 【ACID】C不属于ACID,一致性不属于ACID,为什么?

1 C 的含义The word consistency is terribly overloaded:重载含义四个• Replica consistency and the issue of eventual consistency that arises in asynchronously replicated systems . • Consistent hashing is an approach to partitioning that some systems use for rebal

2021-01-21 09:12:10 26 1

原创 【JVM】JDK 15 Disable and Deprecate Biased Locking 禁用和弃用偏向锁(终于废弃了偏向锁)

Disable and Deprecate Biased Locking 禁用和弃用偏向锁定1 结论Disable biased locking by default, and deprecate all related command-line options.默认情况下禁用偏向锁定,并弃用所有相关的命令行选项。2 GoalsDetermine the need for continued support of the legacy(传统) synchronization optim

2021-01-19 19:43:10 25

原创 【分布式技术】--分布式事务Seata-2

1 分布式事务seata just do it by yourself, keep in mind.https://github.com/seata/seata-samples/tree/master/springboot-dubbo-seata2 部署结果// http://172.16.208.224:8848/nacos/index.html#/serviceManagement?serverId=center&group=&dataId=&namesp

2021-01-19 07:15:37 105

原创 【思考】HashMap<Long,Long>存储效率为什么不到20%?

1 准确解释一个Long对象占内存计算:在HashMap<Long,Long>结构中,只有Key和Value所存放的两个长整型数据是有效数据,共16字节(2×8字节)。这两个长整型数据包装成java.lang.Long对象之后,就分别具有8字节的MarkWord、8字节的Klass指针,再加8字节存储数据的long值(一个包装对象占24字节)。然后这2个Long对象组成Map.Entry之后,又多了16字节的对象头(8字节MarkWord+8字节Klass指针=16字节),然后一个8字节的

2021-01-14 21:36:10 23

原创 【Https】如何实现安全传输的?

1 术语解释HTTPS协议引入了CA和数字证书来解决安全性数字证书:包含签发机构、有效期、申请人公钥、证书所有者、证书签名算法、证书指纹以及指纹算法等信息。CA:数字证书签发机构,权威CA是受操作系统信任的,安装操作系统就会内置。数字签名:用Hash算法对数据进行计算得到Hash值,利用私钥对该Hash加密得到签名。只有匹配的公钥才能解密出签名,来保证签名是本人私钥签发的证书。2 数字证书签发过程1 网站生成密钥对,将私钥自己保存,公钥和网站域名等信息提交给CA2 CA把证书签发机构(也就是自

2021-01-13 21:53:58 42

原创 【nacos】springboot @Value @NacosValue 使用时可能无效

1 @NacosValue 自动刷新环境依赖版本<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version> <relativeP

2021-01-13 08:16:22 167 9

原创 【不懂就画一千零一夜】iftop 网络量分析利器

2021-01-08 18:06:32 19

原创 【ZGC】G1停顿40ms很不错了?NO ZGC 10ms内! 厉害

1 系统环境os centos 8.1, jvm jdk hotspot 11, kernel (yum info kernel -q) Version : 4.18.0 2 最终配置流程: A:openjdk 11 install sudo yum install java-11-openjdk-devel sudo alternatives --config java B: 设置环境变量 cat > /etc/profile.d/java...

2021-01-06 14:47:35 33

原创 【JVM】线上用户线程执行SQL停顿的5点猜想,并最终解决

1 现象正常应用,出现某个sql偶尔卡顿,而sql都是根据Id主键查询的不会因为索引误用等引起。排除:Sql 索引没有用上或者选择错误的索引。 函数操作导致索引失效。 表过大,多表多库联合查询。 2 偶尔慢的原因:猜想 2.1 数据库在刷新脏页。------通过监控看到mysql集群的磁盘刷新次数都是平稳的-排除。 猜想 2.2 数据库的自然数连接占满了。------ 通过druid 监控排除。 猜想 2.3 拿不到锁。排除--- 都是查...

2021-01-05 19:36:36 32

翻译 【思考】Why do hash functions use prime numbers? 为啥都用31素数做系数?

In aprevious posti pointed out how questions posted in reward based discussions sites likestackoverflow.comnever gets answered satisfactorily. This post is a look atone such feeble answerand makes an effort to explain in more detail a basic question ...

2021-01-05 17:53:19 41

原创 【分布式技术】--分布式事务Seata

2021-01-03 10:24:29 161

原创 【成长】---总路线

2021-01-03 09:40:52 23

原创 【ES】 查询优化实践3点小结

1 去掉ES 部分查询条件(对结果集的影响较小,但是增加es的计算代价),到应用内存中进行看样子{"term":{"join_state":{"value":1,"boost":1.0}}} 去掉更快,这个状态的过滤完全可以放内存中计算。去掉条件之后:2 启用停用词 比如ik的热更新一个"的"查询好点了73%的资源,但是对结果集的价值确实微乎其微使用ik停用词后:3 控制写入速度平稳性瞬时写入增加,造成gc overhead,导致业务延迟...

2021-01-02 11:21:49 25

原创 【github】github 图裂了解决方案

github 图裂了解决方案1 定位github图片域名command + shift + c 裂图域名 raw.githubusercontent.com2 https://www.ipaddress.com/ 去查询对应域名的ip3 更新本地hostssudo vim /etx/hostswq 保存退出; 再刷新网页就好了。...

2020-12-17 12:03:21 94 4

原创 【工具】几款常用排查CPU CPL(load)

1 vmstat (虚拟内存统计 Report virtual memory statistics)使用 vmstat 2示例:2 sar (Collect, report, or save system activity information. System activity report)使用举例: sar -qw 2 (两秒间隔)-w Report task creation and system switching activity.proc/sTotal nu

2020-12-15 20:40:38 25

原创 【ContextSwitch CS】 寻找CS最多的进程

1 命令grep voluntary_ctxt_switches /proc/*/status | sort -rnk2 | head -n20grep voluntary_ctxt_switches /proc/12842/status // 进程12842voluntary_ctxt_switches: 52089334 // 主动切换上下文次数nonvoluntary_ctxt_switches: 196408 // 被动切换上下文次数2 执行命令 ...

2020-12-15 09:35:03 37

原创 【Spring】之@PostConstruct , InitializingBean, initMethod,@PreDestroy,DisposableBean,destroyMethod初始化销毁

1 实验环境 spring-beans 5.3.1 + 代码package com.learn.webtemplate;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.DisposableBean;import org.springframework.beans.factory.InitializingBean;import org.springf

2020-12-12 16:46:26 61 1

原创 【dubbo】 dubbo Filter 如何根据环境指定自己的Filters (其他SPI接口同理)?一起解读源码

1 先说解决方案(2.7.3 版本)全局指定直接使用 就可以了; 如果是service单独指定可如下配置,consumer端类似2 为什么?一起来看看,filter过滤链的构造过程(2.7.3 版本)执行流程是: org.apache.dubbo.config.ServiceConfig 类加载时jvm 实例化 final protocol --> private static final Protocol protocol = ExtensionLoader.getExtensi

2020-12-11 13:39:41 82 2

原创 【Daemon】守护和非守护线程鲜为人知的事实

1 总结(英文+翻译)如下:Non-daemon threads are also known as ‘user’ threads // 非守护程序线程也称为“用户”线程。JVM will not exit even if only 1 non-daemon (i.e. user) thread is alive. On the other hand, JVM will exit even if multiple daemon threads are alive. // 即使只有1个非守护程序(即用户

2020-12-11 10:01:50 58

原创 【atop】定期采集脚本

1 atop 采集脚本#!/bin/shLOGOPTS="" # default optionsLOGINTERVAL=600 # default interval in secondsLOGGENERATIONS=28 # default number of daysLOGPATH=/var/log/atop # default log location# allow administrator to overrule the va.

2020-12-10 09:34:05 37

原创 【@EnableAsync】Spring Async 异步增强源码解析

0 env:Springboot maven 依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.0</version> <relativePath/> <!-- lookup p

2020-12-07 09:10:16 106 3

原创 【@Configuration】再次理解

@SpringBootApplication is a convenience annotation that adds all of the following:@Configuration: Tags the class as a source of bean definitions for the application context.@EnableAutoConfiguration: Tells Spring Boot to start adding beans based o...

2020-12-06 17:00:59 20

原创 常用汇编指令的认识

常用汇编指令的认识软件破解常用汇编指令 cmp a,b // 比较a与b mov a,b // 把b值送给a值,使a=b ret// 返回主程序 nop// 无作用 call// 调用子程序,子程序以ret结尾 je或jz// 相等则跳(机器码是74或84) jne或jnz // 不相等则跳(机器码是75或85) jmp// 无条件跳(机器码是EB) jb// 若小于.

2020-12-03 09:36:50 115

原创 【Spring】IOC 过程中 @Autowired 如何从多个实现中确定要注入的实例bean?@Primary的作用

1 实验code @Autowired private AbClient myAbClient;2 结果:org.springframework.beans.factory.support.DefaultListableBeanFactory#determinePrimaryCandidate主要依据Bean定义是否是org.springframework.beans.factory.support.DefaultListableBeanFactory#isPrimary ...

2020-12-02 18:47:52 96

原创 【java】集合操作常用方法

// 不可修改List @Override public List<MediaType> getSupportedMediaTypes() { return Collections.unmodifiableList(this.supportedMediaTypes); }// 新的写法 this.client = Objects.requireNonNull(restClient, "restClient must not be null")// 拼接字符串 StringU.

2020-12-01 18:29:54 39

原创 【Spring】Spring事务代理bean的创建源码分析--IOC注入

1 先了解下 先来了解一个SPIorg.springframework.beans.factory.config.BeanPostProcessororg.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor都是对spring bean 初始化前后的处理。 注意区分实例化,设置和初始化。三个顺序依次进行。2 Spring事务代理AnnotationAwareAspectJAutoProxyCreato

2020-11-28 12:34:24 75 3

原创 掉进了Spring @Configuration 坑里,导致阿里云 RocketMq 消费者状态(同一个进程出了两client)异常

掉进了Spring @Configuration 坑里,导致阿里云 RocketMq 消费者状态(同一个进程出了两client)异常1 案发现场复现代码@Configurationpublic class BeanConflict { @Bean("MyAtomic1") public MyAtomic getMyAtomic(@Value("${OONN}") String oonn){ System.out.println(oonn);

2020-11-27 20:41:01 82 1

原创 【Spring】扩展点之 BeanPostProcessor bean初始化时给你的小宇宙

1 从哪里来?Spring 5.1.6在获取 BeanFactory 的 obtainFactory() 方法结束后的 prepareBeanFactory(factory),大家仔细看会发现,Spring 往容器中添加了这两个 BeanPostProcessor:ApplicationContextAwareProcessor、ApplicationListenerDetector。源码入口org.springframework.context.support.AbstractApplicat

2020-11-26 09:59:42 35

原创 【Spring】前后端参数转换Converter OR ConversionService

最有用的场景就是,它用来将前端传过来的参数和后端的 controller 方法上的参数进行绑定的时候用。像前端传过来的字符串、整数要转换为后端的 String、Integer 很容易,但是如果 controller 方法需要的是一个枚举值,或者是 Date 这些非基础类型(含基础类型包装类)值的时候,我们就可以考虑采用 ConversionService 来进行转换。<bean id="conversionService" class="org.springframework.conte

2020-11-26 08:55:45 61

原创 【Spring】Spring bean 4种初始化回调和4种销毁回调方案

参考:https://beijingngcc.blog.csdn.net/article/details/110160238https://javadoop.com/post/spring-ioc

2020-11-26 08:48:40 30

原创 【不懂就画一千零一夜】Spring bean的生命周期,一图搞定

2020-11-26 08:45:35 45

原创 Spring AOP TX(Transactional) 事务处理源码阅读

0 实验环境:jdk 1.8 mysql 5.7 spring-tx-5.1.6调试代码:// spring boot 注解启动@EnableTransactionManagement// controller @RequestMapping(value = "/add/ad", method = RequestMethod.GET) @ResponseBody public String addAd() { transactionTest.doTx(); return "a

2020-11-25 17:57:23 71

原创 Spring IOC 初始化过程(笔记)

1 从ClassPathXmlApplicationContext 的构造方法说起---->refresh方法 ---->同步锁内依次进行:beanName-> beanDefinition 的 map 定义解析即(ConfigurableListableBeanFactory beanFactory) --->设置类加载器同时添加几个BeanPostProcessor----->postProcessBeanFactory(beanFactory); BeanFact

2020-11-25 09:35:36 42

原创 【快速排序】java 实现

1 思路 每次partition,找到head的位置 循环不变量,最终保持 [from, head] <= unsort[head] [head+1, to] >=unsort[head]public class MyQuickSort { public static void main(String[] args) { int[] unsort = new int[]{2,4,9,1,3,4,5,6,7,8}; qs...

2020-11-24 15:29:24 21

原创 JSON parse error: Unexpected character (‘%‘ (code 37)): expected a valid value (number, String, arr

1 复现过程 POST + @RequestBody +json格式的数据,不指定数据格式MappingJackson2HttpMessageConverter 读取 application/x-www-form-urlencoded;charset=UTF-8 就会报异常:JSON parse error: Unexpected character ('%' (code 37)): expected a valid value (number, String, array, object, 'tr..

2020-11-22 14:38:12 506

原创 java.lang.NoSuchMethodError: org.elasticsearch.action.support.master.AcknowledgedResponse.fromXConte

环境:ES 6.7版本 使用java 7.2依赖Caused by: java.lang.NoSuchMethodError: org.elasticsearch.action.support.master.AcknowledgedResponse.fromXContent(Lorg/elasticsearch/common/xcontent/XContentParser;)Lorg/elasticsearch/action/support/master/AcknowledgedResponse;..

2020-11-21 16:21:38 58

原创 【不懂就画一千零一夜】Spring setter 注入是如何解决循环依赖问题的? 构造注入为啥解决不了循环依赖?

1 注入是如何解决循环依赖问题的? 构造注入为啥解决不了循环依赖?构造注入解决不了:因为构造方法注入的实例,每次都要new一个要构造的实例bean,而A创建时,依赖B,就去创建B,B又依赖了A,继续构造A,如此循环下去 A(B) B(A) A(B)->.... 设值注入:使用三级缓存来解决循环依赖问题;构造的对象使用无参构造方法,会把A先放入二级缓存(前置也会把A的工厂方法放到三级缓存),后面B,会从二级缓存中获取A(中间态)完成属性设置,B就直接进入了一级缓存中,递归会A,最后也进入一级缓存。

2020-11-20 14:51:35 106

zookeeper快速指导

zookeeper快速指导

2017-04-07

Memory Management in the Java HotSpot™ Virtual Machine.

15年最新

2016-12-28

平静不绝望的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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