自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 MySql事务隔离级别和Spring传播机制

目录一、事务隔离级别1.1、事务的四要素1.2、并发所带来的问题1.3、事务隔离级别类型一、事务隔离级别1.1、事务的四要素原子性:事务的所有操作都是原子性,即要不当前操作全部做完。如果中间操作失败,则回到最初的状态。即要不全做完,要不全不做。一致性:事务开始前和事务开始后,数据库的完整性约束没有被破坏。隔离性:同一时间,只允许一个事务操作同一个数据源。持久性:事务完成后,对数据库的所有操作都会持久化到数据库中,不能回滚。1.2、并发所带来的问题脏读:事务A读

2021-03-24 18:23:51 1293 4

原创 两阶段提交、三阶段提交和TCC

目录一、2PC1.1、提交事务请求(投票阶段)1.2、执行事务提交一、2PC1.1、提交事务请求(投票阶段)事务询问->执行事务->反馈事务询问事务询问:由协调者向所有参与者发送事务内容,询问是否可以执行事务提交操作执行事务:由参与者执行事务操作,并将Undo(拒绝)和Redo(准备好,将要操作)信息记入事务日志中反馈事务询问:由参与者给协调者反馈给协调者事务的执行结果,如果执行成功反馈YES,否者反馈NO1.2、执行事务提交该阶段拥有两种操作:.

2021-03-24 18:07:28 727

原创 统一认证中心-auth2.0

背景随着微服务架构的兴起,模块之间细分力度更小。许多公司将单点登录会做成一个统一的微服务平台。但是一旦抽象出一个单独的微服务平台之后,就会涉及到如下问题:(1)接入方在不同的域名,会涉及到跨域问题;(2)安全问题,整个登录接口全部暴露给所有的接入方,存在一定的数据泄露等问题。本片文章主要是介绍当前较通用的一种单点登录认证协议Auth2.0。SSO单点登录介绍:单点登录(SSO):传统的多点登录方式对于站点都会开发一套登录系统和用户数据维护系统,同时不同的站点整个用户的数据维护在其自己数据库中,无

2020-10-27 14:50:27 1936

原创 对称加密、非对称加密和Hash算法

一、对称加密对称采用对称编码技术,其加密和解密都是用同一套密钥。优缺点:(1)加解密双方使用同一套密钥,其中任何一方泄露密钥,会导致整个加密过程的泄露。(2)对于每一个需要加密处都需要共同商量一套密钥,不便于密钥的管理。(3)无法鉴别发送者和接受者的身份。常见加密算法:AES、DES等二、非对称加密非对称采用非对称编码技术,其加密和解密使用的是不同的公私钥。如果公钥对数据进行加密,只有对应的私钥可以解密;如果使用私钥进行加密,则对应的公钥可进行解密。优缺点:(1)加解

2020-09-16 09:45:24 2129

原创 Java 四种引用类型

目录一、强引用二、软引用三、弱引用四、虚引用一、强引用在Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到 JVM 也不会回收。因此强引用是造成 Java 内存泄漏的主要原因之一。例如:A a=new A()...

2019-06-14 18:04:19 282

原创 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 254

原创 hystrix熔断

目录一、基本知识二、工作过程一、基本知识背景:分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况, 这种现象被称为服务雪崩效应。 为了应对服务雪崩, 一种常见的做法是手动服务降级,而Hystrix的出现,给我们提供了另一种选择。出现雪崩原因:服务调用者不可用、重试增加流量、服务提供者不可用服务不可用场景:硬件故障、程序Bug、缓存击穿、用户大量请...

2019-06-13 17:51:16 675

原创 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 241

原创 Hystrix+AOP的完美结合

目录一、AOP简介1.1、定义1.2、AOP五种通知类型二、Hystrix和AOP的结合(1)Hystrix监控(2)Around切面点逻辑处理(3)Around切面点需要关注的方法拦截(4)切面点配置一、AOP简介1.1、定义wiki:面向切面的编程个人理解:利用切面思想,将与程序无关的业务和当前程序解耦开,并进行监控或者后续处理等功能。...

2019-06-13 17:42:57 1108

原创 hystrix服务隔离

目录一、隔离方法二、线程隔离三、信号量隔离一、隔离方法 线程池隔离 信号量隔离 二、线程隔离原理:使用一个线程池来存储当前请求,线程池中线程对当前请求进行处理,可以设置任务的超时时间,对于堆积的请求可以入线程池队列。优点:采用线程池队列,因此可以解决流量洪峰的问题,起到了削锋的功能。并且可以异步调用,可以设置线程池的大小,控制请求的并发量。...

2019-06-13 17:34:33 437

原创 内部类局部方法调用为啥要final修饰?

