自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java之数组

Java之数组数组JAVA中,程序 = 算法 + 数据结构;像if、if-else、switch、循环解决的都是流程问题,即算法问题。所谓数据结构,简单说就是把数据按照特定的某种结构来保存,设计合理的数据结构是解决问题的前提。数组就是最基本的一种数据结构。2.1什么是数组数组是多个相同类型数据的组合,实现对这些数据的统一管理2.2数组的定义数组的声明数据类型[] 数组名;数...

2019-05-11 15:06:42 245

原创 支付设计概要

一、支付中心解释提供一个能多渠道支付的平台,供公司应用调用,实现(向用户)收款与付款(给用户)的目的。二、相关文章https://blog.csdn.net/sz_bb/article/details/53300937https://blog.csdn.net/xiasihua88/article/details/79716349https://blog.csdn.net/eluansh...

2019-11-14 17:33:48 142

原创 关于熔断器Hystrix替代方案的调研报告

关于熔断器Hystrix替代方案的调研报告一、背景Netflix宣布停止Hystrix熔断器的开发,目前进入了维护模式。同时,也指出了Hystrix 1.5.18版本足够满足现阶段的应用(详细请参看:Hystrix Status)。 虽然Hystrix 1.5.18版本目前能满足公司应用的要求,但随着公司技术栈的更新,势必很大可能导致此版本的Hystrix与相关技术不兼容。这样就需要提前...

2019-11-14 17:27:24 1008

原创 分布式系统关注点(8)——99%的人都能看懂的「熔断」以及最佳实践

分布式系统关注点(8)——99%的人都能看懂的「熔断」以及最佳实践当我们工作所在的系统处于分布式系统初期的时候,往往这时候每个服务都只部署了一个节点。那么在这样的背景下,如果某个服务A需要发布一个新版本,往往会对正在运行的其它依赖服务A的程序产生影响。甚至,一旦服务A的启动预热过程耗时过长,问题会更严重,大量请求会阻塞,产生级联影响,导致整个系统卡慢。举个夸张的例子来形容:一幢楼的下水管是...

2019-11-14 17:15:28 165

原创 TX-LCN原理

一、控制原理TX-LCN由两大模块组成, TxClient、TxManager,TxClient作为模块的依赖框架,提供TX-LCN的标准支持,TxManager作为分布式事务的控制放。事务发起方或者参与反都由TxClient端来控制。原理图:核心步骤创建事务组是指在事务发起方开始执行业务代码之前先调用TxManager创建事务组对象,然后拿到事务标示GroupId的过程。加入事务组...

2019-11-14 16:49:40 756

原创 seata原理

seata实现分布式事务是基于三种模式:AT模式、MT模式、XA模式一、AT模式》基本思路前提基于支持本地 ACID 事务的关系型数据库。Java 应用,通过 JDBC 访问数据库。整体机制两阶段提交协议的演变:一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。二阶段:提交异步化,非常快速地完成。回滚通过一阶段的回滚日志进行反向补偿。写隔离...

2019-11-14 16:43:16 3489

原创 Java中的事务——JDBC事务和JTA事务

Java中的事务——JDBC事务和JTA事务之前的事务介绍基本都是数据库层面的事务,本文来介绍一下J2EE中和事务相关的内容,在阅读本文之前,希望读者对分布式有一定的了解。关于事务的基础知识这里不再详细介绍,想要了解的同学可以在我的博客中阅读相关文章。Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。 常见的容器事务如Spring事务,...

2019-11-14 16:10:15 141

原创 分布式事务解释

一、分布式事务解释场景:1.跨库分别操作同一进程中两个模块的数据;2.跨库操作同一进程中分库分表的同一模块的数据;3.操作不同进程(微服务,soa服务等)的数据描述:从根源来说,上述三种情况的数据操作都是跨越了多个数据库。这三种情况就需要从分布式事务的角度去解决事务问题!二、分布式事务框架技术地址1.seatahttps://github.com/seata/seata2.lcnht...

2019-11-13 16:53:52 100

原创 高性能分布式锁-redisson的使用

高性能分布式锁-redisson的使用本文摘自网文1,概述:在一些高并发的场景中,比如秒杀,抢票,抢购这些场景,都存在对核心资源,商品库存的争夺,控制不好,库存数量可能被减少到负数,出现超卖的情况,或者 产生唯一的一个递增ID,由于web应用部署在多个机器上,简单的同步加锁是无法实现的,给数据库加锁的话,对于高并发,1000/s的并发,数据库可能由行锁变成表锁,性能下降会厉害。那相对而言,re...

2019-11-04 15:12:01 110

原创 分布式系统之CAP理论和BASE理论

分布式系统之CAP理论和BASE理论CAP理论2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP。之后,CAP理论正式成为分布式计算领域的公认定理。CAP理论为:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availab...

