YeHongzhi's Blog 
  • 首页
  • 归档
  • 标签
  • 关于
  •     
超详细canal入门

超详细canal入门

思维导图 本文章已收录到个人博客网站(我爱B站):me.lovebilibili.com 前言我们都知道一个系统最重要的是数据,数据是保存在数据库里。但是很多时候不单止要保存在数据库中,还要同步保存到Elastic Search、HBase、Redis等等。 这时我注意到阿里开源的框架Canal,他可以很方便地同步数据库的增量数据到其他的存储应用。所以在这里总结一下,分享给各位读者参考~...
 2020-08-08   java  canal  mysql 
RabbitMQ如何防止消息丢失

RabbitMQ如何防止消息丢失

思维导图 一、分析数据丢失的原因分析RabbitMQ消息丢失的情况,不妨先看看一条消息从生产者发送到消费者消费的过程: 可以看出,一条消息整个过程要经历两次的网络传输:从生产者发送到RabbitMQ服务器,从RabbitMQ服务器发送到消费者。...
 2020-08-08   消息队列  RabbitMQ  中间件 
RabbitMQ入门

RabbitMQ入门

思维导图 一、什么是消息队列消息指的是两个应用间传递的数据。数据的类型有很多种形式,可能只包含文本字符串,也可能包含嵌入对象。 “消息队列(Message Queue)”是在消息的传输过程中保存消息的容器。在消息队列中,通常有生产者和消费者两个角色。生产者只负责发送数据到消息队列,谁从消息队列中取出数据处理,他不管。消费者只负责从消息队列中取出数据处理,他不管这是谁发送的数据。...
 2020-08-08   消息队列  RabbitMQ  中间件 
ZooKeeper入门

ZooKeeper入门

思维导图 前言在很多时候,我们都可以在各种框架应用中看到ZooKeeper的身影,比如Kafka中间件,Dubbo框架,Hadoop等等。为什么到处都看到ZooKeeper? 一、什么是ZooKeeperZooKeeper是一个分布式服务协调框架,提供了分布式数据一致性的解决方案,基于ZooKeeper的数据结构,Watcher,选举机制等特点,可以实现数据的发布/订阅,软负载均衡,命名服务,统一配置管理,分布式锁,集群管理等等。 二、为什么使用ZooKeeperZooKeeper能保证: 更新请求顺序进行。来自同一个client的更新请求按其发送顺序依次执行 数据更新原子性。一次数据更新要么成功,要么失败 全局唯一数据视图。client无论连接到哪个server,数据视图都是一致的 实时性。在一定时间范围内,client读到的数据是最新的 三、数据结构ZooKeeper的数据结构和Unix文件系统很类似,总体上可以看做是一棵树,每一个节点称之为一个ZNode,每一个ZNode默认能存储1M的数据。每一个ZNode可通过唯一的路径标识。如下图所示: 创建ZNode时,可以指定以下
 2020-07-26   java  zookeeper 
从秒杀聊到ZooKeeper分布式锁

从秒杀聊到ZooKeeper分布式锁

思维导图 前言经过《ZooKeeper入门》后,我们学会了ZooKeeper的基本用法。 实际上ZooKeeper的应用是非常广泛的,实现分布式锁只是其中一种。接下来我们就ZooKeeper实现分布式锁解决秒杀超卖问题进行展开。 一、什么是秒杀超卖问题秒杀活动应该都不陌生,不用过多解释。 不难想象,在这种”秒杀”的场景中,实际上会出现多个用户争抢”资源”的情况,也就是多个线程同时并发,这种情况是很容易出现数据不准确,也就是超卖问题。 1.1 项目演示下面使用程序演示,我使用了SpringBoot2.0、Mybatis、Mybatis-Plus、SpringMVC搭建了一个简单的项目,github地址: https://github.com/yehongzhi/mall 创建一个商品信息表: CREATE TABLE `tb_commodity_info` ( `id` varchar(32) NOT NULL, `commodity_name` varchar(512) DEFAULT NULL COMMENT '商品名称', `commodity_pr
 2020-07-26   zookeeper  分布式锁 
Netty进阶之粘包和拆包

Netty进阶之粘包和拆包

思维导图 一、什么是粘包和拆包TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。(来自百度百科) 发送端为了将多个发给接收端的数据包,更有效地发送到接收端,会使用Nagle算法。Nagle算法会将多次时间间隔较小且数据量小的数据合并成一个大的数据块进行发送。虽然这样的确提高了效率,但是因为面向流通信,数据是无消息保护边界的,就会导致接收端难以分辨出完整的数据包了。 所谓的粘包和拆包问题,就是因为TCP消息无保护边界导致的。...
 2020-07-08   java  Netty 
Netty入门

Netty入门

思维导图 前言本文主要讲述Netty框架的一些特性以及重要组件,希望看完之后能对Netty框架有一个比较直观的感受,希望能帮助读者快速入门Netty,减少一些弯路。...
 2020-07-04   java  Netty 
Reactor模式

Reactor模式

思维导图 一、Reactor模式介绍本文主要参考Doug Lea(大神)的“Scalable IO in Java”中讲述的Reactor模式。 原文地址:http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf 有兴趣的可以看看这本书,受益匪浅!...
 2020-07-01   java  NIO 
NIO入门

NIO入门

思维导图 学如逆水行舟,不进则退 1 NIO概述1.1 定义java.nio全称java non-blocking IO,是指JDK1.4 及以上版本里提供的新api(New IO) ,为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络(来源于百度百科)。...
 2020-06-25   java  NIO 
List集合的坑

List集合的坑

学如逆水行舟,不进则退 经过几年的工作经验,我发现List有很多坑,之前公司有些实习生一不小心就踩到了,所以我打算写一篇文章总结一下,希望看到这篇文章的人能不再踩到坑,代码没bug。做个快乐的程序员。...
 2020-06-21   java  集合  经验总结 
1…45678

搜索

Hexo Fluid
 总访问量 次   总访客数 人