- 博客(7)
- 收藏
- 关注
原创 Hystrix断路器原理
Hystrix 简介:服务降级和熔断 产生背景: 分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服务资源耗尽,无法继续对外提供服务。并且这种不可用可能沿请求调用链向上传递,这种现象被称为雪崩效应。 雪崩效应常见场景 硬件故障:如服务器宕机,机房断电,光纤被挖断等。 流量激增:如异常流量,重试加大流量等。 缓存穿透:一般发生在应用重启,所有缓存失效时,以及短时间内大量缓存失
2020-07-11 06:31:06 250
原创 CPU过高及OOM
CPU过高 1.先用top命令,找到cpu占用最高的进程 PID 2.再用ps -mp pid -o THREAD,tid,time 查询进程中,那个线程的cpu占用率高 记住TID 3.jstack 29099 >> xxx.log 打印出该进程下线程日志 4.sz xxx.log 将日志文件下载到本地 5.将查找到的 线程占用最高的 tid 上上上图中 29108 转成16进制 — 71b4 6.打开下载好的 xxx.log 通过 查找方式 找到 对应线程 进行排查 原因:
2020-07-11 05:53:44 569
原创 java中锁的种类及用法
java锁 种类 1 乐观锁,悲观锁 线程是否需要锁住同步资源 实现方法:synchronized 悲观锁 乐观锁:AtomicInteger,通常实现要用到CAS算法比较并替换 (***CAS 即比较并替换,实现并发算法时常用到的一种技术。CAS操作包含三个操作数——内存位置、预期原值及新值。执行CAS操作的时候,将内存位置的值与预期原值比较,如果相匹配,那么处理器会自动将该位置值更新为新值,否则,处理器不做任何操作。*) 2 读锁,写锁 锁住同步资源失败,线程是否阻塞 接口ReadWriteLock
2020-06-02 16:29:47 295
原创 Feign实例化和请求调用-源码分析
Feign初始化 在需要使用Feign的接口**(必须是接口)**上添加注解@FeignClient 并且在启动类main中添加@EnableFeignClients,springBoot启动时会扫描并将Feign的注册信息加入到IOC中,具体代码 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Documented @Import(FeignClientsRegistrar.class) public @interface En
2020-06-02 11:32:00 835
原创 Eureka客户端源代码启动流程(springboot)
EurekaAutoServiceRegistration实现了SmartLifecycle接口,所以spring会自动加载start方法,代码: @Override public void start() { // only set the port if the nonSecurePort or securePort is 0 and this.port != 0 if (this.port.get() != 0) { if (this.registration.getNonSecure
2020-06-01 13:45:25 494
原创 Eureka源码手撕分析启动流程(服务端)
从注解@EnableEurekaServer开始 ##该注解包含了如下内容 其中@Import(EurekaServerMarkerConfiguration.class) 现在怎么下手,上面的代码已经结束了。。。 经过查找资料发现入口 在jar\spring-cloud-netflix-eureka-server-2.2.2.RELEASE.jar的MANIFEST.MF文件夹下的spring.factories定义了bean实体对象springboot启动时会去实例化该类 org.springfra
2020-06-01 11:17:51 294
原创 手撕SpringBoot源码启动流程分析
main函数开始 run方法 最终的执行代码块如下: 其中最重要的2块 setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class)); 上面的方法会去**\spring-boot-autoconfigure-2.3.0.RELEASE.jar**包中寻找spring.factories文件,该文件定义了springboot自动装配需要的所有的bean 然后通过反射实例化bean
2020-05-29 19:25:43 211
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人