自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhengzhaoxiang的博客

当你真的爱上编程的时候,其实编程就是你的娱乐方式。

原创 Zookeeper 从入门到精通
原力计划

目录 一、Zookeeper概述 二、Zookeeper 特点 三、数据结构 四、应用场景 五、配置参数解读 六、Zookeeper 内部原理 七、节点类型 八、客户端命令行操作 九、stat结构体 十、监听器流程 十一、写数据流程 十二、API应用 一、Zookeepe...

2020-05-24 23:42:03 51 0

原创 分布式事务综合案例分析【实用篇】

目录 一、系统介绍 二、注册账号案例分析 三、存管开户 四、满标审核 五、总结 我们已经了解了四种分布式事务解决方案,2PC【链接】、TCC【链接】、可靠消息最终一致性【链接】、最大努力通知【链接】,每种解决方案我们通过案例开发进行学习,本章节我们结合互联网金融项目中的业务场景,来进行...

2020-05-20 22:23:59 56 0

原创 最大努力通知【分布式事务解决方案】

目录 一、概述 二、解决方案 三、RocketMQ实现最大努力通知型事务 四、小结 一、概述 最大努力通知也是一种解决分布式事务的方案,下面是一个充值的例子: 【交互流程】:【1】账户系统调用充值系统接口; 【2】充值系统完成支付处理向账户系统发起充值结果通知,若通知失败,则充值系统按...

2020-05-18 23:38:35 51 0

原创 可靠消息最终一致性【本地消息表、RocketMQ 事务消息方案】

2020-05-17 22:02:35 117 0

原创 IDE 解锁方法

两种方式:第一种:在线激活:填入下面的license server中输入下列任一一个地址即可  http://intellij.mandroid.cn/  http://idea.imsxm.com/  http://idea.iteblog.com/key.php第二种方式:断网激活:选中Act...

2020-05-15 11:07:40 7231 0

原创 TCC 分布式事务解决方案

一、什么是TCC事务 TCC是Try、Confirm、Cancel三个词语的缩写,TCC要求每个分支事务实现三个操作:预处理Try、确认Confirm、撤销Cancel。Try操作做业务检查及资源预留,Confirm做业务确认操作,Cancel实现一个与 Try相反的操作即回滚操作。TM首先发...

2020-05-15 00:08:27 38 0

原创 2PC(两阶段提交)【XA 与 Seata方案】

一、概述 2PC(two phase commit protocol,2PC)即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase)、提交阶段(commit phase),2指两个阶段,P指准备阶段,C指提交阶段。整个事务过程由事务管理器和参与者组成,事务管理器负...

2020-05-13 23:31:51 62 0

原创 SpringBoot 整合 Kafka 与 Avro 【No group.id】 问题解决方法

【问题描述】:ApplicationContextException: Failed to start bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'; nested e...

2020-05-13 20:22:35 94 0

原创 Kafka + SpringData + (Avro & String) 【Can't convert value of class java.lang.String】问题解决

【1】需求:Kafka 使用 Avero 反序列化对象时,同时需要接收 String 类型的 JSON数据,并对其反序列化。AvroConfig的配置信息如下: /** * @author zzx * @creat 2020-03-11-20:23 */ @Configuration @...

2020-05-13 20:16:41 37 0

原创 IDEA 默认快捷键【字典】

【1】Ctrl + Shift + F : 快速查找,类似于 eclipse 的 Ctrl + H ,但是我的基本都冲突,需要通过 Edit | Find | Find in Path 调用; 【】Ctrl + F12:显示当前类的所有方法,类似于 eclipse 的 Outline。在IDE的 ...

2020-05-10 23:10:31 80 0

原创 雪花算法 SnowFlake 内部结构【分布式ID生成策略】
原力计划

一、前言 如何在分布式集群中生产全局唯一的 ID? 【方案一】UUID:UUID是通用唯一识别码 (Universally Unique Identifier),在其他语言中也叫GUID,可以生成一个长度 32位的全局唯一识别码。UUID 虽然可以保证全局唯一,但是占32位而且无序,入库性能比...

2020-05-09 23:55:21 611 0

原创 Linux【环境 CenOS7】部分软件安装链接整理

一、开启网络 【问题】:刚安装完 CentOS,当 ping www.baidu.com 时,ping 不通; 【解决】:进入 cd /etc/sysconfig/network-scripts/ 我这里修改的是 ifcfg-ens33 文件,你我可能不同。最后执行 service networ...

2020-05-09 14:59:13 107 0

原创 ShardingSphere 数据分片之 Sharding-JDBC 深入理解
原力计划

一、概述 Sharding-JDBC 是 ShardingSphere的第一个产品,也是ShardingSphere的前身。 它定位为轻量级Java框架,在 Java的 JDBC层提供的额外服务。它使用客户端直连数据库,以 jar包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC驱动...

2020-05-08 23:41:24 198 0

原创 ElasticSearch 集群搭建【简易版】

