自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

盛难晨

盛年不重来,一日再难晨———陶渊明

  • 博客(86)
  • 收藏
  • 关注

原创 Java后台与微信小程序的数据交互

想把自己写的一个小项目转成微信小程序,主要是因为小程序比较火,而且自己想学一下小程序的东西,所以抱着初学者的心态开始了这个痛苦的旅程。看过小程序的一点视频,个人感觉和HTML,css,js差不多,甚至比前端更简单一些,可能是微信小程序做不出来那些炫酷的动态效果。 首先,要从Java后台查询出一组数据,然后转成json串返回。我总共总结了2种方法返回数据。一种非常简单,一种显得繁琐。...

2019-05-05 20:18:01 13304 9

原创 JAVA泛型详细总结

1.什么是泛型?我们在java编程的时候使用到泛型可能就是在集合中和其他的一些框架中使用到过泛型,对泛型的了解不是很深,那么泛型到底是什么呢?泛型,即参数化类型。泛型就类似于我们没有给它指定一个固定的参数类型,它是一个可变的参数类型,在我们调用或者使用它的时候才会传入具体的类型。泛型的本质是为了参数化类型,我们在使用泛型的时候,操作的数据类型被指定为一个参数,这个参数类型可以在类、接口和方法中,分别被称为泛型类、泛型接口和泛型方法。2.泛型的特性它的特性就是类型擦除,Java中的泛型基本上都是在编

2020-06-04 10:23:13 327

原创 JAVA反射机制详细总结

1.什么是反射机制?java中的反射机制是指在运行的状态中,对于任意一个类都能知道这个类所有的属性和方法,并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能就是java的反射机制。2.java反射使用的步骤1.获取想要操作的类Class对象,它是反射的核心,通过Class对象我们可以任意调用类的方法。2.调用Class类中的方法,既就是反射的使用阶段。3.使用反射API来操作这些信息。3.获取Class对象的3种方法我们首先创建一个person的对象:

2020-05-29 20:16:27 376

原创 JAVA多线程学习详细总结

什么是线程和进程?进程:进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。在java中,当我们启动main函数时就是启动了一个JVM的进程,而main函数所在的线程就是这个进程中的一个线程,也称主线程。线程:线程和进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行过程中可以产生多个线程。在java中,当我们启动main函数时其实就是启动了一个JVM的进程,而main函数所在的线程就是在这个进程的一个线程,也称为主

2020-05-27 11:39:33 618

原创 JAVA接口和抽象类详细总结

