![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 81
客 人
这个作者很懒,什么都没留下…
展开
-
基于RocketMQ分布式事务 - 完整示例
之前我们说到,分布式事务是一个复杂的技术问题。没有通用的解决方案,也缺乏简单高效的手段。不过,如果我们的系统不追求强一致性,那么最常用的还是最终一致性方案。今天,我们就基于RocketMQ来实现消息最终一致性方案的分布式事务。本文代码不只是简单的demo,考虑到一些异常情况、幂等性消费和死信队列等情况,尽量向可靠业务场景靠拢。另外,在最后还有《RocketMQ技术内幕》一书中,关于分布式事务示例代码的错误流程分析,所以篇幅较长,希望大家耐心观看。目前已经完成了订单服务的业务逻辑。转载 2023-08-24 21:52:55 · 653 阅读 · 0 评论 -
线程池的执行原则及配置参数详解
池是一种非常优秀的设计思想,通过建立池可以有效的利用系统资源,节约系统性能。Java 中的线程池就是一种非常好的实现,从 JDK 1.5 开始 Java 提供了一个线程工厂 Executors 用来生成线程池,通过 Executors 可以方便的生成不同类型的线程池。但是要更好的理解使用线程池,就需要了解线程池的配置参数意义以及线程池的具体工作机制。下面先介绍一下线程池的好处以及创建方式,接着会着重介绍关于线程池的执行原则以及构造方法的参数详解。线程池的好处引用自并发编程网 - ifeve.c.转载 2020-06-12 09:41:38 · 653 阅读 · 0 评论 -
分布式事务的四种解决方案
分布式事务指事务的操作位于不同的节点上,需要保证事务的 AICD 特性。转载 2023-08-24 21:13:23 · 147 阅读 · 0 评论 -
史上最简单的 SpringCloud 教程 | 终章
转载请标明出处:http://blog.csdn.net/forezp/article/details/70148833本文出自方志朋的博客错过了这一篇,你可能再也学不会 Spring Cloud 了!Spring Boot做为下一代 web 框架,Spring Cloud 作为最新最火的微服务的翘楚,你还有什么理由拒绝。赶快上船吧,老船长带你飞。终章不是最后一篇,它是一个转载 2017-12-05 08:56:48 · 897 阅读 · 1 评论 -
linux 挂载和网络命令
一、挂载二、网络原创 2017-07-09 20:59:27 · 251 阅读 · 0 评论 -
linux 系统管理
原创 2017-07-24 16:13:02 · 228 阅读 · 0 评论 -
java 什么情况下触发gc java gc触发时机
在发生Minor GC之前,虚拟机会先检查老年代最大可用的连续空间是否大于新生代所有对象的总空间。如果允许,那么会继续检查老年代最大可用的连续空间是否大于历次晋升到老年代对象的平均大小,如果大于则尝试Minor GC(如果尝试失败也会触发Full GC),如果小于则进行Full GC。concurrent mode failure是在执行CMS GC的过程中同时有对象要放入老年代,而此时老年代空间不足造成的(有时候“空间不足”是CMS GC时当前的浮动垃圾过多导致暂时性的空间不足触发Full GC)。转载 2023-08-24 00:20:03 · 218 阅读 · 0 评论 -
full gc的触发条件
首先看java堆的模型:新生代 80%的eden区和两个各10%的suvivor区。首先,在程序不断运行过程中新建的对象都在Eden区,当Eden满后,做monir GC,将存活的对象放到Survivor1。当Eden和Survivor1都满后做minor GC放到Survivor2。当Eden和Survivor2都满后再做minor GC,将存活对象放到Survivor1。如此反复。转载 2023-08-24 00:10:17 · 261 阅读 · 0 评论 -
Java内存分配和回收策略以及MinorGC、MajorGC、FullGC
从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC,也叫Young GC。因为Java对象大多具备朝生夕死的特征,所以MinorGC非常频繁,一般回收速度也比较快。一般采用复制算法。Minor GC触发条件Eden区域满了新生对象需要分配到新生代的Eden,当Eden区的内存不够时需要进行MinorGC。转载 2023-08-23 23:12:02 · 156 阅读 · 0 评论 -
实战项目中Java heap space错误的解决
新生代的GC(Minor GC):新生代通常存活时间较短基于Copying算法进行回收,所谓Copying算法就是扫描出存活的对象,并复制到一块新的完全未使用的空间中,对应于新生代,就是在Eden和FromSpace或ToSpace之间copy。老年代的GC(Major GC/Full GC):老年代与新生代不同,老年代对象存活的时间比较长、比较稳定,因此采用标记(Mark)算法来进行回收,所谓标记就是扫描出存活的对象,然后再进行回收未被标记的对象,“蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也。转载 2023-08-23 22:32:50 · 822 阅读 · 0 评论 -
mysql,oracle,sql server中的默认事务隔离级别查看,更改
转载自。转载 2023-08-18 17:21:25 · 92 阅读 · 0 评论 -
Hystrix服务熔断
2 人赞同了该文章目录收起一、Hystrix服务熔断二、断路器三个重要参数1、快照时间窗2、请求总数阈值3、错误百分比阈值三、Hystrix服务熔断配置1、引入Hystrix依赖2、启动类添加激活注解3、yml4、业务类处理四、Hystrix断路器开启或者关闭的条件Hystrix关键特性:服务降级、服务熔断、服务限流。转载 2023-08-17 17:26:12 · 202 阅读 · 0 评论 -
分布式事务
前言最近很久没有写博客了,一方面是因为公司事情最近比较忙,另外一方面是因为在进行CAP的下一阶段的开发工作,不过目前已经告一段落了。接下来还是开始我们今天的话题,说说分布式事务,或者说是我眼中的分布式事务,因为每个人可能对其的理解都不一样。分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免,本文就分布式事务来简单聊一下。数据库事务在说分布式事务之前,我们先从数据库事务说起。 数据库事务可能大家都很熟悉,在开..转载 2020-06-09 18:03:32 · 176 阅读 · 0 评论 -
Eureka和ZooKeeper的区别
首先我们先说下:RDBMS==>(MySql,Oracle,SqlServer等关系型数据库)遵循的原则是:ACID原则(A:原子性。C:一致性。I:独立性。D:持久性。)。NoSql==>(redis,Mogodb等非关系型数据库)遵循的原则是:CAP原则(C:强一致性。A:可用性。P:分区容错性)。在分布式领域有一个很著名的CAP定理:C:数据一致性。A:服务可用性。P:分区容错性(服务对网络分区故障的容错性)。在这个特性中任何分布式系统只能保证两个。CAP...转载 2020-06-08 20:36:40 · 393 阅读 · 0 评论 -
REDIS缓存穿透,缓存击穿,缓存雪崩原因+解决方案
一、前言在我们日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一些商品抢购的情景,或者是主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度比较慢的问题而存在严重的性能弊端,一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读/写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,最终导致服务宕机的严重生产问题。为了克服上述的问转载 2020-05-16 14:06:24 · 271 阅读 · 0 评论 -
SpringCloud面试题及答案
1. 什么是 spring cloud?spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。2. spring cloud 断路器的作用是什么?在分布式架构中,断路器模式的作用也是类似的,当某个服务单元发生故障(类似用电器发生短路)之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回转载 2020-07-01 00:57:56 · 666 阅读 · 0 评论 -
Redis模式对比:主从模式 VS 哨兵sentinel模式 VS Redis cluster模式
推荐观看:十年架构师实战Redis—用Redis实现:秒杀/抢购/排行榜/推荐系统/抽奖系统!从Redis到分布式架构,通过Redis学AKF划分原则、CAP定理!www.bilibili.com/video/BV1Wt4y1Q7mA模式类型主从模式(redis2.8版本之前的模式)、哨兵sentinel模式(redis2.8及之后的模式)、redis cluster模式(redis3.0版本之后)主从模式原理同Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也转载 2021-08-05 20:25:58 · 996 阅读 · 0 评论 -
多线程总结
一、进程与线程1.进程:系统进行资源分配和调度的一个独立单位。可以通过Runtime.exec()或ProcessBuilder的start方法创建进程 线程:线程是程序执行流的最小单位。继承Thread或实现Runnble接口 1.1 线程thread的方法:start(),stop(),run(),join() 其他线程等待,执行当前线程,直至结束,sleep() 调用该方...原创 2018-07-09 21:26:17 · 762 阅读 · 0 评论 -
jvm总结
一、JVM结构JVM是可运行Java代码的假想计算机1.1 类加载器1.2执行引擎:执行包在装载类的方法中的指令,也就是方法,class文件是否可运行,由执行引擎决定1.3 本地库接口:融合不同的编程语言为Java所用1.4运行数据区 1.4.1本地方法栈:登记native方法,在Execution Engine执行时加载native libraies...原创 2018-07-12 22:57:19 · 230 阅读 · 0 评论 -
集合框架总结
一、集合框架1.1Collection和Collections的区别: Collection是集合类的上级接口,继承他的接口主要有Set和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化collections.synchronizedCollection(Collection c)...原创 2018-07-16 23:06:54 · 223 阅读 · 0 评论 -
数据结构和算法总结
一、二叉查找树也称有序二叉树,它是指一棵空树,或者满足以下性质的树:若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 任意节点的左、右子树也分别为二叉查找树。 没有键值相等的节点(noduplicatenodes)二叉查找树的高度为lgn,时间复杂度为O(lgn),最坏情况是退化成一条链表...原创 2018-07-22 20:40:46 · 200 阅读 · 0 评论 -
redis总结
一、介绍基于内存的key-value数据库,消除了磁盘I/0的影响 定期异步操作把数据库数据flush到硬盘上进行保存。每秒可以处理超过 10万次读写; redis是单进程单线程的 单个value的最大限制是1GB ,memcached的value最大为1M二、优缺点速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) 支...原创 2018-07-23 22:59:10 · 576 阅读 · 0 评论 -
zookeeper总结
一、Zookeeper介绍 分布式协调服务。集群的管理者,监视着集群中各个节点的状态,根据节点提交的反馈进行下一步合理操作二、Zookeeper文件系统 Zookeeper提供一个多层级的节点命名空间(节点称为znode)。与文件系统不同的是,这些节点都可以设置关联的数据,而文件系统中只有文件节点可以存放数据而目录节点不行。 Zookeeper为了保证高吞吐和低延迟,在...原创 2018-07-28 21:09:40 · 514 阅读 · 0 评论 -
dubbo总结
一、介绍 Dubbo是一个分布式服务架构,致力于提供高性能和透明化的PRC远程服务调用方案,以及SOA服务治理方案(面向服务的架构,它将应用程序的不同服务通过这些服务之间定义良好的接口和契约联系起来),二、RPC(远程过程调用)与RMI(远程方法调用)的区别1:方法调用方式不同:RMI中是通过在客户端的stub对象作为远程接口进行远程方法的调用。每个远程方法都具有方法签...原创 2018-07-30 22:30:09 · 457 阅读 · 0 评论 -
Netty总结
一、IO模型阻塞IO(bloking IO):优点:能够及时返回数据,无延迟;方便调试;缺点:需要付出等待的代价 非阻塞IO(non-blocking IO):优点:不需要等待任务 ,而是把时间花费到其它任务上,也就是这个当前线程同时处理多个任务;缺点:导致任务完成的响应延迟增大,因为每隔一段时间才去执行询问的动作,但是任务可能在两个询问动作的时间间隔内完成,这会导致整体数据吞吐量的降低 ...原创 2018-07-31 21:54:29 · 976 阅读 · 0 评论 -
Nginx总结
一、介绍 Nginx是一个高性能的HTTP和反向代理服务器,及电子邮件(IMAP/POP3)代理服务器,同时也可以作为负载均衡器二、Nginx与Apache优缺点比较通用的方案是,前端 nginx 抗并发,后端 apache 集群,配合起来会更好优点:静态处理性能比 apache 高三倍以上 nginx 配置简洁,而且改完配置能使用 -t 测试配置有没有问题,apache...原创 2020-03-22 13:58:33 · 1178 阅读 · 1 评论 -
kafka总结
一、为什么需要消息系统解耦:允许你独立的扩展或修改两边的处理过程 异步通信:很多时候,用户不想也不需要立即处理消息。消息队列提供了异步处理机制 缓冲:有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况 顺序保证 灵活性和峰值处理能力 冗余:消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险 可恢复性:即使一个处理消息的进程...原创 2020-03-22 13:57:47 · 742 阅读 · 0 评论 -
网络知识总结
一、TCP和UDP的区别TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。 UDP数据传输快,但安全性却一般 TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报 TCP对应的协议和UDP对应的协议不同TCP对应的协议:FTP:定义了文件传输协议,使用21端口 Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份...原创 2020-03-22 13:57:28 · 649 阅读 · 0 评论 -
spring总结
一、SpringMVC工作原理用户发送请求至web服务器,web服务器根据web.xml配置匹配到DispatcherServlet。 DispatcherServlet会根据HandlerMapping、HandlerAdapter会找到对应的Handler处理器 Handler处理器处理请求后返回ModelAndView逻辑视图给DispatcherServlet,Dispatcher...原创 2020-03-22 13:56:36 · 452 阅读 · 1 评论 -
Mysql总结
一、关系型数据库与非关系型数据库(Nosql)关系型数据库有Oracle、mysql、SQLite等;非关系型数据库有MongoDb、redis、HBase等区别:关系型数据库,是指采用了关系模型来组织数据的数据库,关系模型指的就是二维表格模型,最大特点就是事务的一致性。非关系型数据库使用键值对存储数据,一般不支持ACID特性 关系型数据库支持SQL。非关系型数据库不提供sql支持...原创 2020-03-22 13:56:58 · 431 阅读 · 0 评论