Fork me on GitHub

微服务开中常用注解

一、组件注册@SpringBootConfigurationSpringBootConfiguration 是 SpringBoot 项目的配置注解,这也是一个组合注解,SpringBootConfiguration 注解可以用 java 代码的形式实现 Spring 中 xml 配置文件配置的效果,并会将当前类内声明的一个或多个以 @Bean 注解标记的方法的实例纳入到 spring 容器...

RocketMQ--消息幂等(去重)通用解决方案

RocketMQ--消息幂等(去重)通用解决方案

​ 消息中间件是分布式系统常用的组件,无论是异步化、解耦、削峰等都有广泛的应用价值。我们通常会认为,消息中间件是一个可靠的组件——这里所谓的可靠是指,只要我把消息成功投递到了消息中间件,消息就不会丢失,即消息肯定会至少保证消息能被消费者成功消费一次,这是消息中间件最基本的特性之一,也就是我们常说的“AT LEAST ONCE”,即消息至少会被“成功消费一遍”。 ​ ...

RocketMQ--消息文件过期原理

RocketMQ——消息ACK机制及消费进度管理 文中提过,所有的消费均是客户端发起Pull请求的,告诉消息的offset位置,broker去查询并返回。但是有一点需要非常明确的是,消息消费后,消息其实并没有物理地被清除,这是一个非常特殊的设计。本文来探索此设计的一些细节。 消费完后的消息去哪里了?消息的存储是一直存在于CommitLog中的。而由于CommitLog是以文件为单位(而非消息...

Nacos介绍与安装启动

Nacos介绍与安装启动

什么是 Nacos概览欢迎来到 Nacos 的世界! Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。 什么是 Nacos?服务(S...

MySQL各存储引擎

MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL服务器中启用...

MySQL之索引原理分析

MySQL之索引原理分析

一步一步推导出 Mysql 索引的底层数据结构。 Mysql 作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是 Mysql 数据的存储形式以及索引的设计,决定了 Mysql 整体的数据检索性能。 我们知道,索引的作用是做数据的快速检索,而快速检索的实现的本质是数据结构。通过不同数据结构的选择,实现各种数据快速检索。在数据库中,高效的查找算法是非常重要的,...

MySQL索引在什么情况下会失效

索引的失效,会大大降低sql的执行效率,日常中又有哪些常见的情况会导致索引失效? 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置...

MySQL之索引失效分析及优化相关

MySQL之索引失效分析及优化相关

MySQL索引失效的几种情况: 条件中有or,即使其中有条件带索引也不会使用; 对于多列索引,不使用的第一部分,则不会使用索引; like查询以%开头,索引无效; 当字段类型为字符串时,条件中数据没有使用引号引用。 索引并不是时时都会生效的,比如以下几种情况,将导致索引失效: 如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因) 注意:要想使用or,又...

MySQL索引类型区分

存储方式区分1. B-树索引目前大多数索引都是采用B-树来存储,其包含组件有: 叶子节点:包含的条目直接指向表里的数据行。叶子节点之间彼此相连,一个叶子节点有一个指向下一个叶子节点的指针。 分支节点:包含的条目指向索引里其他的分支节点或者叶子节点。 根节点:一个 B-树索引只有一个根节点,实际上就是位于树的最顶端的分支节点。 2. 哈希索引哈希索引也称为散列索引或 HASH 索引。MyS...