什么是接口?什么是接口?我们可以比喻成一个USB接口,一个电脑中有一个USB接口,它可以插我们的鼠标,键盘,U盘等设备,然后我们的电脑又有不同的品牌,所以为了统一我们的鼠标,键盘和U盘等设备就需要统一这个插设备的接口,不然这样就会很麻烦。接口就是一种契约和协议。例如我们写一个Fly的接口,那么Airplane实现了它就会在天上飞,直升机实现了它也可以在天上飞,战斗机实现了它也可以在天上飞。定义一个接口使用的关键字是interface:public interface FlyAble { void

2020-05-26 16:17:42 474

原创 uni-app缓存获取值为null解决方法

uniapp获取缓存的时候不会像vue那样直接获取,它会有一个作用域范围。var test = thisuni.getStorage({ key:'user', success:function(res){ if(res.data) { var u = JSON.parse(res.data) test.orders.uid = u.userId } }...

2020-04-30 18:03:59 3855

原创 Hashmap源码分析(jdk1.8)

1.初始化构造函数HashMap<Integer,String> hashMap = new HashMap<>();HashMap<Integer,String> hashMap = new HashMap<>(10);构造函数://将负载因子设为0.75,然后初始化默认最大容量是16,负载因子是0.75,//故默认容量是12,然后超过...

2020-04-22 20:15:10 159

原创 Hashmap存储数据过程分析(jdk1.8不涉及源码)

1.所用到的数据结构jdk1.8开始hashmap所使用的是数组+链表+红黑树组成,在jdk1.7的时候还没有用到红黑树。2.扩容首先初始化一个hashmap这时候就会对数组进行扩容,默认容量为16。3.计算出索引值如果数组为空及table【索引值为空】则直接插入,如果不为空,接下来用equals判断key是否相等。如果相等则覆盖掉原来的值,如果不相等则判断是不是树节点,如果是树节点...

2020-04-21 12:44:41 361

原创 红黑树大致原理讲解(不涉及源码分析)

1.什么是红黑树R-B Tree,全称是 Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。2.红黑树的特性(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!](4)如果一个节...

2020-04-20 13:50:13 179

原创 搭建网站的详细流程

1.购买服务器我们搭建一个网站必须有一个服务器才能运行,这样别人才能看见你的网站。我们购买的一般都是云服务器,在国内出名的云服务器商有腾讯云、阿里云和华为云。推荐购买腾讯云服务器,腾讯云的学生服务器才10元一个月。如果在双11等节日,各个服务器商都会打折还会更加便宜,这 个就看你自己了。腾讯云学生服务器2.购买域名同样在腾讯云、阿里云和华为云上面可以购买。3.备案这个过程是比较久...

2020-03-29 13:36:25 2525

原创 Java后端获取sessionId不一致的问题

出现这个问题,主要的原因就是前端没有将cookie带给后端,或者后端的cookie没有带给前端。所以把这个解决了就基本解决了问题。后端配置在后端配置了一个过滤器,也是解决跨域的问题:<!-- 跨域设置 --> <filter> <filter-name>crossFilter</filter-name> ...

2020-03-26 20:58:36 3645 1

原创 Vue向后端传数据后端接收为null的解决方法

由于axios默认发送数据时,数据格式是Request Payload,而并非我们常用的Form Data格式,后端数据就为null,所以在发送之前,需要使用qs模块对其进行处理。他们的格式:Request Payload:http://localhost:8080/login?zh=123,pw=123Form Data:http://localhost:8080/login,{zh=“1...

2020-03-11 10:16:28 10450 1

原创 vue项目cli-3.0获取本地json文件

1.安装axiosnpm install axios然后在main.js中引入:import axios from 'axios' //引入axiosVue.prototype.$http = axios2.将json文件放在public文件下你也可以不需要建文件夹,都是可以的。3.vue页面中获取json文件lrcurl是你json文件的url。完成!...

2020-03-08 19:08:36 1711

原创 总结TCC分布式事务的优缺点

优点:1.解决了跨服务的业务操作原子性问题,例如组合支付,订单减库存等场景非常实用2.TCC的本质原理是把数据库的二阶段提交上升到微服务来实现,从而避免了数据库2阶段中锁冲突的长事务低性能风险。3.TCC异步高性能,它采用了try先检查,然后异步实现confirm,真正提交的是在confirm方法中。缺点:1.对微服务的侵入性强,微服务的每个事务都必须实现try,confirm,canc...

2020-02-25 19:57:13 4523

原创 分布式事务TCC和XA有什么区别及TCC模型和DTP模型的区别

分布式事务TCC与XA有什么区别?TCC与XA两阶段提交有什么区别?1.XA是资源(数据库)的分布式事务,强一致性,在整个过程中,数据一直锁住状态;即从prepare到commit、rollback的整个过程中,TM一直把持着数据库的锁,如果有其他人要修改数据库的该条数据,就必须等待锁的释放。(简单一句话就是长事务风险)另外在开发过程中,开发人员无感知XA的代码入侵(从Atomikos的例...

2020-02-25 19:40:25 2052

原创 图解分析:TCC分布式事务日志原理和网络通信的原理

TCC分布式事务日志原理在项目中:这里面的枚举我们可以总结:通过事务管理器,进行日志分析。然后加上这行代码。启动项目测试:订单服务第一步:try事务管理器的工作status=(0,“开始执行try”)role=START(1,“发起者”)第二步:confirm的事务管理器工作:status= CONFIRMING(2,“confirm阶段”)第三步:分布式事...

2020-02-25 19:07:39 393

原创 图解分析:TCC分布式事务中confirm的底层原理及如何解决try和confirm的异常

分布式事物confirm的底层原理在order的try阶段:首先会冻结库存和建余额账户。并且注册一个事务组,他们是通过id一致绑定在一起的。try阶段走完过后,就会执行confirm的方法。总结:try阶段注册事物组,然后try和confirm阶段都是由事务管理器来管理的,try阶段执行完过后就会进入confirm阶段。如何解决分布式事务的try异常我们在order的try阶...

2020-02-25 18:31:59 1971 4

原创 tcc-transaction框架的订单支付的分布式事务例子

第一步:到GitHub拉取源码:https://github.com/changmingxie/tcc-transaction在idea上面拉取,步骤我上一篇文章拉取hmily的例子一样,这里就不仔细讲解了。从GitHub拉取hmily例子第二步:初始化数据库:拉取过后在上面的文件中有初始化数据的sql。第三步:修改数据库的连接:这两个文件下的服务都要修改数据库的连接,都在配置文...

2020-02-20 19:26:45 457

原创 hmily框架的订单支付的分布式事务例子

业务情景hmily框架订单支付的展示1.第一步:到GitHub拉取最新的源码:https://github.com/Dromara/hmily这样你就从idea拉取了hmily的项目。选择版本,你可以选择2.0.2也可以使2.04,我使用的是2.04版本。2.第二步:修补源码的缺陷在hmily的根目录下的pom.xml中加入hmily-demo3.第三步:初始化数据库。...

2020-02-20 19:02:27 780

原创 TCC事务模型图解

什么是TCC分布式事务?定义:TCC是try confirm cancel的单词首字母缩写,是一个类似2pc的柔性分布式解决方案。TCC的3大核心方法图解TCC分布式事务实际应用场景,淘宝购物下订单库存服务会有3个接口操作,分别是try,confirm,cancel。try:尝试业务执行,作用如下:1.完成所有业务的检查(一致性检查)下订单的时候,检查库存是否充足。2.预留必...

2020-02-20 15:00:14 982

原创 关于src中的路径在服务器无法识别的解决方案

1.你的路径是否出现了中文,服务器的路径名不能是中文2.你的路径在本地是否能够正确显示3.仔细检查你的路径名

2020-02-19 13:20:26 1094

原创 图解刚性事务(全局事务)的缺陷

两阶段事务-协调者宕机分析1.如果在第一阶段,协调者宕机,那么所有参与者将无法再收到协调者第二阶段的commit或rollback命令,故会一直阻塞下去,本地事务无法结束。解决方案:所有参与者统一rollback(因为还未进入第二阶段,所有参与者都不会接受到提交或回滚的命令,当前事务是无法继续提交的,故只能回滚)2.如果在第二阶段,协调者宕机,那么可能是部分参与者没有接收到commit,r...

2020-02-15 18:17:20 1586

原创 详细图解3阶段事务提交及单点故障和网络脑裂问题

为什么会有3阶段提交?因为2阶段提交存在单点故障、同步阻塞、网络脑裂等缺陷,所以在2阶段的基础上进行了改良,并提出了3阶段的概念。2阶段和3阶段,事务提交有什么区别?3阶段在2阶段的基础上做了2个改进点:1.增加了超时机制,同时为协调者和参与者都引入了超时机制。2.在2阶段的第2和第2中间插入了一个提交准备(preCommit)阶段。插入的这个阶段能保证最后提交阶段之前,各个参与者节点...

2020-02-15 18:15:14 2430

原创 基于XA规范分布式事务实战,图解2阶段事务协议

分布式事务实战基于XA规范首先我们在docker中安装2台mysqldocker run -p 3308:3306 --name mysql3308 \ -e MYSQL_ROOT_PASSWORD=xxx \ -v /data/volume/mysql/data3308:/var/lib.mysql \ -d mysql:5.7安装两台mysql端口号分别是3307和3308。你可...

2020-02-14 14:48:18 1814

原创 详细解读分布式事务DTP模型

谁提出了分布式事务DTP模型?分布式事务模型DTP和DTP XA规范的制定者是X/Open,即现在的open group,是一个全球联盟的独立组织。open group 全球白金会员有8家,我们中国华为公司在列。open group这个全球组织的主要作用是制定各种行业技术标准。open group为分布式事务处理指定了分布式事务模型DTP和DTP XA规范什么是分布式事务DTP模型?...

2020-02-14 13:29:45 3255

原创 详解分布式BASE定理

什么是分布式BASE定理?BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的缩写。BASE理论是eBay架构师提出的。BASE定理来源:是CAP中一致性和可用性的权衡结果,它来自大规模互联网分布式系统的总结,是基于CAP定理逐步演化而来的。BASE定理的核心思想:即使无法做到强一致...

2020-02-12 19:50:27 5193

原创 详解分布式CAP定理

什么是CAP定理?Consistency一致性: 指数据的一致性,特指分布式系统中数据的一致性Availability:可用性:指服务的高可用,特指分布式系统中服务的高可用,某个服务瘫痪不影响整个分布式系统的运行。Partition tolerance:分区容错性: 指网络故障,特指分布式系统中,服务之间出现网络故障,整个分布式系统仍然保持可用性和一致性。一句话概括CAP:在分布式网络中...

2020-02-12 18:47:24 2273

原创 深入分析事物以及什么是分布式事物?

什么是事物?事物是关系型数据库中,由一组sql组成的执行单元,该单元要么整体成功,要么整体失败。事物的ACID特性事物ACID特性,原子性,一致性,隔离性,持久性,这4个属性统称为ACID特性。原子性:指事物包含的所有操作sql,要么整体成功,要么整体失败。一致性:事物前的状态结果和事物后的状态的结果都是一致的。参考银行转账。持久性:指一个事物一旦被提交了,那么数据就永久存储在...

2020-02-11 19:33:46 2574

原创 JS数组对象初始化页面只取一定范围的值

今天写我自己的博客,我的页面需要当前页面的所有路由,但是不要第一个首页的路由,于是我开始的思路是拿到所有的路由然后删除掉第一个路由就行了。用的splice方法。但是,这样的方法并不行,当我第二次点击的时候还是会删除我的一个路由。所以我就想到了直接取一定范围的值。就是利用数组的slice方法。果不其然,一下就解决了我的问题。用法:Array.prototype.slice 的参数含义为 ...

2020-02-10 13:46:39 2921

原创 Docker实现容器之间的网络通信

1.业务场景我们有一个eureka,然后一个product和一个mysql。这三个都是容器。product注册到eureka,然后product还要连接mysql。首先你的product最好能证明连接了数据库,例如写一个查询。再就是保证在Windows都能运行正常,然后再制作成容器。2.安装mysqldocker run -p 3306:3306 --name mysql \ -e...

2020-02-06 20:13:45 3100

原创 Docker容器的常用命令

1.创建容器docker run -d -p 5000:5000 \ --restart=always \ --privileged=true \ --name=registry-agan \ -v /date/volume/registry:/var/lib/registry \ registry2.查看容器查看正在运行的容器:docker ps查看所有的容器包含已经停止的:...

2020-02-06 18:50:07 2544

原创 Docker搭建本地仓库详细过程

为什么要搭建本地仓库?1.节约带宽:因为如果用docker或阿里云官方的仓库走的互联网浪费带宽,而且慢。2.提供资源利用和安全:因为公司内部的镜像,推送到本地仓库,更方便公司内部人员用,而且安全性高。搭建步骤1.创建一个仓库容器docker run -d -p 5000:5000 \--restart=always \--privileged=true \--name=regist...

2020-02-06 18:35:58 3164

原创 Docker推送镜像到阿里云仓库

1.进入阿里云的容器镜像服务,创建命名空间:2.创建一个镜像仓库3.linux登录阿里云docker login --username=你的用户名 registry.cn-shenzhen.aliyuncs.com4.修改本地镜像的名字,因为需要修改仓库的名字我以这个镜像为例:修改镜像名字命令:docker tag a03720fa5809 registry.cn-shen...

2020-02-06 14:43:14 3815

原创 Docker推送镜像到dockerhub官方仓库

1.登录自己的https://hub.docker.com创建一个仓库我们这里创建了一个xinyangyunyang/eureka-server2的仓库。2.本地的linux登录docker官方命令:docker login3.改镜像的名字我们这里有一个镜像是registry-agan/eureka-server2,然后我们要修改它的名字命令:docker tag registr...

2020-02-05 19:46:15 3357

原创 Vuex使用的详细教程

什么是Vuex?官方说明:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。个人理解:vuex就是一个状态管理的工具,如果...

2020-02-05 12:30:00 5463 2

原创 dockerfile是什么?手动制作一个dockerfile

什么是dockerfile?1.dockerfile是一个文本的配置文件,它可以快速创建自定义的镜像。2.文本内容:包含了若干的命令行,并支持#作为注释行3.文本格式:基础镜像FROM,维护者MAINTAINER,操作指令ADD,容器启动后指令等共计4部分。手动制作一个dockerfile自己创建一个文件夹,然后使用创建dockerfile文件然后打包一个eureka的包到这个目录中。...

2020-02-03 19:50:49 3872

原创 Docker的镜像管理及配置加速器

什么是镜像?1.一个只读的模板,就是一个dockerfile,可以在镜像仓库上传或下载。2.先有镜像,后有容器;并且一个镜像可以创建多个容器。3.docker镜像最大的特点:分层结构。最底层是一个base层,也即是一个操作系统层。它还会从base层一层层的叠加生成。什么是层层叠加?例如,安装一个软件,它就会在base层的基础上追加一层。它的好处就是资源共享。简单的说镜像就是不能够实际使...

2020-02-03 19:25:49 2641

原创 初识Docker,入门篇

什么是Docker?Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker和虚拟机Dock...

2020-02-03 18:59:20 2580

原创 关于HBuilder的uni-app项目真机调试无法打印日志解决方法

亲测有效点击转载文章

2020-02-03 10:40:46 10303

原创 Zipkin+Rabbitmq结合springboot2.0版本详细搭建流程

下载Zipkin的jar包zipkin下载链接启动Zipkinjava -jar zipkin-server-2.10.4-exec.jar --zipkin.collector.rabbitmq.addresses=192.168.23.134--zipkin.collector.rabbitmq.username=账号--zipkin.collector.rabbitmq.pass...

2020-01-23 17:09:38 3867

空空如也

空空如也

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

TA关注的人

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