关老头
码龄7年
关注
提问 私信
  • 博客:175,283
    175,283
    总访问量
  • 113
    原创
  • 2,244,421
    排名
  • 7
    粉丝
  • 0
    铁粉

个人简介:既可以朝九晚五,又能浪迹天涯的人。

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:河南省
  • 加入CSDN时间: 2017-09-30
博客简介:

weixin_40461030的博客

查看详细资料
个人成就
  • 获得55次点赞
  • 内容获得15次评论
  • 获得199次收藏
  • 代码片获得459次分享
创作历程
  • 37篇
    2023年
  • 6篇
    2022年
  • 7篇
    2021年
  • 28篇
    2020年
  • 44篇
    2019年
成就勋章
TA的专栏
  • 问题
    7篇
  • RocketMQ从入门到精通
    6篇
  • Redis从入门到精通
    8篇
  • Zookeeper从入门到精通
    8篇
  • 性能调优-JVM
    15篇
  • 区块链
  • Java虚拟机
    4篇
  • springboot
    1篇
  • 前端
    1篇
  • 前端工具使用
    2篇
  • Java
    13篇
  • 数据库
    12篇
  • docker
    6篇
  • JavaScript
    11篇
  • IntelliJ IDEA
    5篇
  • 运维
    5篇
  • Java异常
  • spring异常
    2篇
  • Maven
    4篇
  • eclipse
    3篇
  • spring
    10篇
  • mybatis
  • 项目管理
    2篇
  • SFTP
  • spring专题
    1篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

351人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

05-RocketMQ实践问题

完整分析过后,整个RocketMQ消息零丢失的方案其实挺简单生产者使用事务消息机制。Broker配置同步刷盘+Dledger主从架构消费者不要使用异步消费。整个MQ挂了之后准备降级方案那这套方案是不是就很完美呢?其实很明显,这整套的消息零丢失方案,在各个环节都大量的降低了系统的处理性能以及吞吐量。在很多场景下,这套方案带来的性能损失的代价可能远远大于部分消息丢失的代价。所以,我们在设计RocketMQ使用方案时,要根据实际的业务情况来考虑。
原创
发布博客 2023.10.12 ·
195 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

04-RocketMQ源码解读

这一部分,我们开始深入RocketMQ的源码。源码的解读是个非常困难的过程,每个人的理解程度都会不一样,也不太可能通过讲解把其中的细节全部讲明白。我们今天在解读源码时,采取逐层抽取的模式,希望能够给大家形成一个源码解读的大框架,帮助大家对源码形成自己的理解。
原创
发布博客 2023.10.12 ·
280 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

03-RocketMQ高级原理

前面的部分我们都是为了快速的体验RocketMQ的搭建和使用。这一部分,我们慢下来,总结并学习下RocketMQ底层的一些概念以及原理,为后面的深入学习做准备。
原创
发布博客 2023.10.11 ·
143 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

RocketMQ从入门到精通汇总

RocketMQ是由阿里捐赠给Apache的一款低延迟、高并发、高可用、高可靠的分布式消息中间件。经历了淘宝双十一的洗礼。RocketMQ既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。
原创
发布博客 2023.10.11 ·
112 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

02-RocketMQ开发模型

SpringBoot 引入org.apache.rocketmq:rocketmq-spring-boot-starter依赖后,就可以通过内置的RocketMQTemplate来与RocketMQ交互。相关属性都以rockemq.开头。具体所有的配置信息可以参见org.apache.rocketmq.spring.autoconfigure.RocketMQProperties这个类。
原创
发布博客 2023.10.11 ·
102 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

01-RocketMQ整体理解与快速实战

MQ:MessageQueue,消息队列。队列,是一种FIFO 先进先出的数据结构。消息由生产者发送到MQ进行排队,然后按原来的顺序交由消息的消费者进行处理。QQ和微信就是典型的MQ。异步例子:快递员发快递,直接到客户家效率会很低。引入菜鸟驿站后,快递员只需要把快递放到菜鸟驿站,就可以继续发其他快递去了。客户再按自己的时间安排去菜鸟驿站取快递。异步能提高系统的响应速度、吞吐量。解耦。
原创
发布博客 2023.10.11 ·
111 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis从入门到精通

一个充满活力的开源数据库。
原创
发布博客 2023.10.10 ·
117 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Zookeeper从入门到精通

Zookeeper 是一个开源的分布式协调服务,目前由 Apache 进行维护。Zookeeper 可以用于实现分布式系统中常见的发布/订阅、负载均衡、命令服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
原创
发布博客 2023.10.10 ·
285 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

07-Zookeeper分布式一致性协议ZAB源码剖析

ZAB 协议全称:Zookeeper Atomic Broadcast(Zookeeper 原子广播协议)。Zookeeper 是一个为分布式应用提供高效且可靠的分布式协调服务。在解决分布式一致性方面,Zookeeper 并没有使用 Paxos ,而是采用了 ZAB 协议,ZAB是Paxos算法的一种简化实现。ZAB 协议定义:ZAB 协议是为分布式协调服务 Zookeeper 专门设计的一种支持 崩溃恢复 和 原子广播 的协议。下面我们会重点讲这两个东西。
原创
发布博客 2023.10.10 ·
251 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

06-Zookeeper选举Leader源码剖析

整个zookeeper选举底层可以分为选举应用层和消息传输层,应用层有自己的队列统一接收和发送选票,传输层也设计了自己的队列,但是按发送的机器分了队列,避免给每台机器发送消息时相互影响,比如某台机器如果出问题发送不成功则不会影响对正常机器的消息发送。开源项目找入口类一般都是从启动脚本去找,可以从bin目录下的zkServer.sh或zkServer.cmd里找到启动主类运行即可。将conf文件夹里的zoo_sample.cfg文件复制一份改名为zoo.cfg,将zoo.cfg文件位置配置到启动参数里。
原创
发布博客 2023.10.09 ·
379 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

