java
文章平均质量分 87
调试中
这个作者很懒,什么都没留下…
展开
-
两阶段提交、三阶段提交和TCC
目录一、2PC1.1、提交事务请求(投票阶段)1.2、执行事务提交一、2PC1.1、提交事务请求(投票阶段)事务询问->执行事务->反馈事务询问事务询问:由协调者向所有参与者发送事务内容,询问是否可以执行事务提交操作执行事务:由参与者执行事务操作,并将Undo(拒绝)和Redo(准备好,将要操作)信息记入事务日志中反馈事务询问:由参与者给协调者反馈给协调者事务的执行结果,如果执行成功反馈YES,否者反馈NO1.2、执行事务提交该阶段拥有两种操作:.原创 2021-03-24 18:07:28 · 711 阅读 · 0 评论 -
统一认证中心-auth2.0
背景随着微服务架构的兴起,模块之间细分力度更小。许多公司将单点登录会做成一个统一的微服务平台。但是一旦抽象出一个单独的微服务平台之后,就会涉及到如下问题:(1)接入方在不同的域名,会涉及到跨域问题;(2)安全问题,整个登录接口全部暴露给所有的接入方,存在一定的数据泄露等问题。本片文章主要是介绍当前较通用的一种单点登录认证协议Auth2.0。SSO单点登录介绍:单点登录(SSO):传统的多点登录方式对于站点都会开发一套登录系统和用户数据维护系统,同时不同的站点整个用户的数据维护在其自己数据库中,无原创 2020-10-27 14:50:27 · 1926 阅读 · 0 评论 -
Java 四种引用类型
目录一、强引用二、软引用三、弱引用四、虚引用一、强引用在Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到 JVM 也不会回收。因此强引用是造成 Java 内存泄漏的主要原因之一。例如:A a=new A()...原创 2019-06-14 18:04:19 · 272 阅读 · 0 评论 -
hystrix源码学习
目录一、初始化参数1.1、HystrixCommandGroupKey.Factory.asKey("ServiceGroup"):2.2、HystrixCommandKey.Factory.asKey("servcie1query")2.3、HystrixThreadPoolKey.Factory.asKey("service1ThreadPool")2.4、Hystr...原创 2019-06-13 17:53:32 · 249 阅读 · 0 评论 -
hystrix熔断
目录一、基本知识二、工作过程一、基本知识背景:分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况, 这种现象被称为服务雪崩效应。 为了应对服务雪崩, 一种常见的做法是手动服务降级,而Hystrix的出现,给我们提供了另一种选择。出现雪崩原因:服务调用者不可用、重试增加流量、服务提供者不可用服务不可用场景:硬件故障、程序Bug、缓存击穿、用户大量请...原创 2019-06-13 17:51:16 · 669 阅读 · 0 评论 -
Hystrix服务隔离
目录一、用途二、实现策略2.1、线程隔离2.2、单个依赖超时控制2.3、熔断器控制三、code 示例一、用途Hystrix(https://github.com/Netflix/Hystrix)是Netflix(https://www.netflix.com/global)的一个开源项目,主要作用是通过控制那些访问远程系统、服务和第三方库的节点,从而对延迟...原创 2019-06-13 17:48:50 · 235 阅读 · 0 评论 -
hystrix服务隔离
目录一、隔离方法二、线程隔离三、信号量隔离一、隔离方法 线程池隔离 信号量隔离 二、线程隔离原理:使用一个线程池来存储当前请求,线程池中线程对当前请求进行处理,可以设置任务的超时时间,对于堆积的请求可以入线程池队列。优点:采用线程池队列,因此可以解决流量洪峰的问题,起到了削锋的功能。并且可以异步调用,可以设置线程池的大小,控制请求的并发量。...原创 2019-06-13 17:34:33 · 432 阅读 · 0 评论 -
内部类局部方法调用为啥要final修饰?
目录一、方法的局部变量被引用内部类为啥final修饰二、Java 匿名类引用外部类成员变量为什么又不需要final修饰?一、方法的局部变量被引用内部类为啥final修饰void test() throws InterruptedException { //开始执行方法 Student student = new Student(); ...原创 2019-04-12 16:07:27 · 797 阅读 · 0 评论 -
MyBatis 基于源码的同等多数据源
目录一、背景二、方案描述3.1、思考细节点3.2、代码细节三、总结五、代码物料一、背景当前流行方案:(1)当前mybatis不支持多数据源(2)目前较通用方案是,写一个工厂类,进行数据源切换,并且数据源有主从之分master和slave(3)不能直接将dao层绑定对应数据源上,需要做逻辑判断读前需要了解知识:(1)mybatis源码解析:h...原创 2019-03-01 16:01:28 · 254 阅读 · 0 评论 -
虚拟机内存模型
一、虚拟内存模型注:图中红色部分为线程共享,白色部分为线程私有二、Java虚拟机栈作用域:线程私有,生命周期同线程是一样的存储数据:每个方法执行时会首先创建栈帧,存储局部变量表、操作数栈、动态链接和方法出口等信息。其中局部变量表存储了基础数据类型(int、boolean、char、byte、long、short、float、double)和对象引用异常类型:请求栈深度超...原创 2019-02-14 15:46:06 · 608 阅读 · 0 评论 -
MyBatis 源码分析
一、学习之前思考在学习mybatis之前,我是首先带着三个疑问去学习mybatis:(1)数据库链接怎样管理:与数据库链接的线程池创建,sql执行等(个人理解再牛逼的orm框架,最后都需要转成mysql(本次实例中是使用mysql数据)的原生的sql语句,最后执行的肯定是sql执行语句)(2)java的dao层怎样操作sql语句:一个dao接口,为什么可以直接执行sql语句,(...原创 2019-02-22 16:02:45 · 273 阅读 · 0 评论