自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

发光并非太阳的专利,你也可以发光。

不抽出时间来创造自己想要的生活,你最终将不得不花费大量的时间来应付自己不想要的生活

  • 博客(157)
  • 资源 (2)
  • 收藏
  • 关注

原创 『分布式事务』最大努力通知

这个方案的大致意思就是:系统 A 本地事务执行完之后,发送个消息到 MQ;这里会有个专门消费 MQ 的最大努力通知服务,这个服务会消费 MQ 然后写入数据库中记录下来,或者是放入个内存队列也可以,接着调用系统 B的接口;要是系统 B 执行成功就 ok 了;要是系统 B 执行失败了,那么最大努力通知服务就定时尝试重新调用系统 B,反复 N次,最后还是不行就放弃。...

2019-09-17 10:03:59 320

原创 『分布式事务』可靠消息最终一致性

今天给大家分享的是分布式事务:可靠消息最终一致性这个的意思,就是干脆不要用本地的消息了,直接基于MQ来实现事务,比如阿里的RocketMQ就支持消息事务A系统先发送一个prepared消息到mq,如果这个prepared消息发送失败那么就直接取消操作别执行了如果这个消息发送成功过了,那么接着执行本地事务,如果成功就告诉mq发送确认消息,如果失败就告诉mq回滚消息如果发送了确认消...

2019-09-17 10:01:33 374

原创 『分布式事务』本地消息表

咱们今天聊一聊分布式事务的另一种方案,本地消息表:A系统在自己本地一个事务里操作同时,插入一条数据到消息表接着A系统将这个消息发送到MQ中B系统接收到消息之后,在一个事务里,往自己本地消息表里插入一条数据,同时执行其他的业务操作,如果这个消息已经被处理过了,那么此时这个事务会回滚,这样保证不会重复消费B系统执行成功之后,就会更新自己本地消息的状态以及A系统消息表的状态...

2019-09-17 09:17:43 346 2

原创 『分布式事务』TCC方案

此图是在别人博客中盗的,感觉人家画的比我画的好看那么一丢丢,O(∩_∩)O哈哈~现在把A服务和B服务看做是银行服务吧这个其实用到了补偿的概念,分为了三个阶段:1)Try阶段:这个阶段说的是对各个服务的资源做检测以及对资源进行锁定或者预留2)Confirm阶段:这个阶段说的是在各个服务中执行实际的操作3)Cancel阶段:如果任何一个服务的业务方法执行出错,那么这里就需要进行补偿,就是执...

2019-09-06 17:58:32 347

原创 『分布式事务』两阶段提交方案/XA方案

举个例子,比如说咱们公司里经常tb是吧(就是团建),然后一般会有个tb主席(就是负责组织团建的那个人)第一阶段,一般tb主席会提前一周问一下团队里的人,说,大家伙,下周六我们去滑雪+烧烤,去吗?这个时候tb主席开始等待每个人的回答,如果所有人都说ok,那么就可以决定一起去这次tb。如果这个阶段里,任何一个人回答说,我有事不去了,那么tb主席取消这次活动。第二阶段,那下周六大家就一起去滑雪+烧...

2019-09-06 17:36:16 946

原创 『简单聊聊分布式锁』zookeeper分布式锁与Redis分布式锁的比较

redis 分布式锁,其实需要自己不断去尝试获取锁,比较消耗性能。zk 分布式锁,获取不到锁,注册个监听器即可,不需要不断主动尝试获取锁,性能开销较小。另外一点就是,如果是 redis 获取锁的那个客户端 出现 bug 挂了,那么只能等待超时时间之后才能释放锁;而 zk 的话,因为创建的是临时 znode,只要客户端挂了,znode 就没了,此时就自动释放锁。redis 分布式锁大家没...

2019-09-06 17:19:35 259

原创 『简单聊聊分布式锁』zookeeper分布式锁