05-Zookeeper典型使用场景实战

这个时候我们可以借助于Zookeeper的基本特性来实现一个注册中心,什么是注册中心,顾名思义,就是让众多的服务,都在Zookeeper中进行注册,啥是注册,注册就是把自己的一些服务信息,比如IP,端口,还有一些更加具体的服务信息,都写到 Zookeeper节点上, 这样有需要的服务就可以直接从zookeeper上面去拿,怎么拿呢?不然数据就不一致了。如果已经有人在写数据了,再来一个请求写数据,也是不允许的,这样也会导致数据的不一致,所以所有的写请求,都需要加一个写锁,是为了避免同时对共享数据进行写操作。
原创
发布博客 2023.09.27 ·
712 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

04-Zookeeper集群详解

创建四个文件夹/usr/local/data/zookeeper-1,/usr/local/data/zookeeper-2,/usr/local/data/zookeeper-3,/usr/local/data/zookeeper-4,在每个目录中创建文件myid 文件,写入当前实例的server id,即1,2,3,4。E: 角色, 默认是 participant,即参与过半机制的角色,选举,事务请求过半提交,还有一个是observer, 观察者,不参与选举以及过半机制。从而实现集群的动态变更.
原创
发布博客 2023.09.27 ·
245 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

03-Zookeeper客户端使用

Curator 是一套由netflix 公司开源的,Java 语言编程的 ZooKeeper 客户端框架,Curator项目是现在ZooKeeper 客户端中使用最多,对ZooKeeper 版本支持最好的第三方客户端,并推荐使用,Curator 把我们平时常用的很多 ZooKeeper 服务开发功能做了封装,例如 Leader 选举、分布式计数器、分布式锁。这就减少了技术人员在使用 ZooKeeper 时的大部分底层细节开发工作。
原创
发布博客 2023.09.27 ·
1037 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

01-Zookeeper特性与节点数据类型详解

官方文档上这么解释zookeeper,它是一个分布式协调框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
原创
发布博客 2023.09.26 ·
440 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

02-Zookeeper实战

如下对/test 节点进行递归监听,但是每个目录下的目录监听也是一次性的,如第一次在/test 目录下创建节点时,触发监听事件,第二次则没有,同样,因为时递归的目录监听,所以在/test/sub0下进行节点创建时,触发事件,但是再次创建/test/sub0/subsub1节点时,没有触发事件。事务日志是更全面的数据,所以恢复数据的时候,可以先恢复快照数据,再通过增量恢复事务日志中的数据即可。针对目录的监听,如下图,目录的变化,会触发事件,且一旦触发,对应的监听也会被移除,后续对节点的创建没有触发监听事件。
原创
发布博客 2023.09.26 ·
297 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

07-Redis缓存设计

以上我们针对的都是读多写少的情况加入缓存提高性能,如果写多读多的情况又不能容忍缓存数据不一致,那就没必要加缓存了,可以直接操作数据库。当然,如果数据库抗不住压力,还可以把缓存作为数据读写的主存储,异步将数据同步到数据库,数据库只是作为数据的备份。放入缓存的数据应该是对实时性、一致性要求不是很高的数据。切记不要为了用缓存,同时又要保证绝对的一致性做大量的过度设计和控制,增加系统复杂性!
原创
发布博客 2023.09.14 ·
294 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

06-Redis缓存高可用集群

在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般,特别是在主从切换的瞬间存在访问瞬断的情况,而且哨兵模式只有一个主节点对外提供服务,没法支持很高的并发,且单个主节点内存也不宜设置得过大,否则会导致持久化文件过大,影响数据恢复或主从同步的效率。不足在于所有的元数据的更新压力全部集中在一个地方,可能导致元数据的存储压力。
原创
发布博客 2023.09.14 ·
290 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

05-Redis高可用集群之水平扩展

从上图可以看出,整个集群运行正常,三个master节点和三个slave节点,8001端口的实例节点存储0-5460这些hash槽,8002端口的实例节点存储5461-10922这些hash槽,8003端口的实例节点存储10923-16383这些hash槽,这三个master节点存储的所有hash槽组成redis集群的存储槽位,slave点是每个主节点的备份从节点,不显示存储槽位。我们在原始集群基础上再增加一主(8007)一从(8008),增加节点后的集群参见下图,新增节点用虚线框表示。
原创
发布博客 2023.09.13 ·
205 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

04-Redis哨兵高可用架构

哨兵架构下client端第一次从哨兵找出redis的主节点,后续就直接访问redis的主节点,不会每次都通过sentinel代理访问redis的主节点,当redis的主节点发生变化,哨兵会第一时间感知到,并且将新的redis主节点通知给client端(这里面redis的client端一般都实现了订阅功能,订阅sentinel发布的节点变动消息)RedisTemplate默认采用的是JDK的序列化策略,保存的key和value都是采用此策略序列化保存的。RedisTemplate中定义了对5种数据结构操作。
原创
发布博客 2023.09.12 ·
162 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

03-Redis主从架构

master会在其内存中创建一个复制数据用的缓存队列,缓存最近一段时间的数据,master和它所有的slave都维护了复制的数据下标offset和master的进程id,因此,当网络连接断开后,slave会请求master继续进行未完成的复制,从所记录的数据下标开始。master收到PSYNC命令后,会在后台进行数据持久化通过bgsave生成最新的rdb快照文件,持久化期间,master会继续接收客户端的请求,它会把这些可能修改数据集的请求缓存在内存中。1、复制一份redis.conf文件。
原创
发布博客 2023.09.12 ·
392 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多