目录 一、集群的相关概念 二、ES 集群搭建 三、ES 集群测试 ES 是一个 P2P 类型(使用 gossip 协议)的分布式系统,除了集群状态管理以外,其他所有的请求都可以发送到集群内任意一台节点上,这个节点可以自己找到需要转发给哪些节点,并且直接跟这些节点通信。所以,从网络架构及服务...

2020-05-05 19:32:06 72 0

原创 ElasticSearch 从0到1

一、简介 ElasticSearch 简称 es,Elasticsearch是一个开源的高扩展的分布式、RESTful 风格的搜索和数据分析引擎,它的底层是开源库Apache Lucene。它几乎可以实时的存储,检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据,es 也可以使...

2020-05-05 15:36:30 211 0

原创 MySQL 开发规范【X千万/表级别】

一、MySQL 开发规范概述 原则:SQL开发规范制定是基于良好的编码习惯和可读性;目的:、 二、MySQL 开发规范手册 三、MySQL 开发规范执行

2020-05-04 00:44:59 172 0

原创 MyBatisPlus 实战字典

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具包,只做增强不做改变,为简化开发工作、提高生产效率而生。【官方地址】:链接【代码发布地址】:【Github】【Gitee】 ...

2020-04-30 22:45:32 165 0

原创 【跨服务调用】msg:xxl-rpc remoting error(no protocol: 127.0.0.1:9999/run), for url

【问题描述】:msg:xxl-rpc remoting error(no protocol: 10.20.131.183:9999/run), for url : 【解决方案】:

2020-04-27 09:37:40 1520 2

原创 SpringBoot 整合 Avro 与 Kafka

2020-04-19 18:26:01 254 0

原创 Spring 提供的 BeanUtils 遇到的问题

