代码编织梦想

解决分布式事务seata_残雪飞扬的博客-爱代码爱编程

背景 既然要给大家讲什么是 seata,那就得先说一下这个东西的定位,这东西就是现在很火的 Spring Cloud Alibaba 里的一个组件,是专门帮助我们解决分布式事务问题的,也就是说,seata 是一个分布式事务框架。 什么是分布式事务 那可能很多小伙伴很蒙圈了,什么是分布式事务?好吧,为了保证大家能继续看下去,我们先说一下什么是分布式

yum安装ceph报错-爱代码爱编程

yum install ceph ceph-radosgw -y 报错如下 –> 解决依赖关系完成 错误:软件包:1:ceph-radosgw-10.2.2-0.el7.x86_64 (ceph_local) 需要:libfcgi.so.0()(64bit) 错误:软件包:1:ceph-common-10.2.2-0.el7.x86_64 (cep

centos7上查看kafka-常见命令-爱代码爱编程

启动和关闭zookeeper bin/zookeeper-server-start.sh -daemon config/zookeeper.properties bin/zookeeper-server-stop.sh 启动和关闭kafkabin/kafka-server-start.sh -daemon config/server.properti

Java 并发系列(二)——Semaphore源码分析-爱代码爱编程

一、Semaphore概述 Semaphore 通常叫它信号量, 可以用来控制同时访问特定资源的线程数量,也可以用来保持资源生产者和消费者之间的资源限制关系,通过协调各个线程,以保证合理的使用资源。Semaphore 具有公平和非公平两种模式,本文通过源码对 Semaphore 的实现做简单分析。 二、使用示例 使用 Semaphore 控制最多有

Java 并发系列(一)——CountDownLatch源码分析-爱代码爱编程

一、List 概述 CountDownLatch 构造一个用给定计数初始化的并发计数器,能够协调多个线程之间的同步,当前线程在计数器倒计数至零之前一直等待,除非线程被中断。一般用于流程控制之类的场景,大流程分成多个子流程,子流程全部结束后大流程开始操作。 二、使用示例 使用 CountDownLatch 控制主线程等待所有子线程执行完成之后继续执行。

Java 锁系列(七)——StampedLock源码分析-爱代码爱编程

一、StampedLock概述 StampedLock 是读写锁的实现,对比 ReentrantReadWriteLock 主要不同是该锁不允许重入,多了乐观读的功能,使用上会更加复杂一些,且仅支持非公平锁,但是具有更好的性能表现。StampedLock 的状态由版本和模式组成。 获取锁方法返回一个邮戳,表示和控制与锁状态相关的访问; 这些方法的“尝试”

Java 锁系列(五)——ReentrantReadWriteLock源码分析-爱代码爱编程

一、ReentrantReadWriteLock概述 ReentrantReadWriteLock 是读写锁的实现,读锁可以在没有写锁的时候被多个线程同时持有,写锁就是和 ReentrantLock 类似的独占锁,它同样有包含公平锁和不公平锁两种实现方式,在实例化时将同时实例化 ReadLock 和 WriteLock 实例,本文主要聚焦于 WriteL

Java 锁系列(四)——ReentrantLock源码Condition实现分析-爱代码爱编程

一、Condition 概述 Condition 是个接口,依赖于 Lock 接口的实现,基本的方法就是 await() 和 signal() 方法,是在 java 1.5 中才出现的,用于替代 Object 的 wait()、notify() 实现线程间的协作,相比使用 Object 的 wait()、notify(),使用 Condition 的 a

Java 锁系列(三)——ReentrantLock源码分析-爱代码爱编程

一、ReentrantLock 概述 ReentrantLock 是一个可重入的独占锁,是基于 AQS(AbstractQueuedSynchronized,抽象队列式同步器)实现的,它有公平锁和不公平锁两种实现方式。简单查看源码,可以发现 ReentrantLock 其实是一个代理的模式,Reentranlock 的核心是其内部继承自 Abstract

面试题锦---爱代码爱编程

1、JAVA基础 异常分类 分为两大类 Error:java运行时系统的内部错误和资源消耗尽错误,一旦出现这种错误,那就得停止服务了Exception:分为编译器报错CheckedException(受检异常/可捕获异常)、运行时报错RuntimeException(非受检异常/运行时异常)RuntimeException: I/O导致的IOExce

Java 锁系列(二)——ReentrantLock 和 ReadWriteLock基础运用-爱代码爱编程

Lock 接口提供了与 synchronized 相似的功能,和 synchronized 不同的是,Lock 在使用的时候需要显示的获取和释放锁。虽然牺牲了隐式获取释放锁的便捷性,但是对于锁的操作具有更强的可操作性、可控制性以及提供可中断操作和超时获取锁等机制。本文将描述 ReentrantLock 和 ReadWriteLock 锁的基础使用。 一、

Java 锁系列(一)——锁分类和基础概述-爱代码爱编程

在多线程在获取资源的时候,锁用于保证资源获取的有序性和占用形,可以控制多个线程访问共享资源的顺序。Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对 java 主流的锁进行分类,梳理锁相关的基础知识。 一、乐观锁和悲观锁 乐观锁和悲观锁从看待并发问题的不同角度延伸出来的锁概念。 1.1 乐观锁 乐观的

三句话搞懂 Redis 缓存穿透、击穿、雪崩!-爱代码爱编程

前言 如何有效的理解并且区分 Reids 穿透、击穿和雪崩之间的区别,一直以来都挺困扰我的。特别是穿透和击穿,过一段时间就稀里糊涂的分不清了。 为了有效的帮助笔者自己,以及拥有同样烦恼的朋友们区分这三种场景。笔者总结了一些关键词,希望大家可以和我一样通过联想的方式来区分并理解这三种场景的区别! 缓存穿透 关键词:穿透过 Redis 和数据库 当

Windows环境下安装Redis-爱代码爱编程

下载地址: Releases · microsoftarchive/redis · GitHub Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 D 盘redis文件夹下。 下载地址,提供多种下载内容, Redis-x64-3.2.100.msi是在windows

Launch Seata Searvice-爱代码爱编程

序言 根据Seata的流程图我们可以看到,他有个事务协调器(即TC),该协调器类似于我们的消息队列.是需要单独部署的[email protected] 针对版本为:1.4.0 如下图所示: 环境角色 Seata分TC、TM和RM三个角色. 在Seata的环境中TC想当时Service服务器,TM和RM相对于TC是Client

Build SpringCloud Projects With Seata-爱代码爱编程

序言 Jta+Atomikos 是传统的多数据源的分布式处理方案. 而Seata是分布式的处理方案.且像阿里自己说的双11的抢购都是它解决的. 官网:https://seata.io/zh-cn/docs/overview/what-is-seata.html 事务模式 seata的事务类型支持的种类有: AT:主打模式TCCSAGA  X

The Solution Of Distributed Transaction-爱代码爱编程

序言 整理下分布式事务的解决方案 2PC 2PC(two-phase commit protocol)即两阶段提交.2pc是一个非常经典的强一致、中心化的原子提交协议。 中心化的意思就是,皇权集中于一人之手,其它的都是参与者.比如kafka集群.所有的信息都放置在zookeeper上,kafka只是提供服务. 同理2PC中有个协调者,用于管理所

Distributed Transaction On Spring Boot With Atomikos-爱代码爱编程

序言 现在的分布式事务处理不在需要依赖容器了~~~当年的分布式事务我还是基于Jboss和Weblogic作为事务协调器来处理. JTA,即Java Transaction API,JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大地增强了数据访问能力。JTA 为 J2EE 平台提供

Kafka batch processing-爱代码爱编程

序言 批量处理的添加域参数设置,也算是kafka调优的一种切入点[email protected] 添加批处理来提升任务处理效率。具体针对批量处理的一些参数设置,来进一步优化处理任务的效率。(kafka的服务的参数配置种类很多,有很多参数配置的技术点还是挺深的,但是我们可以根据批处理的参数设置为切入点,熟悉了解全面的参数设置cuiyaonan2

AOF&RDB-爱代码爱编程

序言 主要用于查看不同备份模式可以调优的一些方式. RDB: Redis服务器在规定时间内将内存中的数据保存到指定路径的文件中,服务器重启的时候直接将RDB文件读取到内存中AOF:Redis服务器以日志的形式追加所有的REDIS操作,服务器重启的时候读取AOF文件依次执行一遍.关于RDB最主要的问题是在备份的时候.RDB备份需要fork一个线程处理,所