- 博客(18)
- 收藏
- 关注
原创 第三章 RocketMQ集群搭建
在前两篇文章中,介绍了单机版rocketmq的搭建和可视化界面,但是单机有一个问题,当单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅,消息实时性会受到影响。采用的方案为:多节点(集群)多副本模式-异步复制。这种方案的好处在于,即使磁盘损坏,消息丢失的非常少,且消息实时性不会受影响,同时Master宕机后,消费者仍然可以从Slave消费,而且此过程对应用透明,不需要人工干预。然后上传rocketmq安装包,最前采用的是最新版的5.2.0版本,下载路径查看第一章,解压,然后到conf目录下。
2024-04-08 17:25:29
445
原创 第二章 RocketMQ控制台
这是最新版的配置文件,分表修改端口号 和 rocketmq的地址,注意最新版的集群是这样写了,之前版本是。借助上一章搭建了rocketmq,此时收发消息都可以了,那有没有一个可视化平台可以看见,队列,主题呢?答案是有的,RocketMQ有一个可视化的dashboard,通过该控制台可以直观的查看到很多数据。注意rockermq-dashboard 没有和其他的源码一块。
2024-03-08 17:09:12
506
1
原创 MySQL 性别字段到底加不加索引
MySQL 性别字段到底加不加索引,实际上与索引创建规则之一 区分度有关,性别字段假设有100w数据,50w男、50w女,区别度几乎等于 0 , select count(DISTINCT sex)/count(*) from sys_user ,实际上对于性别字段不适合创建索引,是因为select * 操作,还得进行50w次回表操作,根据主键从聚簇索引中找到其他字段 ,这一部分开销从上面的测试来说还是比较大的,所以从性能角度来看 不建议性别字段加索引,加上索引并不是索引失效,而是回表操作使得变慢的。
2024-02-27 18:28:27
918
原创 数据结构与算法-LRU缓存实现
void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value;如果插入 操作导致关键字数量超过 capacity ,则应该 逐出 最久未使用的关键字。链表有顺序之分,插入删除快,但是查找慢。既然已经确定了,采用什么数据结构,双向链表+哈希表 , 其中双向链表来维护顺序,通过哈希表来进行查询解决get、put都是以O(1)来运行。int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1。
2024-02-19 18:31:26
290
1
原创 第一章 RocketMQ安装
brokerIP2:broker为master-slave模式时,broker的从节点通过brokerIP2和主节点进行连接。如果服务器的配置不是很好的话,那就按照一下修改即可,配置很好 那就默认即可。将注册中心的地址进行填写 namesrvAddr 如果是集群以;上传压缩包到 /usr/local/src 下,解压unzip。一定要注意修改Jvm的配置文件与启动文件不是一个。brokerIP1:当前broker监听的IP。进入到安装包的bin目录下进行操作。进入到安装包的bin目录下进行操作。
2024-02-02 17:43:06
411
原创 第九章 shardingsphere源码-SQL结果返回
本篇主要介绍了,sql执行返回的结果依旧遵守JDBC,以及到底在什么地方判断进行解密操作,对于整个shardingsphere代码来说比较复杂,复杂的点主要在里面封装了很多层上下文调用链之长,实现类之多 ,非常不好排查,代码量也非常大,再制作镜像时有500M,但是实际上如果理清楚了整个流程那么还是比较简单得,本栏目总共使用了9篇来帮助你理清它们之间的关键的流程。
2024-01-04 18:08:01
942
1
原创 第八章 shardingsphere源码-SQL执行
本篇主要介绍了,shardingsphere SQL执行。最后真正执行的依旧由jar来执行,所以无论怎么样都是使用的jdbc方式。
2023-12-23 17:51:16
1186
1
原创 第七章 shardingsphere源码-SQL改写
开发人员在面向逻辑库与逻辑表书写的 SQL时,并不能够直接在真实的数据库中执行,SQL 改写用于将逻辑 SQL 改写为在真实数据库中可以正确执行的 SQL。它包括正确性改写和优化改写两部分。本篇主要介绍了,shardingsphere SQL改写,中间经过了什么流程,sql改写在什么情况下发生,实际上select * from tttttt1_copy1这个sql如果在不分片的情况下,是不会发生重写的,并不是将* 改为具体的字段。
2023-12-07 15:21:53
165
1
原创 第六章 shardingsphere源码-SQL解析
SQL 是比较简单的。不过,它依然是一门完善的编程语言,因此对 SQL 的语法进行解析,与解析其他编程语言(如:Java 语言、C 语言、Go 语言等)并无本质区别。解析过程分为词法解析和语法解析。词法解析器用于将 SQL 拆解为不可再分的原子符号,称为 Token。并根据不同数据库方言所提供的字典,将其归类为关键字,表达式,字面量和操作符。再使用语法解析器将词法解析器的输出转换为抽象语法树。本篇主要介绍了,shardingsphere SQL解析,中间经过了什么流程,实际上真正解析的是antlr。
2023-12-01 17:24:24
216
1
原创 第五章 shardingsphere源码-数据加密的整体流程
本篇主要介绍了,shardingsphere数据加密的流程、加密模式、sql经过代理到底干了些什么,下一偏将详细介绍一下。
2023-11-25 17:01:31
201
原创 第四章 shardingsphere源码-如何启动的?
本篇主要介绍了,该项目是如何启动的,借助于netty当做服务器,是如何配置的,以及当启动完成后,进行连接的时候到底从那个地方开始接收报文,方便后续debug。
2023-11-20 19:59:53
159
1
原创 第三章 shardingsphere源码-项目启动前到底干了些什么?
本篇主要介绍了,再真正的启动netty时之前所做的准备工作,1.将配置信息解析成对象 2.将配置信息进行持久化里面使用了很多层对象来进行封装,比较复杂,并且使用了Java的spi机制来降低系统的耦合,不想在硬编码里面写死具体的实现,而是希望由服务提供者来选择使用那种实现方式。所以阅读这部分源码学会了,如果当有很多个实例类时,可以使用Java spi机制,来降低系统的耦合。
2023-11-15 14:43:30
147
原创 ShardingSphere-初识数据加密
Apache ShardingSphere 是一款分布式 SQL 事务和查询引擎,可通过数据分片、弹性伸缩、加密等能力对任意数据库进行增强。本文着重讲的是有关sharding-proxy,本质上与jdbc的区别在于透明化的数据库代理中间件 无代码侵入更多说明性的可以查看官网。
2023-11-07 18:14:36
165
原创 死磕数据结构与算法-第一弹
在这个假设上,第 2-3行 2Time , 第 4-5行 是nTime ,总的时间复杂度为(n+2)Time,发现所有代码的执行时间 T(n) 与每行代码的执行次数成正比,T(n)=(n+2)Time。但是在业务开发中似乎难以遇到,真的是这样吗,并不是,比如:开发ArrayList 、 Linked List 再操存储数据的时候,到底使用哪一个,还是随便用一个,如何评估代码的性能和资源的消耗,这背后都离不开数据结构和算法。T(n)=O(f(n)),T(n) :代码执行的时间;n 表示数据规模的大小;
2023-06-16 16:09:19
57
1
原创 mysql修改字段引发的事故
MySQL中表级别的锁有两种:一种是表锁,一种是元数据锁(MDL)。MDL不需要显式使用,在访问一个表的时候会被自动加上。其中有MDL读锁(对表中数据做增删改查操作),MDL写锁(对表做结构变更操作).
2023-02-06 15:54:03
276
1
原创 Android studio 如何设计一个较为好看的用户名,密码输入框
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的这里写代码片快捷键 相当于一个注册页面 ———-快捷键加粗 Ctrl +...
2018-09-14 09:24:32
10692
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人