自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RocketMQ 中DLedger框架 基于Raft算法实现选主及日志同步

broker 在集群模式下,需要实现两个功能点:1、多节点broker之间commitLog 日志文件内容同步;无论是 写主读从,一写多读,多主模式等。 同一个group内 master-slave 集群内,数据需要同步2、能够自动容灾,即主节点挂了之后能够自动产生新的主节点,不影响对外提供服务数据同步:传统 Mater/Slave 模式就可以支持自动选主及切换: Zookeeper组件, 以及基于Raft等 分布式一致性算法实现。基于zookeeper组件,需要额外部署zk集群

2022-01-06 14:45:14 2097

原创 浅谈RocketMQ 原理-源码流程

官网:http://rocketmq.apache.org/### 背景#### 1、为什么使用 MQMQ 的作用:1)削峰填谷2) 异步处理3) 系统解耦#### 2、 为什么使用rocketMQ​ 早期阿里曾经基于ActiveMQ研发消息系统, 随着业务消息的规模增大,瓶颈逐渐显现,后来也考虑过Kafka,但因为在低延迟和高可靠性方面没有选择,最后才自主研发了RocketMQ, 各方面的性能都比目前已有的消息队列要好,RocketMQ和Kafka在概念...

2021-06-19 17:31:38 181

原创 分布式环境下唯一ID生成

背景在分布式系统中,部分业务场景以及技术场景下,往往需要对大量的数据或者消息或者请求做唯一标识。如订单系统订单号,处理请求时防止重复请求幂等过滤标识,业务分表之后,依旧通过唯一的业务id标识等等满足业务场景,ID有何要求:1、全局唯一性,唯一ID需满足唯一不重复2、趋势递增:如将生成的ID用作数据库主键时,由于MySql的innodb存储引擎使用聚集索引,所以当数据表主键为趋势递增数据时,插入数据时,调整较小。提高写入性能。3、单调递增:保证下一个ID一定大于上一个ID,例如事务版本号、

2020-10-27 17:51:16 225

原创 线程池, 参数设置计算

线程池的好处及参数解析ThreadPoolExecutor:多线程执行;无需频繁创建销毁线程; 阻塞队列+最大线程设计 : 削峰填谷 /** * @param corePoolSize 核心线程数 * @param maximumPoolSize 最大线程数 * @param keepAliveTime 大于核心线程数的空闲线程存活时间 * @param unit 时间单位 * @param workQueue 阻塞队列 * ...

2020-10-23 18:04:09 1052 2

原创 分布式事务概述及比较,tcc-transaction框架核心流程解析

分布式事务框架 tcc-transaction背景场景1: 企业版需一周内需要上线一个需求。需要 服务端,前端,测试参与。 服务端开发两天完成,前端开发两天完成,但是测试这周排期满了,没有时间测试,那这个需求上线不了。场景2: 小明需要将A银行卡里的钱,转到B银行。A银行系统扣款成功,B银行入账失败。场景3: 小王喜欢小唐,但是小唐父母觉得女儿需要个房子住。他们先结婚,几年后再买房。最终小两口还是有房子住概念什么是事务事务(Transaction),一般是指要做的或所做的事情,

2020-09-03 15:44:05 847 1

原创 MAC上mysql安装、启停服务及连接使用

安装一、下载安装包并安装可在官网下载安装包后,正常进行安装。安装完之后,将mysql添加到path中,如:PATH=$PATH:/usr/local/mysql/binexport PATH二、使用homebrew安装可执行以下命令进行安装brew install mysql(安装brew参照 https://github.com/Homebrew...

2019-05-12 11:01:29 313

原创 分布式锁的几种实现-附代码

锁的作用锁的正确使用,可以保证多线程(本地多线程或者多机多节点多线程)情况下程序的效率及正确性。效率:多线程不会做重复的工作。正确性:多线程对同一数据的操作不会出现预期之外的结果。保证共享资源数据的一致性,可以是同一时间控制一个或者几个线程才能访问或者修改共享资源。本地程序中,锁的实现可以是JVM上一块资源即线程间共享的资源,多线程来竞争。如AQS中state;JUC 包下的同...

2019-03-07 19:59:07 635

原创 PPT在线预览 转换为图片实现方案 Apache POI 实现时踩坑:含嵌入文件ppt转换报错 ArrayStoreException

前言背景:最近项目需要实现PPT预览功能,以及项目APP上浏览ppt,初步方案是ppt转为图片。实现1、ppt转为pdf,然后pdf转为图片该种实现,先将ppt转为pdf文件,实现方式有很多,可参考之前文章 文档在线预览,将文档转为pdf然后实现将pdf转为图片,实现方式有很多,这里介绍其中一种, apache pdfbox ,具体如下:maven依赖: ...

2018-11-06 19:06:55 3038 8

原创 MAC OS 安装rabbitmq+spring boot使用及踩坑 AmqpIOException: java.io.IOException

前言项目中需要使用RabbitMQ的,且需要大量测试,于是初学本机安装测试使用,简单记录,及很蠢的坑。参考了很多博客,侵删!MAC OS上安装可官网下载:http://www.rabbitmq.com/download.html也可以在mac终端上使用brew安装:brew更新brew安装rabbitmq安装完之后一般位置在:/usr/local/Cellar/rabb...

2018-07-26 20:22:33 2990 2

原创 文档在线预览方案

前言现有文档在线预览一般有两种方案:1、直接购买第三方成熟方案(如永中dcs,I DOC VIEW);2、利用第三方jar包自行开发。下面主要展开自行开发方案。主要步骤 流程  一般最简单的流程为,先上传文档获取文件源,然后再进行文档转换,最后前端展示转换后的文档。一、文档上传1)controller 层可以使用 MultipartFile 接收多个文件流,然...

2018-07-20 09:58:21 7443 2

原创 Jboss下使用spring配置实现JTA全局事务管理(下)

前言上一篇初步简单实现事务管理,只是针对单数据源实现,对单数据源内的操作能够回滚。出现多个数据源,且多个数据源的操作出现在同一个service方法中时,不能实现多个数据源操作同时回滚,本篇将介绍简单实现jta全局事务。JBoss下配置数据源应用服务器下配置数据源,项目中通过jndi方式引入,这里以jboss为例,配置 standalone.xml ,设置数据源url,usern

2017-05-12 09:26:09 894

原创 Jboss下使用spring配置实现JTA全局事务管理(上)

引言:事务(Transaction)的实现能够保证一系列数据库等操作的原子性,即要么全部都成功,要么全部都失败。保证ACID特性在许多项目中尤其是联机交易、银行、电商等项目显得尤为重要。最近因项目要求,对事务进一步学习,以下是个人一些理解及部分代码。欢迎不吝赐教、指正。单数据源事务:1.JDBC事务部分项目JDBC事务是通过代码层面实现,代码层面管理数据库连接,获取conn

2017-05-11 16:20:07 1043

原创 log4j根据变量动态生成文件名

log4j根据变量动态生成文件名

2015-10-14 16:11:05 9140

空空如也

空空如也

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

TA关注的人

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