hystrix原理以及基本构建,feign和ribbon如何使用熔断器

传统服务中当用户在请求c时 c请求b b请求a时 当多个用户(线程)同时请求c此时由于a迟迟不响应造成线程大面积堵塞 此时a就会发生雪崩(一台机器出现问题导致与其关联的机器也出现问题),同时影响cbHystrix 项目搭建基于ribbon项目进行搭建1.引入Hystrix maven依赖 <dependency> <groupId>org.springframework.cloud</groupId> .
分类: 其他 发布时间: 11-22 09:09 阅读次数: 0

Zuul概念原理以及项目的简单搭建(一)

由上图可知 当没有使用网管时每个模块都得去考虑权限控制,限流,网路访问一系列问题,影响性能此时我们可以将这些问题统一的集成到网关当中,由网关统一处理处理完毕在把请求转发对应模块我们在使用网关的时候需要做一个反向代理由于zuul并发量大,此时必须给zuul配置集群一同注册到eureka server上此时nginx就可以通过反向代理得到使用zuul网关由于某些微服务涉及到权限等鉴权问题我们可以将鉴权auth(非业务逻辑)打包到一起生成一个项目放到server上,此时zuul网关在..
分类: 其他 发布时间: 11-22 09:09 阅读次数: 0

Zuul端点详解与过滤器分析(二)

端点如何查看断点映射关系?当我们门为了能看到端点的映射信息可以在zuul中导入actuator <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>我们可以访问http:
分类: 其他 发布时间: 11-22 09:08 阅读次数: 0

Zuul自定义过滤器,ZuulProxyAutoConfiguration 如何生效,以及zuul底层源码过滤器初始化流程

