自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 idea 启动时指定 -agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n 监听端口 5005 不生效的问题

不要以 debug 模式启动!!!不要以 debug 模式启动!!!不要以 debug 模式启动!!!

2022-04-07 12:20:48 3775 3

原创 @FeignClient fallback 执行原理和源码分析

前提条件必须开启 FeignClient,而且开启 hystrix 熔断限流,fallback 方法才能被调用。开启 FeignClient@EnableFeignClients 是开启 feign 调用的功能。FeignClientsRegistrar 负责加载 feign bean。开启 hystrix 熔断限流开启 feign.hystrix.enabled=true 之后,FeignClientsConfiguration.HystrixFeignConfiguration 会创建一个 H

2022-03-01 17:56:09 6976

原创 Spring Boot 启动 jar 的原理剖析

Spring 官方文档Spring Boot 最吸引人的地方是WEB应用直接通过 java -jar 即可启动。那 java -jar 是如何启动一个应用的呢?我们今天就来一探究竟,揭开背后的原理。以最简单的 Spring Boot 应用为例:SpringBootJarDemoApplication.java@SpringBootApplicationpublic class SpringBootJarDemoApplication { public static void main(S

2022-02-18 18:22:17 1568

原创 使用虚拟机CentOS7部署k8s集群

写在前面建议所有的命令均在 root 权限下执行docker 版本:20.10.12k8s 版本:v1.23.1设置 hostname同一台物理机,不同的虚拟机的 hostname 是一样的,因此需要设置不同 hostname 作区分。sudo hostnamectl set-hostname <your hostname>安装 dockersudo yum install -y yum-utilssudo yum-config-manager \ --add-r

2021-12-26 23:25:22 2683 1

原创 jvm排查占用CPU过高的线程

第一步:查询占用CPU最高的进程idtop第二步:把该进程中占用最高的线程(top 3)输出到文件:/tmp/cpu_tid.logtop -Hp <最高pid> -b -n 3 -d 3 >> /tmp/cpu_tid.log# -b:batch模式,可以重定向到文件中# -n 3:一共取3次top数据。后边加数字,表示次数# -d 3:每次top时间间隔是3秒钟第三步:把线程堆栈输出到文件:/tmp/jstack.logsudo /usr/local/jdk1

2021-06-14 18:03:14 608

原创 Maven依赖中scope的runtime和provied的区别

<scope>runtime</scope>runtime 用在 Class.forName(“com.mysql.jdbc.Driver”) 时,compile 编译时不依赖,只有运行时才会依赖。案例:当尝试去把 compile -> runtime 后,无法编译成功,因为 runtime 只在运行时使用,编译时不引入,造成有些依赖无法加入。<scope>provied</scope>只有编译会使用,程序运行时不需要依赖的。案例一:lo

2021-04-03 10:54:31 8723

原创 一致性Hash算法

文章目录背景一、pandas是什么?总结背景一、pandas是什么?总结https://www.cnblogs.com/kenwar/p/9264856.htmlhttps://blog.csdn.net/cb_lcl/article/details/81448570https://blog.csdn.net/qq_21125183/article/details/90019034http://ifeve.com/%E4%B8%80%E8%87%B4%E6%80%A7-hash-%E7%

2021-02-06 23:35:36 2309 3

原创 Mac系统 dockerfile 报错 COPY failed: stat /var/lib/docker/tmp/docker-builderxxx

报错:Step 3/4 : COPY ~/nginx-1.12.2.tar.gz /usr/local/srcCOPY failed: stat /var/lib/docker/tmp/docker-builder709371526/~/nginx-1.12.2.tar.gz: no such file or directory解决办法:把 nginx-1.12.2.tar.gz 拷贝到 Dockerfile 目录下,然后命令修改一下原命令:COPY ~/nginx-1.12.2.tar.gz

2021-01-03 13:23:20 3273

原创 Spring中@Async异步不执行问题

不要通过idea打断点方式去测试!不要通过idea打断点方式去测试!不要通过idea打断点方式去测试!正确方式:在异步注解 @Async 方法内使用 Thread.sleep(10000); 暂停,然后观察效果。...

2020-04-26 23:25:06 3085 3

原创 dubbo SPI(Service Provider Interface)

演示案例Github: dubbo-demo-spiJDK ServiceLoader示例ServiceLoaderMain类:ServiceLoader的测试入口。ServiceLoaderInterface接口:定义一个接口,具体实现定义在resources/META-INF/services/com.alibaba.dubbo.demo.ServiceLoaderInterface目...

2020-02-23 22:40:39 183

原创 Java动态编译String字符串到Class对象

该案例是模拟:Java在线编译第一步:导入Maven依赖<dependency> <groupId>com.itranswarp</groupId> <artifactId>compiler</artifactId> <version>1.0</version></depende...

2020-02-18 12:46:04 2356

原创 Netty源码编译之io.netty.util.collection缺失

问题:编译时,FixedRedisMessagePool类出现包缺失。import io.netty.util.collection.LongObjectHashMap;import io.netty.util.collection.LongObjectMap;解决办法:cd netty-netty-4.1.9.Final\commonmvn clean compile注:编译完后...

2020-02-05 17:44:03 3539

原创 JDK1.8最全的源码下载

第一部分:src.jar说明:此模块的源码不需要下载,你安装好jdk后,会在${JAVA_HOME}的根目录下找到src.zip,这就是src.jar的源码。第二部分:rt.jar下载地址:百度网盘下载地址当然,这里的源码也可以在第三部分的源码中找到,路径:openjdk-8u40-src\jdk\src\share\classes\第三部分:jdk源码下载进入:jdk源码官网 ...

2020-01-22 11:28:34 5215 2

原创 idea运行时报错:Error:java: Compilation failed: internal java compiler error

idea运行项目时,报错信息:Error:java: Compilation failed: internal java compiler error问题原因:你配置的idea语法和maven配置的编译语法不一致导致的。如下面的配置:File -> Project Structure(配置的是jdk1.8语法)但是maven的pom.xml文件配置(配置的是jdk1.7语法):&...

2020-01-22 11:18:08 252

原创 idea调试rt.jar下sun.misc.*的源码

1.进入设置页面:Settings -> Debugger -> Stepping2.在"Do not step into these classes"列表中,去掉"sun.*"前面的勾就可以了,然后你可以调试就会近断点了。

2020-01-21 19:28:09 1989 2

原创 深入理解Java虚拟机之Class文件解析

Class文件的解析:CA FE BA BE // 魔数00 00 00 34 // 版本52(对应jdk1.8)00 13 // 对应19,即18个常量(1-18)// 常量池// 第1个常量开始0A // 第#1类型:CONSTANT_Methodref_info00 04 // name_index: #400 0F // name_index: #1509 // 第#2类...

2020-01-20 20:05:32 182

原创 Spring源码解析之AbstractBeanDefinition

primary自动装配时当出现多个bean候选者时,将作为首选者。对应XML配置中bean标签属性的primary。<bean id="xxx" class="xxx" primary="true">对应注解:@org.springframework.context.annotation.PrimaryinitMethodName初始化方法。对应XML配置中bean标签属性...

2020-01-10 16:39:31 256

原创 idea/Maven查看某个jar怎么引入的

idea不得不说idea确实太复杂了,几百个依赖,又不能搜索。MavenMaven是提供直接查看的,通过命令mvn dependency:tree -Dverbose输出所有的依赖树,然后复制到文本搜索即可。详细命令:mvn dependency:tree -Dverbose -Dincludes=com.fasterxml.jackson.core:jackson-annotatio...

2020-01-04 11:54:41 5491

原创 Consul ACL访问权限控制

提前准备版本:V1.6.2下载:https://www.consul.io/downloads.html配置文件:config-acl.json{ "datacenter":"tencent-datacenter", "data_dir":"/usr/local/consul-1.6.2/data", "log_file":"/usr/local/consul-1....

2019-12-23 13:00:11 6862

原创 fastJson将字符串转换成泛型对象

使用官方提供的TypeReference转换泛型对象import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.TypeReference;import lombok.Data;public class Type { @Data public static class Response<T&...

2019-12-18 22:37:42 1350

原创 Spring Cloud Consul实时动态更新配置

项目地址Github: https://github.com/fomeiherz/spring-cloud-consul-example代码剖析/** * 注解@RefreshScope必须的,实时更新配置 */@RefreshScope@Configurationpublic class KVConfig { // Consul控制台配置参数:config/spring...

2019-12-13 12:59:42 3263

原创 Java Agent探针技术

1、基本概念AOP静态代理:AOP的静态代理主要是在虚拟机启动时通过改变目标对象字节码的方式来完成对目标对象的增强,它比动态代理效率更高。Java assist:它是一个处理Java字节码类库。能允许在Java程序运行时定义类,并能在JVM加载类时修改类文件。java.lang.instrument:JDK1.5之后提供的用于装备Java应用程序的工具API,允许JavaAgent程序Ins...

2019-11-24 11:03:30 6929 2

原创 Canal高可用集群搭建过程

简介:https://github.com/alibaba/canal/wiki/%E7%AE%80%E4%BB%8B

2019-11-17 11:11:16 6926

原创 Java GC 垃圾回收算法

标记 - 清除 (Mark-Sweep) 算法不足:需要扫描全堆对象,效率低回收后,会产生大量碎片复制 (Copying) 算法优势:回收后保证连续的可用空间整块空间回收,效率比较高不足:会浪费部分空间需要额外空间作为担保应用场景:新生代标记 - 整理 (Mark-Compact) 算法优势:不需要额外空间作为担保不足:碎片化回收效率较低应用场...

2019-11-17 10:30:10 125

原创 ReentrantReadWriteLock读写锁的示例

结论:Java中ReentrantReadWriteLock对写互斥,对读共享。import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public cla...

2019-10-31 13:33:14 384

原创 基于dubbo的RPC和RESTful性能对比

先上结论:RPC请求的效率是HTTP请求的1.6倍左右,性能明显比HTTP请求要高很多。HTTP请求代码:// 服务端代码@SpringBootApplication@RestControllerpublic class DemoApplication { public static void main(String[] args) { SpringAppli...

2019-09-27 12:05:19 5044

原创 dubbo源码解析之RegistryDirectory

类继承关系:AbstractDirectory实现Directory#list(Invocation)接口RegistryDirectory继承AbstractDirectory类 && 实现NotifyListener#notify(List)监听通知AbstractDirectory获取Invoker列表public List<Invoker<T>...

2019-09-19 18:29:09 374

原创 dubbo源码解析之路由规则

1、路由规则的更新路由配置信息有变动,通知RegistryDirectory#notify(List urls),下面以Zookeeper为例讲解。public synchronized void notify(List<URL> urls) { ... List<URL> routerUrls = new ArrayList<URL>();...

2019-09-19 18:24:55 274 1

原创 dubbo源码解析之注册中心

Zookeeper准备:下载Zookeeper服务器端(这里有坑,不是下载apache-zookeeper-3.5.5.tar.gz):http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz复制 {zookeeper_base}\conf\zoo_sample.cf...

2019-09-18 15:24:47 208

原创 抽奖概率算法

以下是使用2种方式实现的概率算法比较:import java.util.*;public class ProbabilityUtil { private final static int count = 100000; public static void main(String[] args) { List<Double> list = Ar...

2019-09-09 22:49:57 923

原创 dubbo源码解析之解析xml文件

spring读取xm文件:AbstractBeanDefinitionReader读取location下的资源文件AbstractBeanDefinitionReader.loadBeanDefinitions(String location, Set actualResources)AbstractBeanDefinitionReader.loadBeanDefinitions(Res...

2019-09-06 20:01:37 335

原创 dubbo源码解析之服务暴露/服务导出

// 在这里开始 ServiceBean.java// 不延迟导出:onApplicationEvent()// 延迟导出:afterPropertiesSet()public void onApplicationEvent(ContextRefreshedEvent event) { if (isDelay() && !isExported() &&...

2019-09-04 19:30:04 394

原创 Python3实现QQ邮箱的接收邮件(POP3协议)

注意:该文件不能起名为 email.py把email_address和email_password替换成你的邮箱地址和密码import poplibimport datetimeimport emailfrom email.parser import Parserfrom email.header import decode_headerfrom email.utils imp...

2019-05-09 10:24:26 9017 1

原创 Redis集群搭建

1、下载并安装cd /usr/local# 下载与解压wget http://download.redis.io/releases/redis-4.0.9.tar.gztar xvf redis-4.0.9.tar.gz# 进入目录cd redis-4.0.9# 编译文件make2、创建Redis节点# 进入redis根目录cd /usr/local/redis-4.0.9...

2019-05-08 11:30:46 192

原创 断路器监控Hystrix Dashboard的使用

下载standalone-hystrix-dashboard下载地址:https://search.maven.org/search

2019-04-15 17:46:27 2276

原创 我的编程路

我叫yiyezhi

2014-08-03 19:20:25 449

空空如也

空空如也

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

TA关注的人

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