BeanUtils 功能:这个包里比较常用的一个工具类,这里只介绍它的 copyProperties()方法。如果你有两个具有很多相同属性的JavaBean,怎可以通过该方法进行对象之间的赋值操作,如下: /** * 对象属性拷贝 <br> * 将源对象的属性拷贝到目标对象 ...

2020-04-18 21:03:29 47 0

原创 MyBatisPlus 整合 SpringBoot 遇见的问题(二)

【异常】:Cause: java.sql.SQLSyntaxErrorException: Unknown column 'udf1' in 'field list'...... SQL: SELECT id,oper_id,btch_id,udf1, FR...

2020-04-18 18:03:30 68 0

原创 MyBatisPlus 整合 SpringBoot 遇见的问题(一)

【异常】:UnsatisfiedDependencyException: Error creating bean with name 'xxx[类]': Unsatisfied dependency expressed through field 'baseMappe...

2020-04-18 16:47:31 76 0

原创 MySQL8.0 的新特性
原力计划

一、优化器索引 【1】 隐藏索引(invisible index):在 MySQL 8.0 中,索引可以被“隐藏”和“显示”。当对索引进行隐藏时,它不会被查询优化器所使用,但仍需要维护。我们可以使用这个特性用于性能调试,例如我们先隐藏一个索引,然后观察其对数据库的影响。如果数据库性能有所下降,说...

2020-04-14 23:03:24 580 0

原创 HBase 基础结构

HBase 是一个分布式[集群]、可扩展[动态上下线]、支持海量存储的 NoSQL 数据库。相当于 BigTable,负责海量数据的存储。如果数据量小的时候不适合使用 HBase,因为生产上需要不断的切分和合并比较消耗资源。如果数据量比较大,可以做到几十亿条数据秒级查询。支持数据的增删改查,实现了...

2020-04-11 23:05:37 66 0

原创 分布式事务原理【理论篇】

一、本地事务 在计算机系统中,更多的是通过计算机控制事务,这是利用数据库本身的事务特性来实现的,因此叫数据库事务,由于应用主要靠关系数据库来控制事务,而数据库通常和应用在同一个服务器,所以基于关系型数据库的事务又被称为本地事务。数据库事务的 ...

2020-04-07 23:26:17 120 0

原创 MySQL 中 EXPLAIN关键字

EXPLAIN 关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理 SQL 语句的。分析查询语句或表结构的性能瓶颈。执行语句:explain + SQL语句。表头信息如下:| 一、ID 参数 select 查询的序列号,包含一组数字,表示查询中执行 select 子句...

2020-03-29 22:14:00 109 0

原创 CPU 100%问题排查总结

排查思路 【1】定位高负载进程pid:登录进服务器使用 top命令[ps 命令]查看当前CPU消耗过高的进程,从而得到进程id。观察各个进程资源使用情况,可以看出进程id为18571的进程,有着较高的CPU占比。 【定位具体的异常业务】:使用pwdx pid 命令[查看当前 pid进程启动时的工...

2020-03-29 17:08:33 129 0

原创 Redis 管理平台

CacheCloud 提供了一个 Redis 云管理平台:实现多种类型(Redis Standalone、Redis Sentinel、Redis Cluster)自动部署、解决 Redis 实例碎片化现象、提供完善统计、监控、运维功能、减少运维成本和误操作提高机器利用率,提高灵活的伸缩性,提供方...

2020-03-22 13:13:41 130 0

原创 堆排序算法原理

一、什么是堆 【1】堆是一个完全二叉树,特点是从上往下,从左往右以次排列的; 【2】在堆的数据结构中,堆中的最大值总是位于根节点,所有父节点都满足大于等于其子节点; 我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组中就是下面这个样子 二、创建堆 【需求】:将下面的平衡二叉树,变成...

2020-03-21 22:18:41 54 0

原创 MyBatis 整体架构【基础篇】

Mybatis 的整体架构分为三层,分别是基础支持层、核心处理层和接口层。基础支持层为核心处理层的功能提供了良好的支撑。 一、基础支持层 【1】反射模块:该模块对 Java 原生的反射进行了良好的封装,提供了更加简洁的 API,方便上层调用,并且对反射操作进行了一系列优化,例如缓存类的元数据,...

2020-03-15 23:49:53 88 0

原创 数据中台-程序员篇

一、什么是数据中台 15年阿里提出了“大中台,小前台”战略,主要为了适应阿里电商业务扩大带来的数据运营工作、通过技术、组织架构变革,提升部门协作效率实现数据共享。中台有很多的概率:业务中台、数据中台、服务中台。数据中台其实是信息化时代和大数据时代的产物。中台就是通过信息化时代产生的数据,通过大数...

2020-03-12 23:02:01 174 0

原创 Kafka 物理存储机制

一个商业化消息队列的性能好坏,其文件存储机制设计是衡量一个消息队列服务技术水平和最关键指标之一。下面将从 Kafka文件存储机制和物理结构角度,分析 Kafka是如何实现高效文件存储,及实际应用效果。Kafka 的基本存储单位是分区。在配置 Kafka 的时候,管理员指定了一个用于存储分区的目录清...

2020-03-05 23:31:14 77 0

原创 Kafka 生产者写入数据

一、生产者发送消息的步骤 创建一个 ProducerRecord 对象,对象中包含目标主题和要发送的内容。还可以指定键或分区。在发送 ProducerRecord 对象时,生产者要先把键和值对象序列化成字节数组,这样它们才能够在网络上传输。接下来,数据被传给分区器。分区器直接把指定的分区返回。...

2020-03-01 23:09:37 140 0

原创 黑客攻击与反黑客防御

网站

2020-02-26 23:49:16 132 0

原创 网站故障案例总结

一、写日志引发故障 【故障现象】:应用服务集群发布后不久就出现多台服务器相继报警,硬盘可用空间低于警戒值,并且很快有服务器宕机。登录在线上服务器,发现 log 文件夹里面的文件迅速增加,不断消耗磁盘空间。 【原因分析】:这是一个普通的应用服务器集群,不需要存储数据,因此服务器使用的是一块 100...

2020-02-24 00:26:12 118 0

原创 分布式缓存的一致性 Hash 算法

目录 一、使用一致性 Hash 算法的原因 二、分布式缓存的一致性 Hash 算法 三、分布式缓存的一致性 Hash 算法存在的问题 四、分布式缓存的一致性 Hash 算法问题解决方案 一、使用一致性 Hash 算法的原因 简单的路由算法可以使用余数 Hash:用服务器数据除缓存数据 ...

2020-02-22 17:54:25 121 0

原创 网站的性能优化

如果性能测试结果不满足我们预期的需求时,检查请求处理的各个环节的日志,分析哪个环节响应时间不合理,超出预期;然后检查监控数据分析影响性能的主要因素是内存、磁盘、网络、还是 CPU,是代码问题还是架构设计不合理,或者系统资源确实不足。根据网站分成架构,可分为 Web前端性能优化,应用服务器性能优化、...

2020-02-19 22:56:41 120 0

原创 大型网站架构演化

一、大型网站软件系统的特点 【1】高并发:淘宝2019年 “双十一” 交易额2684亿,活动开始第一分钟独立访问用户达15000万。因此大型架构需要面对高并发用户,大流量访问。 【2】高可用:2010年百度域名被黑客劫持导致不能访问,对百度造成严重的损失。因此系统应当 7 * 24 小时不间断服...

2020-02-16 23:16:57 81 0

原创 Condition 接口

Java 对象拥有一组监视方法:wait()、wait(long timeout)、notify() 以及 notifyAll() 方法,这些方法与 synchronized 同步关键字配合,可以实现等待/通知模式,进行线程之间的通讯。Condition 接口也提供了类似的方法,与 Lock 配合...

2020-02-13 23:29:26 108 0

原创 MySQL 查询性能优化

目录 一、是否请求了不需要的数据 二、是否扫描了额外的记录 三、一个复杂查询 OR 多个简单查询 四、切分查询 五、分解关联查询 六、UNION 的限制 七、优化 COUNT() 查询 八、优化 LIMIT 分页 九、排序优化 十、查询状态 如果把查询看作是一个任务,那么它由...

2020-02-09 22:45:04 146 0

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