中间件
文章平均质量分 87
.
mrathena
这个作者很懒,什么都没留下…
展开
-
MySQL BinLog 数据还原恢复
本次还原的流程是, 重现 binlog 中拷贝表的步骤, 还原 tzh_ths_benchmark_copy1 表, 然后重命名为原表, 全部流程对应下面选中的内容, 核心在 Table_map 和 Write_rows 两个事件, 加上前面创建表的步骤, 即可还原数据, 最终确定本次恢复数据的 binlog 起始点和结束点分别为 361653031 和 361656701。binlog 日志以事件为单位写入, 以 at 作为日志的开始, 两个 at 之间的内容就是一个完整的事件。原创 2023-12-12 18:21:51 · 1253 阅读 · 0 评论 -
MySQL 索引优化实战
博文目录文章目录常规示例非常规示例索引下推(Index Condition Pushdown,ICP)MySQL针对要执行的SQL计算全表扫描/走某索引的成本cost常见SQL深入优化示例数据CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT NULL DEFAULT '' COMMENT '姓名', `age` int(11) NOT NULL DEFAULT '原创 2022-03-21 14:06:41 · 339 阅读 · 0 评论 -
一条SQL在MySQL中是怎样执行的
博文目录文章目录MySQL的内部组件结构Server层Store层连接器查询缓存大多数情况查询缓存就是个鸡肋,为什么呢?非要使用的话又有什么建议呢?分析器优化器执行器bin-logMySQL的内部组件结构大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。原创 2022-03-21 13:00:24 · 231 阅读 · 0 评论 -
MySQL 生产问题
博文目录文章目录left join 从表不走索引left join 从表不走索引explain 发现从表不走索引, 发现是因为 left join on 的两个字段的字符集不一样, 一个是 utf8_general_ci, 另一个是 utf8mb4_general_ci原创 2021-12-01 18:18:33 · 773 阅读 · 0 评论 -
MySQL explain 与 索引最佳实践
博文目录文章目录Explain工具介绍示例用表explain 有两个变种explain 中的列idselect_typetabletypepossible_keyskeykey_lenrefrowsExtraEXPLAIN Output FormatExplain工具介绍使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这原创 2021-07-11 22:41:42 · 329 阅读 · 0 评论 -
MySQL 索引底层数据结构
博文目录文章目录索引的数据结构为什么不用二叉树做索引为什么不用红黑树做索引B树B+树B树和B+树的区别B树和B+树的创建B+树的查找方式MySQL的页大小与B+树节点的大小为什么不用B树而用B+树做索引Hash索引MySQL的数据存储聚簇索引(聚集索引)和非聚簇索引主键索引和非主键索引(二级索引)非主键索引为什么要持有聚簇索引的key?为什么InnoDB必须建主键? 且推荐使用整形的自增主键?组合索引(联合索引)组合索引的最左前缀原则为什么组合索引有最左前缀原则MySQL索引原理及慢查询优化硬盘原创 2021-07-07 16:46:49 · 1201 阅读 · 0 评论 -
MySQL exists and not exists
博文目录文章目录sql中exists,not exists的用法CREATE TABLE `a` ( `id` int(11) NOT NULL, `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4原创 2021-06-30 16:45:22 · 547 阅读 · 0 评论 -
MySQL 生产环境高可用架构
博文目录文章目录搭建主从集群理论基础同步原理搭建集群masterslave测试验证集群搭建扩展搭建主从集群理论基础主从架构有什么用?通过搭建MySQL主从集群,可以缓解MySQL的数据存储以及访问的压力。数据安全,给主服务增加一个数据备份。基于这个目的,可以搭建主从架构,或者也可以基于主从架构搭建互主的架构。读写分离,大部分的JAVA业务系统都是读多写少的,可以将数据读请求转为由从服务来分担,主服务只负责数据写入的请求,这样大大缓解数据库的访问压力。MySQL的主从架构只是实现读写分离的一个原创 2021-01-06 13:55:09 · 653 阅读 · 2 评论 -
MySQL 8.0.22 单机环境搭建
博文目录文章目录mysql installCentOS7, x641. 添加yum源2. 安装3. 启动4. 修改密码5. 开放远程连接6. 问题1. caching_sha2_passwordWindows, x64https://www.mysql.com/downloads/https://dev.mysql.com/downloads/mysql/https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.22-el7-x86_64.t原创 2021-01-06 14:52:35 · 484 阅读 · 0 评论 -
SpringCloud Alibaba Nacos
博文目录文章目录注册中心设计思路注册中心演变及设计思想NacosNacos注册中心架构核心功能服务注册表结构服务领域模型环境搭建单机模式部署集群模式配置与部署集群环境搭建Nginx 反向代理服务搭建(负载均衡)普罗米修斯(prometheus) + grafana(Go开发的数据化可视工具) 监控 Nacosnacos 启用metrics数据暴露搭建prometheus采集Nacos metrics数据搭建grafana图形化展示metrics数据配置prometheus数据源导入Nacos grafan原创 2021-03-29 09:14:28 · 543 阅读 · 0 评论 -
ElasticSearch 7.6.1 环境搭建
博文目录文章目录ElasticSearch 单机环境安装创建普通用户上传压缩包并解压, 所有者设置为es用户修改配置文件elasticsearch.yml详细配置信息参考(ES7之前的旧版本的配置)jvm.option修改系统配置,解决启动时候的问题JDK 版本不匹配普通用户打开文件的最大数限制普通用户启动线程数限制普通用户调大虚拟内存启动ES服务防火墙客户端 Kibana 安装安装 IK 分词器指定IK分词器作为默认分词器ElasticSearch 集群环境安装ElasticSearch 单机环境安原创 2021-03-01 15:23:12 · 837 阅读 · 0 评论 -
ElasticSearch 基础概念
博文目录文章目录ElasticSearchElasticSearch 与 Lucene 的关系ElasticSearch 与 SolrSolr比较ElasticSearch 与 关系型数据库 概念类比Lucene 全文检索框架全文检索分词原理之倒排索引ElasticSearch 核心概念索引 index映射 mapping字段 Field字段类型 Type文档 document集群 cluster节点 node分片和副本 shards & replicas分片副本ElasticSearch 环境搭原创 2021-03-01 15:22:11 · 286 阅读 · 0 评论 -
ElasticSearch 架构原理
博文目录文章目录节点类型Master节点DataNode节点分片和副本机制分片(Shard)副本指定分片、副本数量重要工作流程文档写入原理检索原理准实时索引实现溢写到文件系统缓存写translog保障容错flush到磁盘segment合并节点类型在ES主要分成两类节点,一类是Master节点,一类是DataNode节点。Master节点在ES启动时,会选举出来一个Master节点。当某个节点启动后,然后使用Zen Discovery机制找到集群中的其他节点,并建立连接。discovery.se原创 2021-03-08 09:33:14 · 426 阅读 · 2 评论 -
ElasticSearch DSL 领域专用语言
博文目录文章目录ElasticSearch DSL(Domain Specific Language) 领域专用语言Query DSLFilter DSL区别查询无查询条件有查询条件叶子查询(单条件)模糊匹配matchmatch 的底层转换multi_matchmatch_phrasematch phrase 原理 - term positionmatch phrase搜索参数 - slopquery_string前缀搜索 prefix通配符搜索 wildcard正则搜索搜索推荐模糊搜索技术 fuzzy总原创 2021-03-08 09:36:56 · 293 阅读 · 0 评论 -
Zookeeper 典型使用场景
博文目录文章目录分布式锁非公平锁(可重入互斥非公平锁)羊群/惊群效应问题公平锁(可重入互斥公平锁)幽灵节点问题Apache Curator 实现演示源码读写锁(类似ReentrantReadWriteLock的公平模式)Apache Curator 实现演示源码Zookeeper 锁 和 Redis 锁 的区别注册中心serviceclient调用zookeeper演示宕机自动取消注册Leader选举LeaderLatch核心apiLeaderSelector核心api分布式锁zookeeper和r原创 2020-11-21 00:17:18 · 673 阅读 · 0 评论 -
Zookeeper 客户端 org.apache.zookeeper:zookeeper:3.5.8
博文目录文章目录Zookeeper 客户端代码演示Apache Curator 客户端会话创建重试策略代码演示异步接口监听Curator Cachesnode cachepath cachetree cache代码演示集群模式下的使用Zookeeper 客户端zookeeper 官方的客户端没有和服务端代码分离,他们为同一个jar 文件,所以我们直接引入zookeeper的maven即可, 这里版本请保持与服务端版本一致,不然会有很多兼容性的问题<dependency> <原创 2020-11-19 18:04:17 · 2155 阅读 · 0 评论 -
Zookeeper 客户端 org.apache.curator:curator-recipes:5.1.0
博文目录文章目录Apache Curator 客户端会话创建重试策略代码演示异步接口监听Curator Cachesnode cachepath cachetree cache代码演示集群模式下的使用Apache Curator 客户端Curator 是一套由netflix 公司开源的,Java 语言编程的 ZooKeeper 客户端框架,Curator项目是现在ZooKeeper 客户端中使用最多,对ZooKeeper 版本支持最好的第三方客户端,并推荐使用,Curator 把我们平时常用的很多原创 2020-12-08 11:24:18 · 2577 阅读 · 0 评论 -
Zookeeper 下载安装 单机 集群
博文目录文章目录下载安装单机模式集群模式(类似于Redis的主从模式)配置启动 停止 查看状态客户端连接ZookeeperApache Curator下载安装官网官网下载apache-zookeeper-3.6.2-bin.tar.gzapache-zookeeper-3.5.8-bin.tar.gzcd /applicationwget https://mirrors.ocf.berkeley.edu/apache/zookeeper/zookeeper-3.5.8/apache-z原创 2020-11-20 00:36:03 · 404 阅读 · 0 评论 -
Zookeeper zab
博文目录文章目录zabzab原创 2020-12-05 23:55:55 · 250 阅读 · 0 评论 -
Zookeeper 集群动态配置(since v3.5.0)
博文目录文章目录动态配置添加超级管理员授权修改配置文件添加动态配置文件客户端操作代码操作动态配置Zookeeper 3.5.0 以前,Zookeeper集群角色要发生改变的话,只能通过停掉所有的Zookeeper服务,修改集群配置,重启服务来完成,这样集群服务将有一段不可用的状态,为了应对高可用需求,Zookeeper 3.5.0 提供了支持动态扩容/缩容的 新特性。但是通过客户端API可以变更服务端集群状态是件很危险的事情,所以在zookeeper 3.5.3 版本要用动态配置,需要开启超级管理员原创 2020-11-21 00:16:31 · 672 阅读 · 0 评论 -
Zookeeper 源码 集群启动 与 启动时 leader 选举
博文目录文章目录准备为什么要看源码:看源码方法:下载源码找到主类配置参数启动服务客户端连接源码leader 选举集群启动时选举3节点集群, 先启动两台节点准备为什么要看源码:1、提升技术功底:学习源码里的优秀设计思想,比如一些疑难问题的解决思路,还有一些优秀的设计模式,整体提升自己的技术功底2、深度掌握技术框架:源码看多了,对于一个新技术或框架的掌握速度会有大幅提升,看下框架demo大致就能知道底层的实现,技术框架更新再快也不怕3、快速定位线上问题:遇到线上问题,特别是框架源码里的问题(比如b原创 2020-11-23 10:12:25 · 357 阅读 · 0 评论 -
Zookeeper 基础概念与初级使用
博文目录文章目录分布式系统与ZookeeperZookeeper文件系统数据结构4种znode监听机制事件类型:应用场景安装配置创建节点设置数据乐观锁查看数据查看节点查看节点状态ACL 权限控制( Access Control List )Scheme(权限模式)授权对象(ID)权限信息(Permission)命令生成授权ID的两种方式:设置ACL有两种方式访问前需要添加授权信息auth 明文授权IP授权模式Super 超级管理员模式内存数据和持久化事务日志数据快照分布式系统与Zookeeper原创 2020-11-15 22:31:17 · 253 阅读 · 0 评论 -
Kafka 初级使用
博文目录文章目录创建主题通过 shell 操作 kafka创建主题创建 test 主题–zookeeper 172.16.138.202:2181/kafka, kafka集群使用的zookeeper地址(集群时用逗号分隔). 需要注意的是, 如果kafka配置server.properties中, 配置项 zookeeper.connect 指定了kafka集群在zookeeper集群中的根目录(如"/kafka"), 则创建主题时指定zookeeper地址需要与之对应, 不然会报类似 “E原创 2020-12-29 23:23:08 · 260 阅读 · 0 评论 -
Kafka 生产问题汇总
博文目录文章目录生产者(有回调)批量发送消息总是异常结论解释异常表现原理说明(转载于 [深入图解Kafka producer 发送过程](https://www.cnblogs.com/benfly/p/10000034.html))生产者(有回调)批量发送消息总是异常深入图解Kafka producer 发送过程结论生产者配置本地缓存批量发送消息(有回调流程)时,需要确保回调流程的迅速处理(如用线程池处理),不然会影响批量发送的效率,在本地缓存满后,影响尤为严重,导致很多消息都没有成功发送原创 2021-01-13 22:29:55 · 661 阅读 · 0 评论 -
Kafka 2.4.1 环境搭建
博文目录文章目录注意下载安装配置启动配置文件 server.properties 核心配置详解Kafka需要JDK环境Linux Oracle JDK 下载 安装 配置 使用Kafka需要Zookeeper缓存存储各种元数据, 单机模式或集群模式都支持Zookeeper 下载安装 单机 集群Kafka从2.5.0开始不再支持Scala 2.11, 我们下载支持Scala2.11的最后一个版本 kafka_2.11-2.4.1.tgzKafka官网下载Kafka 2.4.1 下载页原创 2020-12-23 14:09:11 · 1832 阅读 · 0 评论 -
Kafka 客户端 org.apache.kafka:kafka-clients:2.4.1
博文目录文章目录消息体生产者消费者消息体package com.mrathena.kafka;import lombok.*;import java.io.Serializable;@Getter@Setter@ToString@NoArgsConstructor@AllArgsConstructorpublic class Order implements Serializable { private static final long serialVersionUID =原创 2021-01-01 16:18:11 · 2283 阅读 · 0 评论 -
Kafka 基础概念
博文目录文章目录使用场景基本概念Kafka官网Kafka最新版本文档Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、Storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apach原创 2020-12-16 21:27:05 · 1372 阅读 · 0 评论 -
rabbitmq rocketmq kafka 对比
博文目录文章目录原创 2020-12-16 21:30:16 · 181 阅读 · 0 评论 -
Kafka 整合 Spring Boot
博文目录文章目录pom.xmlapplication.ymlApplicationKafkaConsumerpom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="原创 2021-01-03 01:43:05 · 321 阅读 · 5 评论 -
MongoDB 4.4.2 单机搭建
博文目录文章目录安装首次启动创建用户并以鉴权模式重启Mongo服务 (使用 mongo shell 操作)创建用户停止服务退出mongo以授权模式启动mongo客户端以授权方式连接MongoDB官网MongoDB官网下载MongoDB中文网安装https://docs.mongodb.com/guides/server/install/wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.2.tgz原创 2020-12-26 16:04:20 · 319 阅读 · 0 评论 -
MongoDB 初级使用
博文目录文章目录mongo shell (javascript 客户端)库和集合添加数据可选参数 安全级别 writeConcern可选参数 是否顺序写入 ordered数据 单独主键 _id数据 复合主键测试数据查询全量查询条件查询精准等值查询返回指定字段Mongo查询条件和SQL查询对照表字段匹配查询 $exists 匹配包含查询字段的文档mongo shell (javascript 客户端)连接进来之后,就是一个命令行的窗体, 这也是JavaScript 语言的运行环境,所以可以在上面用ja原创 2020-12-26 18:44:53 · 318 阅读 · 0 评论 -
MongoDB 基本概念
博文目录文章目录MongoDB和关系型数据库的差异关系型数据库和文档型数据库主要概念对应MangoDB官网MangoDB官网下载MangoDB中文网Mongo 是 humongous 的中间部分,在英文里是“巨大无比”的意思。所以 MongoDB 可以翻译成“巨大无比的数据库”,更优雅的叫法是“海量数据库”。Mongodb是一款非关系型数据库,区别于关系型数据库最显著的特征就是没有SQL语句,数据没有固定的数据类型,关系数据库的所使用的SQL语句自从 IBM 发明出来=,已经有 40 多年原创 2020-12-26 16:06:48 · 486 阅读 · 0 评论 -
数据库泛谈
博文目录文章目录OracleDatabase definedWhat is Structured Query Language (SQL)?Evolution of the databaseTypes of databasesWhat is database software?What is a database management system (DBMS)?What is a MySQL database?Database challengesHow autonomous technology is原创 2020-12-26 23:32:20 · 887 阅读 · 0 评论 -
RocketMQ 客户端 org.apache.rocketmq:rocketmq-client:4.7.1
博文目录文章目录准备依赖NameServer生产者编程模型消费者编程模型基本样例生产者代码演示消费者代码演示顺序消息生产者代码演示消费者代码演示广播消息生产者代码演示消费者代码演示延迟消息生产者代码演示消费者代码演示批量消息生产者代码演示消费者代码演示过滤消息生产者代码演示消费者代码演示准备依赖<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketm原创 2020-12-08 11:28:13 · 2538 阅读 · 0 评论 -
RocketMQ 4.7.1 单机安装
博文目录文章目录单机安装安装单机安装RocketMQ是阿里巴巴开源的一个消息中间件,在阿里内部历经了双十一等很多高并发场景的考验,能够处理亿万级别的消息。2016年开源后捐赠给Apache,现在是Apache的一个顶级项目。 目前RocketMQ在阿里云上有一个购买即可用的商业版本,商业版本集成了阿里内部一些更深层次的功能及运维定制。我们这里学习的是Apache的开源版本。开源版本相对于阿里云上的商业版本,功能上略有缺失,但是大体上功能是一样的。官网GitHub官方中文文档rocket原创 2020-12-07 11:09:22 · 961 阅读 · 0 评论 -
RocketMQ 整合 Spring Cloud Stream
博文目录文章目录为什么引入Stream应用结构pom.xmlapplication.propertiesApplication消费者 TopicConsumer生产者 ProducerController# SpringCloud StreamSpringcloud Stream 是一个框架, 用于构建与共享消息传递系统连接的高度可扩展的事件驱动型微服务。该框架提供了基于已经建立和熟悉的Spring习语和最佳实践的灵活编程模型,包括对持久性Pub/sub(发布/订阅),使用者组和有状态分区的支持。原创 2020-12-11 12:36:34 · 814 阅读 · 0 评论 -
RocketMQ 整合 Spring Boot
博文目录文章目录应用结构pom.xmlapplication.ymlCustomerTestControllerTopicTransactionRocketMQTemplateTopicListenerTopicTransactionListener在使用SpringBoot的starter集成包时,要特别注意版本。因为SpringBoot集成RocketMQ的starter依赖是由Spring社区提供的,目前正在快速迭代的过程当中,不同版本之间的差距非常大,甚至基础的底层对象都会经常有改动。例如如果原创 2020-12-10 15:23:25 · 639 阅读 · 1 评论 -
RocketMQ 4.7.1 集群搭建
博文目录文章目录RocketMQ集群中的各个角色RocketMQ集群搭建RocketMQ的其他参考资料总结RocketMQ集群中的各个角色一个完整的RocketMQ集群中,有如下几个角色Producer:消息的发送者;举例:发信者Consumer:消息接收者;举例:收信者Broker:暂存和传输消息;举例:邮局NameServer:管理Broker;举例:各个邮局的管理机构Topic:区分消息的种类;一个发送者可以发送消息给一个或者多个Topic;一个消息的接收者可以订阅一个或者多个To原创 2020-12-07 22:54:44 · 568 阅读 · 0 评论 -
RocketMQ 基本概念
博文目录文章目录MQMQ的作用MQ的问题MQ产品特点比较RocketMQMQMessageQueue,消息队列。 队列,是一种FIFO 先进先出的数据结构。消息由生产者发送到MQ进行排队,然后按原来的顺序交由消息的消费者进行处理。QQ和微信就是典型的MQ。MQ的作用异步: 提高系统的响应速度、吞吐量。解耦: 1、服务之间进行解耦,才可以减少服务之间的影响。提高系统整体的稳定性以及可扩展性。2、另外,解耦后可以实现数据分发。生产者发送一个消息后,可以由一个或者多个消费者进行消费,并且消费者的增原创 2020-12-07 11:07:06 · 686 阅读 · 0 评论 -
RabbitMQ 整合 Spring
博文目录文章目录Spring BaseproducerconsumerSpring Basepom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://原创 2020-12-02 22:40:08 · 344 阅读 · 0 评论