2019-11-04 10:30:57 80

原创 分布式系统唯一ID生成方案汇总

分布式系统唯一ID生成方案汇总前言系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。一、数据库自增长序列或字段最常见的方式。利用数据库,全数据库唯一。优点:简单,代码方便,性能可以接受。数字ID天然排序,对分页或者需要...

2019-11-04 09:47:21 115

原创 RabbitMQ消息最终一致性解决方案

RabbitMQ消息最终一致性解决方案随着分布式服务架构的流行与普及,原来在单体应用中执行的多个逻辑操作,现在被拆分成了多个服务之间的远程调用。虽然服务化为我们的系统带来了水平伸缩的能力,然而随之而来挑战就是分布式事务问题,多个服务之间使用自己单独维护的数据库,它们彼此之间不在同一个事务中,假如A执行成功了,B执行却失败了,而A的事务此时已经提交,无法回滚,那么最终就会导致两边数据不一致性的问题...

2019-09-29 10:56:31 6987 2

原创 JAVA开发中最容易踩到的‘八中坑’

1、客户端的使用我们在使用Redis、ElasticSearch、RabbitMQ、Mongodb等中间件或存储的时候肯定都会使用客户端包来和这些系统通讯,我们也会使用Http的一些客户端来发Http请求。在使用这些客户端包的时候,非常容易犯错的一个地方就是Client的使用方式,比如有一个叫做RedisClient的类,是Redis操作的入口。你应该是每次使用new RedisClient()...

2019-09-29 10:21:32 185

原创 Java之多线程(上)

多线程基础进程与线程进程和线程a) 程序没运行之前就叫做应用程序,当应用程序开始运行,此时就叫做进程。b) 迅雷开始运行(开始下载多个任务)进程迅雷进程内部同时在执行多个任务,这多个任务就叫做线程。线程:进程内部的一个顺序执行流多线程使用的场景:线程通常用于在一个程序中需要同时完成多个任务的情况。我们可以将每个任务定义为一个线程,使他们得以一同工作。也可以用于在单一线程中可以完成...

2019-05-18 15:49:43 91

原创 Java之常用API(下)

Java之常用API(中)正则表达式正则表达式是一串特定字符,组成一个“规则字符串”,这个“规则字符串”是描述文本规则的工具。正则表达式就是记录文本规则的代码。1.1 字符集:[abc] a、b、c中任意一个字符[^abc] 除了a、b、c的任意字符[a-z] a、b、c、……、z中的任意一个字符[a-zA-Z0-9] az、AZ、0~9中任意一个字符[a-z&&[...

2019-05-14 23:34:52 150

原创 Java之常用API(上)

Java之常用API(上)1 .JDK APIJDK中包含大量的API类库,所谓API(Application Programming Interface,应用程序编程接口) 就是一些已写好、可供直接调用的功能(在Java语言中,这些功能以类的形式封装)。JDK API 包含的类库功能强大,经常使用的有:字符串操作、集合操作、文件操作、输入输出操作、网络操作、多线程等等。JDK包结构:1...

2019-05-13 18:24:47 212

原创 Java之面向对象(下)

Java之面向对象(下)static关键字static修饰三类成员:(1)成员变量,(2)代码块:在类加载时期完成变量或代码块的初始化 。(3)方法:得调用才执行。2. final关键字final不论修饰一下三种的那一种,它的作用都是最终的意思。修饰变量:可以修饰成员变量,也可以修饰局部变量,如果修饰成员变量,在声明的同时必须初始化,如果修饰局部变量,可以先声明,后初始化。变量的值一旦...

2019-05-13 10:51:51 101

原创 Java之面向对象(上)

Java之面向对象Java基础:Java语言基础:OOP(面向对象):Object oriented programmingJava语言是面向对象的语言,而C语言是面向过程的语言。举个栗子:面向过程编程思想:更接近于计算机的执行过程,对于程序员来说编写并不是很方便。面向对象编程思想:更接近于人的思维方式,对于程序员来说编写更加方便。优化:将数据和方法封装为一个整体,java中...

2019-05-12 19:49:18 136

原创 Java之运算符

java之运算符1.1 运算符的优先级数学运算、字符串连接运算。% 取余 判断是否能整除,要看余数是否为0。== 比较是否相等。!= 比较是否不相等。&& 逻辑与:左侧是真,并且右侧是真,结果才是真,只要有假结果就是假。也称短路与左侧是假,右侧被忽略不执行。|| 逻辑或:左侧是真,或者右侧是真,结果都是真。两边都是假,结果才是假。也称短路或左侧是真,右侧被忽略不执...

2019-05-11 14:20:40 88

原创 java之开发环境

Java面向对象

2019-05-11 11:57:47 248 1

空空如也

空空如也

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

TA关注的人

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