目录一、方法的局部变量被引用内部类为啥final修饰二、Java 匿名类引用外部类成员变量为什么又不需要final修饰?一、方法的局部变量被引用内部类为啥final修饰void test() throws InterruptedException { //开始执行方法 Student student = new Student(); ...

2019-04-12 16:07:27 800

原创 MyBatis 基于源码的同等多数据源

目录一、背景二、方案描述3.1、思考细节点3.2、代码细节三、总结五、代码物料一、背景当前流行方案:(1)当前mybatis不支持多数据源(2)目前较通用方案是,写一个工厂类,进行数据源切换,并且数据源有主从之分master和slave(3)不能直接将dao层绑定对应数据源上,需要做逻辑判断读前需要了解知识:(1)mybatis源码解析:h...

2019-03-01 16:01:28 259

原创 MyBatis 源码分析

一、学习之前思考在学习mybatis之前,我是首先带着三个疑问去学习mybatis:(1)数据库链接怎样管理:与数据库链接的线程池创建,sql执行等(个人理解再牛逼的orm框架,最后都需要转成mysql(本次实例中是使用mysql数据)的原生的sql语句,最后执行的肯定是sql执行语句)(2)java的dao层怎样操作sql语句:一个dao接口,为什么可以直接执行sql语句,(...

2019-02-22 16:02:45 278

原创 虚拟机内存模型

一、虚拟内存模型注:图中红色部分为线程共享,白色部分为线程私有二、Java虚拟机栈作用域:线程私有,生命周期同线程是一样的存储数据:每个方法执行时会首先创建栈帧,存储局部变量表、操作数栈、动态链接和方法出口等信息。其中局部变量表存储了基础数据类型(int、boolean、char、byte、long、short、float、double)和对象引用异常类型:请求栈深度超...

2019-02-14 15:46:06 611

原创 TensorFlow开发Demo

一、模型基本知识 卷积神经网络 卷积 采样 二、模型定义本文以CNN卷积神经网络原型为示例: 初始化输入层,转换成统一尺寸大小:对于本例子中全部resize成28*28大小 代码块Python  input_layer = tf.reshape(features["x"], [-1, 28, 28, 1]) 定义第一层,卷积层,卷积核大小...

2019-01-16 10:13:31 424

原创 深度学习之TensorFlow

一、定义TensorFlow :是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点:一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。线:表示"节点"之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的...

2019-01-16 10:08:38 203

原创 word2vecd原理

一、基础知识sigmoid函数:sigmoid函数图像:随着x的增大,则值趋向1sigmoid的导函数则为:和导函数分别为:对数似然函数:当y=1时,假定这个样本为正类。如果此时hθ(x)=1hθ(x)=1,则单对这个样本而言的cost=0,表示这个样本的预测完全准确。那如果所有样本都预测准确,总的cost=0 但是如果此时预测的概率hθ(x)=0hθ(x)=0,...

2019-01-16 10:07:45 366

原创 Synchronization 原理分析

目录一、Synchronization原理分析二、Synchronization数据存放格式2.1、数据存放 2.2、偏向锁2.3、轻量级锁2.3、重量级锁2.4、性能场景比较一、Synchronization原理分析 Synchronization 锁原理是对象同步通过Monitor 来实现的,java每个对象都会有Monitor锁标...

2019-01-10 16:38:27 1458

原创 二. Java集合类型源码分析

(1)Iterator(迭代器)接口的鼻祖,里面只有一个方法,主要是为了继承该接口的实现类提供一个迭代器遍历功能:IteratorT> iterator()。(2)Collection     个人感觉是Java集合类型中最重要的接口,除了Map类型的集合类型,其余的集合类型几乎都继承该接口,其中接口申明的方法如下:int size();//集合大小boolean isEmpt

2017-05-11 19:20:25 320

原创 java 集合类结构分析

禁止转载!!!!!

2017-05-11 17:50:54 284

原创 java 集合类结构分析

Java集合类型接口UML用例图

2017-05-11 15:41:43 344

原创 Java堆栈存储数据类型

通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间;而通过new关键字和构造器创建的对象放在堆空间;程序中的字面量(literal)如直接书写的100、"hello"和常量都是放在静态区中。栈空间操作起来最快但是栈很小,通常大量的对象都是放在堆空间,理论上整个内存没有被其他进程使用的空间甚至硬盘上的虚拟内存都可以被当成堆空间来使用。

2016-04-05 16:24:15 1146

MyBatis基于源码的多数据源

一个注解搞定的MyBatis多数据源,当前个人思考的最好的多数据源方案,灵活性较强,可自主选择指定数据源。

2019-03-01

空空如也

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

TA关注的人

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