目录自定义ZuulFilter@EnableZuulProxyZuulProxyAutoConfigurationZuulProperties内置过滤器过滤器执行流程ZuulServletFilterProcessorrunFilters筛选器processZuulFilter总结自定义ZuulFilterpublic class MyZuulFliter extends ZuulFilter { /** * 过滤类型 * * @return 过滤类型字符串
分类: 其他 发布时间: 11-22 09:08 阅读次数: 0

Config原理解析,项目搭建以及如何获取不同环境下的配置文件信息(一)

这里写目录标题原理搭建config项目新增github仓库spring-cloud-config-serverspring-cloud-config-client如何获取的不同环境下的配置文件了?gitHub和config-client客户端yml对应规则原理搭建config项目需要两个项目和github仓库新增github仓库spring-cloud-config-serverpom.xml<?xml version="1.0" encoding="UTF-8"?&gt
分类: 其他 发布时间: 11-22 09:08 阅读次数: 0

Spring源码分析,资源文件Rsource,工厂BeanFactory,读取器BeanDefinitionReader 执行流程解读

示例新增一个Student类/** * POJO: Plain Old Java Object */public class Student { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; }
分类: 其他 发布时间: 11-22 09:07 阅读次数: 0

Spring 缓存,创建实例流程分析

目录问题beanDefinitionReader.loadBeanDefinitions(resource);在加载bean定义时有没有创建对象?何时创建bean对象?工厂实例对象分析doGetBeangetSingletonmarkBeanAsCreated(beanName);getSingleton(String beanName, ObjectFactory<?> singletonFactory)createBeandocreateBeancreateBeanInstance bean
分类: 其他 发布时间: 11-22 09:07 阅读次数: 0

Java8使用Lambda将一个List均分成指定n个List

public class Test { /** * 计算切分次数 */ private static Integer countStep(Integer size, int input) { return (size + input - 1) / input; } /** * @param list 需要分隔的 集合 * @param input 指定分隔size * @return */
分类: 其他 发布时间: 11-22 09:07 阅读次数: 0

Class文件与字节码,机器码的关系,字节码整体结构 常量池表 字段表,方法表等详解

目录class字节码示例字节码整体结构魔数(Magic Number)版本(Version)常量池(Constant Pool)例如总结Mytest1常量池对应的内容访问标志(Access Flags)当前Class名(This Class Name )父类名(super Class)接口(Interface)变量(Feilds)field countfields方法(Methods)方法表(方法数组)Code结构class字节码示例public class MyTest1 { privat
分类: 其他 发布时间: 11-22 09:07 阅读次数: 0

字节码栈帧,方法分派,方法的overload与overwrite的区别,虚方法表注意事项

目录栈帧(stack frame)定义符号引用,直接引用五种方法调用类型非虚方法栈帧储存方法方法的分派静态分派方法的重载动态分派结论方法的重写(overWrite)重写和重载的区别虚拟机动态分派的实现静态分派和动态分派的区别虚方法表方法查看问题栈帧(stack frame)定义栈帧(stack frame):(每个栈帧都是由特定的线程执行的 不存在并发情况)栈帧是一种用于帮助虚拟机执行方法调用与方法执行的数据结构栈帧本身是一种数据结构,封装了方法的局部变量表,动态链接信息,方法的返回地址以及操作
分类: 其他 发布时间: 11-22 09:06 阅读次数: 0

解释执行与编译执行区别,栈的入栈出栈详解,寄存器与栈指令区别,透过字节码审视动态代理

解释执行与编译执行现代JVM在执行Java代码的时候,通常都会将解释执行与编译执行二者结合起来进行。所谓解释执行,就是通过解释器(类似流)来读取字节码,遇到相应的指令就去执行该指令。所谓编译执行,就是通过即时编译器(Just In Time,JIT)将字节码转换为本地机器码;现代JVM会根据代码热点来生成相应的本地机器码。栈的指令集与基于寄存器的指令集之间的关系1.JVM执行指令时所采取的方式是基于栈的指令集。2.基于栈的指令集主要的操作有入栈和出栈两种。3.基于栈的指令集的优势在于它可
分类: 其他 发布时间: 11-22 09:06 阅读次数: 0

JVM运行时内存模型详解,元空间优化,new关键字详解,堆栈溢出详解

这里写目录标题jvm运行时数据分区new 关键字创建对象的3个步骤:指针碰撞,空闲列表对象内存的布局对象的访问定位OutOfMemoryError 堆内存溢出异常StackOverflowError 虚拟机栈溢出监控工具死锁jvm运行时数据分区虚拟机栈:Stack Frame 存储栈帧程序计数器(Program Counter) 记录行号方便定位本地方法栈:主要用于处理本地方法 (c++ c 执行的内部方法)堆(Heep): JVM管理的最大一块内存空间 与堆相关的重要概念:垃圾回收器。现代几乎
分类: 其他 发布时间: 11-22 09:06 阅读次数: 0

Mysql忘记本地密码如何重置密码【ERROR 1820 (HY000)】

忘记本地MySQL数据库密码,解决方案,分以下10个步骤:参考链接: https://blog.csdn.net/weidong_y/article/details/80493743; https://blog.csdn.net/anzhen0429/article/details/78296814;数据库版本:5.7.21平台:win71、打开cmd窗口,进入 MySQL的安装目录。2、停止MySQL的服务。已经停止了。右键MySQL
分类: 其他 发布时间: 11-22 09:06 阅读次数: 0

垃圾回收器原理内容解析

上述三种条件满足其一就会被回收掉方法区回收注意:系统,扩展,根类加载器全局唯一实例 也就是说 这三种加载类加载是无法被GC ,其加载的类永远不会被卸载。自定义的类加载器才会被回收,所以方法区中的类被回收条件很苛刻但是还是可能被回收...
分类: 其他 发布时间: 11-22 09:05 阅读次数: 0

jvisualvm解决线上数据涌入出现的内存溢出(OOM)

最近在项目交付测试的过程中,经常有应用在一顿操作之后界面就一直在转,最后报了无法获取数据的错误,查看日志发现有报错,其中关键点在于java.lang.OutOfMemoryError:Java heap space,jvm内存溢出,如下图经过网上一顿搜索,发现有很多可以监测定位的方法,但是由于和自己的业务场景不合,都以失败而告终。最终尝试出一条可以解决自己问题的路径,记录下来以供下次复查。内容提纲环境和工具操作系统:centos7部署环境:docker/k8sjdk:1.8.0_191开发
分类: 其他 发布时间: 11-22 09:05 阅读次数: 0

CMS收集器详解

也就是说当业务线程在执行的时如创建对象只有在线程处于安全点和安全区域时才能触发GC 当线程没有处于安全点和安全区域 hostpot虚拟机采用的是主动式中断 。
分类: 其他 发布时间: 11-22 09:05 阅读次数: 0

G1垃圾收集器堆内存划分,垃圾收集各个阶段解析

评价系统指标重要的的两个因素意思就是说传统收集器只能在吞吐量(parallel scanvenge 收集器) 和 用户线程卡顿(CMS 收集器)取其一。而G1收集器在短时间满足最小化卡顿的同时满足高吞吐量传统垃圾收集器内存布局非G1的垃圾收集器G1垃圾收集器内存布局也就是说上图中每个颜色都是一个regions,region之间不一定连续,每个region的可能的角色有三种 eden survivor old。...
分类: 其他 发布时间: 11-22 09:04 阅读次数: 0

synchronized详解,同步锁互斥锁自旋锁分析。MonitorJVM底层实现原理

目录状态对象synchronized修饰代码块synchronized修饰方法synchronized修饰静态方法Monitor设计的概念互斥与同步定义synchronized底层原理用户态和内核态资源调度存在问题解决方案互斥锁属性MonitorMonitor对象是啥?状态对象如果一个对象有被修改的成员变量 被称为有状态的对象相反如果没有可被修改的成员变量 称为无状态的对象示例public class MyThreadTest { public static void main(Stri
分类: 其他 发布时间: 11-22 09:04 阅读次数: 0

synchronized关键字偏向锁,轻量级锁,自旋锁详解,JVM底层提供的锁优化策略

在JDK1.5之前,我们若想实现线程同步,只能通过synchronized关键字这一方式来达成;底层Java也是通过synchronized关键字来做到数据的 原子性维护的:synchronized关键字是JVM实现的一种内置锁,从底层角度来说,这种锁的获取与释放都是由JVM帮助我们隐式实现的。从JDK1.5开始,并发包引入了Lock锁,Lock同步锁是基于Java来实现,因此锁的获取与释放都是通过Java代码来实现与控制的;然而,synchronized 是基于底层操作系统的Mutex_Lock来实现的
分类: 其他 发布时间: 11-22 09:04 阅读次数: 0

Lock和Condition方法解析,有界缓冲区如何通过Lock,Condition实现

LockdocLock实现提供了比使用synchronized 同步方法和语句块获得的更广泛的锁操作。它们允许更灵活的结构,可能具有完全不同的属性,并且可能支持多个关联的条件(Condition)对象。锁(Lock)是一种工具,用于控制多个线程对共享资源的访问。通常,Lock提供对共享资源的独占访问:一次只有一个线程可以获取锁,而对共享资源的所有访问都需要先获取锁。但是,有些锁可能允许并发访问共享资源,例如读写锁的读锁(ReadWriteLock)。synchronized 同步方法和语句块的使用
分类: 其他 发布时间: 11-22 09:03 阅读次数: 0