zookeeper分布式锁zookeeper分布式锁zookeeper分布式协调zookeeper分布式锁zookeeper分布式锁举个栗子。对某一个数据连续发出两个修改操作,两台机器同时收到了请求,但是只能一台机器先执行完另外一个机器再执行。那么此时就可以使用 zookeeper 分布式锁,一个机器接收到了请求之后先获取 zookeeper 上的一把分布式锁,就是可以去创建一个 zno...

2019-09-05 21:43:47 117

原创 『简单聊聊分布式锁』Redis分布式锁

分布式锁Redis分布式锁Redis分布式锁单机Redis分布式锁首先咱们先聊聊单机的Redis分布式锁第一个最普通的实现方式,就是在 redis 里使用 setnx 命令创建一个 key,这样就算加锁。SET resource_name my_random_value NX PX 30000执行这个命令就 ok。NX:表示只有 key 不存在的时候才会设置成功。(如果此时...

2019-09-05 21:42:05 154

原创 『微服务治理之Dubbo』dubbo工作原理

dubbo为什么要用分布式服务降级失败重试和超时重试dubbo架构设计,工作原理dubbo都支持哪些通信协议以及序列化协议dubbo 协议rmi 协议hessian 协议http 协议webservicedubbo 支持的序列化协议说一下 Hessian 的数据结构为什么 PB 的效率是最高的?dubbo支持哪些负载均衡、高可用以及动态代理的策略dubbo 负载均衡策略random loadbal...

2019-08-25 20:00:18 253

原创 『RocketMq』环境搭建

官网地址:http://rocketmq.apache.org/dowloading/releases/ 下载最新的release包。

2024-01-03 18:55:36 936

原创 『tomcat配置skyWalking』环境搭建

首先官网下载所需要的包:官网下载分别下载apache-skywalking-apm-9.3.0.tar.gz和apache-skywalking-java-agent-8.14.0.tgz在任意目录创建文件夹,命名为skyWalking,下载好的包解压到此文件夹。

2023-05-23 18:04:38 611

原创 『Tomcat架构解析学习笔记』Tomcat总体架构

tomcat总体架构总体设计ServerConnector和Containertomcat启动请求处理类加载器小结总体设计Server我们可以将服务器描述为一个应用:它接收其它计算机(客户端)发来的请求数据并进行解析,完成相关业处理,然后把处理结果作为响应返回给请求计算机(客户端)。通常,使用Socket监听服务器指定端口来实现该功能。按照描述一个最简单的服务器设计如图。通过start()方法启动服务器,打开Socket链接,监听服务器端口,并负责在接收到客户端请求时进行处理并返回响应。同时提

2021-02-10 11:00:53 450 2

原创 Windows配置Apache连接Tomcat

安装Apache1 、下载 Apache 的安装程序 apache_2.2.3-win32-x86-no_ssl.exe 后,安装很简单,一直回车。2 、安装完毕后,将下载的 mod_jk-1.2.20-apache-2.2.3.so改名为mod_jk.so,并复制到 Apache 安装目录下的 modules 目录中。httpd.conf 配置3 、然后进入 Apache 安装目录下的 conf 子目录中,打开 httpd.conf 配置文件,在最后插入以下一行: Include conf/mo

2020-08-26 12:41:31 405

原创 『git使用』git远程新建分支之后,本地看不到最新分支

进入项目根目录,右击,选择Git Base Here,执行下面命令:此命令是更新远程分支git remote update origin --prune然后执行切换分支:// develop改为你要切换的分支名称git checkout develop去看看自己的idea,分支已经切换成功了...

2020-04-23 11:02:05 874

原创 『git使用』创建远程分支

如果新开发一个模块,并且同时还要改其他模块的bug,最好时创建一个新分支来保存当前新模块的代码,改bug开发新模块互不影响,接下来给大家分享如何创建远程分支,同时把当前代码同步到新分支。创建并切换到新分支git checkout -b new更新分支代码并提交git add *git commit -m "提交本地代码"git push origin new刷新git,分支创建...

2020-04-18 09:09:25 211

原创 『git使用』删除远程分支

进入项目文件夹,右击,Git Bash Here切换到你git项目所在的目录后,使用 git branch -a命令来查看所有的分支。列出所有分支了,其中上方的是本地的分支,下方的有remotes/origin开头的就是远程分支。假设要删除的远程分支为new,我们需要先把分支切换到master,因为你现在所在的分支就是new,在这个分支下,是不能删除它的。使用命令 git checkou...

2020-04-18 08:58:57 290

原创 上传jar到nexus指定库

今天给大家分享的是,如何上传jar到nexus指定的库,有很多种方式,今天小编给大家分享一种简单易操作的方式命令上传第一步(配置maven环境变量)首先配置电脑的环境变量,我的电脑,右击->属性->高级系统设置->环境变量在用户变量配置如下:变量名:MAVEN_HOME变量值:D:\apache-maven-3.0.5(`改为自己本地maven地址`)系统...

2020-04-12 21:21:29 417

原创 『JNDI』 java:comp/env/jdbc/datasource 与 jdbc/datasource区别

在描述JNDI,例如获得数据源时,JNDI地址有两种写法,例如同是 jdbc/testDS 数据源:A: java:comp/env/jdbc/testDSB: jdbc/testDS这两种写法,配置的方式也不尽相同,第一种方法应该算是一种利于程序移植或迁移的方法,它的实现与“映射”的概念相同,而B方法,则是一个硬引用。java:comp/env 是环境命名...

2020-02-20 11:39:18 449

原创 监听键盘上下键

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>keyboard control 1</title> <style> ...

2020-01-14 15:07:23 740

原创 JDK8更换为JDK6,更改环境变量 不生效

前言电脑上安装了两个jdk版本,一个是1.6,一个是1.8,项目需要,所以会经常切换jdk,所有会频繁修改环境变量,之前环境变量配置的是1.8,现在要用低版本的,需要把环境变量中有关jdk1.8的都换成jdk1.6的,但是更换成功,在dos窗口查看java -version依然还是jdk1.8方案一建议将JAVA_HOME的路径配置到Path的最前面,这样路径参数就不会受到影响。设置完成之后...

2020-01-13 16:04:52 1112

原创 解决"Please enter a commit message to explain why this merge is necessary。。。

提示信息从git拉取遇到的情况,看到这个不要慌,不是错。 #Please enter a commit message to explain why this merge is necessary,#especially if it merges an updated upstream into a topic branch.#Lines starting with ‘#’ will b...

2020-01-09 14:19:54 9600 2

原创 git远程外网地址变内网

前言之前拉去代码用的都是外网映射的地址,最近因为一些原因把外网改成了内网,所以在idea直接拉去提交代码是不可能了,那怎么办呢,重新用内网地址clone代码,然后把自己修改的代码复制到刚刚拉下来的代码中吗,如果没有看到小编这篇博客的,也会你会这样做,但是这样非常浪费时间,接下来小编告诉你怎样做。方案打开你项目的文件,会看到.git文件(如果没看到,那就是被隐藏了,百度搜索隐藏文件),打开.g...

2020-01-07 17:14:13 808

原创 『JDK工具之HSDB』查看JVM加载的class的字节码

JDK自带的工具,用于查看JVM运行时的状态。HSDB位于C:\Program Files\Java\jdk1.8.0_221\lib里面,接下来启动HSDB:(如果没有找到HSDB,没关系,Windows+R,输入 java -classpath “%JAVA_HOME%/lib/sa-jdi.jar” sun.jvm.hotspot.HSDB)查看JVM PID(Windows...

2019-12-29 16:21:37 1379 1

原创 『Rational Rose』安装(1)

前言学到了UML,在视频中提到了Rational Rose这个工具,对它很感兴趣,想知道它到底是什么东西,所以也就找同学拷了这个安装包,但是安装的时候它提示我这个一个病毒软件,所以就只能把它卸载了。后来就又找同学拷了一个rational rose的安装包,但是它是一个bin的文件,所以就有了我这篇博客的由来了,下面就来说一下我安装的的过程以及在安装的过程中所遇到的问题吧。安装过程1、下载wi...

2019-12-08 21:16:24 864

原创 『微服务治理之Dubbo』dubbo与http请求的区别

分布式项目远程调用,大部分都是使用dubbo,那dubbo跟http请求有什么别人呢,为什么不直接用http请求呢,也不需要配置,非常简单,所以今天拿dubbo和http做一下比较。首先从协议层开始比较 TCP/IP 层级模型结构网络结构作用应用层直接对应用程序提供服务,定义了用于在网络中进行通信和传输数据的接口表示层定义不同的系统中数据的传输格式,编码和...

2019-11-30 17:33:55 2061

原创 zookeeper与eureka对比

zookeeper与eureka对比CAPzookeeper保证了CPEureka保证的AP服务注册发现的时效性容量系统遇到服务过慢的问题,怎么优化和解决的CAPC( Consistency):一致性 A(Availability):可用性 P(Partition tolerance):分区容错性zookeeper保证了CP服务B注册到ZKLeader上,必须强制同步到ZK...

2019-11-23 16:08:46 213 2

转载 MYSQL主备数据延迟问题

主机与备机之间的物理延迟是不可控的,也是无法避免的。但是如果仅仅需要满足这种强一致性,是相对简单的事:只需要在主机写入时,确认更新已经同步到备机之后,再返回写操作成功即可。主流数据库均支持这种完全的同步模式。已经有人提到MySQL的Semi-sync功能(从MySQL5.6开始官方支持,此前的版本可以考虑Google出的非官方补丁),就是基于这种原理。不过,一般不建议使用这种同步模式。显而易见,...

2019-11-23 15:31:28 153

原创 1024程序员

1024程序员

2019-10-24 18:54:17 445

原创 【JVM】新生代 8:1:1 原因

面试的时候堆的垃圾回收是必不可少的,但是也有一部分面试官,不问你垃圾回收,问你新生代为什么是8:1:1GC是统计学测算出内存使用超过98%以上时,内存应该被minor gc时回收一次。但实际应用中,我们不能较真的只给他们留下2%,换句话说当内存使用达到98%时才GC 就有点晚了,应该是多一些预留10%内存空间。当回收时,将Eden区和Survivor from中还存活着的对象一次性复制到另一...

2019-10-12 19:43:32 1928 3

原创 synchronize和volatile的区别

前言面试的时候经常被问到synchronized与volatile的区别,你可能会奇怪他俩有什么关系吗,如果觉着关系不大,但是又不能直接说,只能回答他们的共性和区别就ok了。说到这个两个,那就不得不先说一下线程的安全保证多线程只有保证如下基本特性时才能保证安全:可见性:线程都是基于cpu的运算,cpu有缓冲区,所以每次在计算的时候都会把数据加载到缓冲区中计算,那计算好的数据最终被会写到主存...

2019-10-12 12:09:30 220

原创 UNhandled exception occurred[0xC0000005@0x6E9318F0] at PotPlayer.dll

在播放aac编码的mp4文件的时候,遇到了这个问题。解决方案选项-滤镜-视频解码器-内置解码器/DXVA设置-硬件加速(DXVA)设置使用硬件加速(DXVA)"去掉对勾不过没有了它,快进就不会瞬时更新画面。...

2019-10-10 15:06:27 19897 1

原创 动态规划

这里写自定义目录标题动态规划思想动态规划思想举一个动态规划很形象的例子,比如说小偷,他去商场偷东西,但是他的包只能装下10量()的东西,一个小手包,哈哈_,商场有很多东西,有吃的,有穿的,有戴的,小偷就该想了,偷什么才能利益最大化,当然是珠宝了,又小又贵,但是珠宝价位也不相等,所以小偷又发愁了,到底怎样偷包能塞满,利益还能最大化,小偷开始用动态规划计算了:小偷计算出来他今天最多能偷15:...

2019-08-11 21:38:52 166 1

原创 zookeeper的前世今生

目录背景zookeeper的出现分布式单点故障名字的由来作用背景zookeeper的出现分布式单点故障提到zookeeper不得不提一下分布式系统中的单点故障:通常是分布式系统采用主从模式,就是一个主控机链接多个处理节点,主节点复制分发任务,从节点负责处理任务,当我们的主节点发生故障,整个系统就会瘫痪,这就是单点故障。传统方式名字的由来作用...

2019-07-24 16:43:33 1050 4

原创 连接本地mysql时出现2003-Can‘t connect to MySql server on ‘localhost‘(10061)错误

前言 这两天打开mysql总是报错,打不开,但是瞎倒腾会又能打开了,上网查大家的解决方案吧,大家的内容有太多了,最后也不知道到底需要怎么做才能解决问题。o(╥﹏╥)o大家放心,问题已经解决了,非常简单,根本没有别人写的那么麻烦,话不多说直接上图。第一步 Windows+R电脑左下方会出现此窗口,输入services.msc回车,弹出第二个窗口,然后把mysql启动就ok了。第二步 ...

2019-07-24 08:36:54 166468 73

原创 Octotree Chrome安装与使用方法,看这一篇就够了!

Octotree Chrome安装与使用方法Octotree Chrome作用:  主要使你在github查看项目时可以清晰明了的看到项目的结构以及具体代码,使下载代码更具有目的性,减少不必要代码的下载,而且看起来更清楚。效果图怎么样,目录一目了然,跟用工具打开感觉是一样的。1.下载插件地址:https://chrome.google.com/webstore/detail/oc...

2019-07-19 21:46:21 1594 3

原创 rabbitmq的实现原理

rabbitmq是什么做什么的为什么要用它优点缺点是什么做什么的为什么要用它优点缺点

2019-07-14 19:56:37 478 7

原创 SpringBoot快速构建微服务体系

SpringBoot微服务了解微服务饮水思源:回顾与探索Spring框架的本质Spring起源了解微服务什么是微服务:其实就是服务化思路的一种最佳实践方向,主要为了倡导大家尽量将功能进行拆分,将服务粒度做小,使之可以承担对外独立服务的职责。微服务因何而生:如果遵循Monolith服务化开发阶段:大家提交代码会频繁发生冲突。软件交付阶段:需要将所有开发阶段并行开发的项目集合到一起进行交...

2019-07-07 21:38:34 275 3

原创 SpringBoot 入门

目录SpingBoot优点缺点简介微服务SpingBoot优点快速创建可独立Spring项目嵌入式Servlet容器,无需打成war包,可直接打成jar包。starters自动依赖与版本控制有大量的自动配置,简化开发,也可以修改默认值无需配置xml,无代码生成,开箱即用。准生产环境的运行时应用监控与云计算天然集成缺点入门难简介简化Spring应用开发的一个框架整个Sp...

2019-06-30 18:03:49 130 5

原创 Redis的噩梦:阻塞

阻塞发现阻塞内在原因API或数据结构使用不合理外在原因Redis是单线程架构,所有读写操作都是在一条线程中完成。当Redis用于高并发场景,这条线程就变成了他的生命线。如果出现阻塞,再短对于我们的应用都是噩梦。导致阻塞问题大致分为内在原因和外在原因:内在原因:不合理的使用API或数据结构、CPU饱和、持久化阻塞等。外在原因:CUP竞争、内在交换、网络问题等。发现阻塞当Redis阻塞时...

2019-06-15 16:39:28 190 10

原创 Redis持久化

持久化RDB触发机制流程说明bgsave主流触发RDB持久化方式,运作流程RDB文件处理RDB的优缺点AOF使用AOFAOF工作流程图命令写入文件同步重写机制Redis支持RDB和AOF两种持久化机制,持久功能有效避免因进程退出造成的数据丢失问题,当下次重启是利用之前持久化的文件即可实现数据恢复。RDBRDB持久化是把当进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动...

2019-06-14 10:57:17 108 8

Java1.6.zip

JDK全称Java Development ToolKit,是Java语言开发工具包。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

2020-03-03

RefreshEnv.zip,一键配置jdk环境变量

这段批处理脚本代码是根据我们自己设置的JDK路径,然后选择的JDK版本来动态修改JAVA_HOME环境变量的,然后RefreshEnv.exe来刷新环境变量的值。

2020-03-03

空空如也

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

TA关注的人

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