Skip to content
DATA & MIDDLEWARE

数据库与中间件

数据库设计、缓存、消息队列、搜索引擎及分布式数据实践。

30精选文章
01

关系型数据库

MySQL、SQL 与性能优化

02

缓存与搜索

Redis、MongoDB、ElasticSearch

03

消息与分布式

MQ、事务与数据一致性

SELECTED ARTICLES

精选文章

查看全部文章 →

log4j2日志框架配置+日志记录写入数据库

第一步配置pom文件依赖与 application.properties 配置文件 我用的是spring-boot-starter-log4j2的日志依赖; 配置好pom文件后 配置 [application.properties] 文件 在该文件里加入这个config路径就行。 第二步 配置 [log4j2…

阅读全文 →

Kafka集群部署以及与SpringBoot整合发布订阅

我们的项目中设备数据接收系统从MQTT消息服务订阅到设备数据之后,需要推到大数据平台,以便于大数据平台进行实时计算生产数据报告,给用户展示。所以我们数据接收系统跟大数据平台通信我们需要使用消息队列来异步解耦。 现在主流的MQ有2种:Kafka和RocketMQ。毫无疑问我们项目接收的设备数据量大、频率快,同时…

阅读全文 →

Kafka核心知识点整理,收藏再看!

文章内容收录到个人网站,方便阅读:hardyfish.top/ 文章内容收录到个人网站,方便阅读:hardyfish.top/ 消息队列应用场景: 通过异步处理提高系统性能(减少响应所需时间) 削峰/限流 降低系统耦合性 消息队列对比 Kafka: - 追求高吞吐量,一开始用于日志收集和传输,适合产生大量数据…

阅读全文 →

kafka快速入门(go语言)

kafka做为一款高并发、高可用、高性能的消息系统,非常适合用于拥有大量数据的消息队列、日志聚合、网络活动追踪等场景。有必要掌握,本文将主要从它的常用概念、go中如何使用两方面介绍。 让我们一起开始吧! 1. 是什么? 它是一个高性能的消息系统,那什么是消息系统呢?本质上就是一个中间件,在消息的发送和处理之间…

阅读全文 →

kafka入门实战教程看这篇就够了

Kafka传统定义:Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。发布/订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息 分为不同的类别,订阅者只接收感兴趣的消息。 Kafka最新定义:Kafka是一个开源的分布式事件流平…

阅读全文 →

Kafka 消息传递魔法揭秘:至少消费一次的实现原理!🪄📬

嗨,亲爱的小伙伴们!今天我们来揭开 Kafka 中的一个重要秘密:至少消费一次(At-Least-Once Delivery)的实现原理。这个机制确保我们的消息不会丢失,是不是很神奇呢?让我们慢慢探讨这个话题吧!😊 1. 什么是至少消费一次?🤔 问题:什么是至少消费一次(At-Least-Once Deliv…

阅读全文 →

Kafka 是什么?架构是怎么样的?

B 服务每秒只能处理 100 个消息,但 A 服务却每秒发出 200 个消息,B 服务哪里顶得住,分分钟被压垮。 那么问题就来了,有没有办法让 B 在不被压垮的同时,还能处理掉 A 的消息? 当然有,没有什么是加一层中间层不能解决的,如果有,那就再加一层。 这次我们要加的中间层是 消息队列 Kafka。 什么…

阅读全文 →

Kafka 基础学习笔记

1 Broker 使用Kafka前,我们都会启动Kafka服务进程,这里的Kafka服务进程我们一般会称之为Kafka Broker或Kafka Server。因为Kafka是分布式消息系统,所以在实际的生产环境中,是需要多个服务进程形成集群提供消息服务的。所以每一个服务节点都是一个broker,而且在Kaf…

阅读全文 →

Java通过RabbitMQ实现MQTT通信

简单介绍下mqtt MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IOT)。 发布方(Publisher)将消息发送到 Broker(MQTT服务器); …

阅读全文 →

Java中使用RediSearch进行高效数据检索

​ 环境准备 1. 安装Redis与RediSearch 首先,确保你已经安装了 Redis 并启动了 RediSearch 模块。你可以通过编译安装 RediSearch 源代码,或者使用一些 Redis 发行版(如 Redis Enterprise)提供的 RediSearch 模块来安装。安装完成后,启…

阅读全文 →

Java 数据库操作工具包 jOOQ 初探

大家好,我是磊磊落落,目前我在技术上主要关注:Java、Golang、架构设计、云原生和自动化测试。欢迎来我的博客(leileiluoluo.com)获取我的最近更新! jOOQ 是一个轻量级的 Java ORM(对象关系映射)框架,可用来构建复杂的 SQL 查询。jOOQ 可以根据数据库表自动生成对应的 J…

阅读全文 →

Java 开发面试题精选:Redis 一篇全搞定

前言 在Java开发工程师的面试中,关于Redis的问题可能会涵盖基础概念、数据结构、操作命令、性能优化、持久化策略、高可用与分布式、以及与Java应用的集成等多个方面。而本篇文章将会把大概率被问到的关于Redis的问题,梳理地的清清楚楚,不管你求职者在准备面试,还是面试官在准备招聘,这篇文章都非常值得一读,…

阅读全文 →

Java 开发面试题精选:Kafka 一篇全搞定

前言 在Java开发工程师面试中,特别是涉及到Apache Kafka的部分,面试官可能会从基础知识、架构理解、实际应用、故障排查和性能优化等多个维度来考察您的能力。这篇文章会将一些大概率被问到的面试题目梳理出来,并且告诉应该怎么回答它,不管你求职者在准备面试,还是面试官在准备招聘,这篇文章都非常值得一读,感…

阅读全文 →

Java 开发面试题精选:Elasticsearch 一篇全搞定

前言 在Java开发工程师的面试中,Elasticsearch掌握程度往往是评估候选人综合能力的重要组成部分。在这篇文章中,我精选了一些最可能被问到的与Elasticsearch相关的面试题目,这些题目可以全面考察候选人的理论知识、实战经验和问题解决能力,不管你是准备求职的小伙伴,还是一名面试官,相信都能从这…

阅读全文 →

ElasticSearch语法和基础入门

文档Document 用户存储在es中的数据文档,是es存储数据的最小的一个单元。类似于关系型数据表中的一行数据。 每一个文档都有一个唯一的id标识:自行指定、es自动生成 Json Object,由字段(Field)组成,常见的数据类型如下: 字符串:text(分词)、keyword(不分词) 数字型:lo…

阅读全文 →

Elasticsearch最佳生产实践整理,推荐收藏

Elasticsearch是一个底层基于Lucene的全文搜索和分析引擎,支持近乎实时地存储、搜索和分析大量数据的能力,最常用于网站搜索、日志搜索、数据分析等场景。 本文主要针对日常工作中Elasticsearch使用的一些基础概念、使用规范、注意事项、常见优化以及工具使用进行总结,如有不当的地方,欢迎指正。…

阅读全文 →

Elasticsearch学习使用

Elasticsearch 是一个分布式搜索和分析引擎,适用于各种类型的数据,包括文本、数字、地理位置信息、结构化数据和非结构化数据。它基于 Apache Lucene 构建,提供了一个 RESTful 的接口来进行交互。 安装 docker安装Elasticsearch 安装测试:http://127.0.…

阅读全文 →

ElasticSearch8 – SpringBoot整合ElasticSearch

springboot 整合 ES 有两种方案,ES 官方提供的 Elasticsearch Java API Client 和 spring 提供的 Spring Data Elasticsearch 两种方案各有优劣 Spring:高度封装,用着舒服。缺点是更新不及时,有可能无法使用 ES 的新 API E…

阅读全文 →

elasticsearch esrally 性能测试实操

关于 esrally 的文档,请移步:esrally测试 esrally 是个 elastic 官方的测试工具,可以对 es 进行压力测试。其运行对环境有一定要求,如 python版本,JDK要求等,这里为了不去配环境,采用 docker 跑 esrally,所以首先你需要拉取 esrally 的官方镜像: …

阅读全文 →

EasyExcel处理Mysql百万数据的导入导出案例,秒级效率,拿来即用!

今天终于更新新专栏 《EfficientFarm》 的第二篇博文啦,本文主要来记录一下对于EasyExcel的高效应用,包括对MySQL数据库百万级数据量的导入与导出操作,以及性能的优化(争取做到秒级性能!)。 二、如何做技术选型 其实在市面上我们有很多常用的excel操作依赖库,除了EasyExcel之外,…

阅读全文 →

Docker部署Kafka单机或者集群指南

那么今天我们就以KRaft模式部署Kafka的单机和集群为例,梳理一下如何使用Docker完成Kafka部署。 在学习本章节之前,建议大家先要弄清楚Kafka集群节点中的角色类型、常见的配置项意义等等,如果还不太熟悉建议先通过该博客进行学习:传送门 1,拉取镜像 通过下列命令即可: 2,配置方式说明 在使用D…

阅读全文 →

Docker三分钟部署ElasticSearch平替MeiliSearch轻量级搜索引擎

👩🏽‍💻个人主页:阿木木AEcru (更多精彩内容可进入主页观看) 🔥 系列专栏:《Docker容器化部署系列》 《Java每日面筋》 💹每一次技术突破,都是对自我能力的挑战和超越。 一、 什么是MeiliSearch? MeiliSearch作为轻量级搜索引擎的解决方案,相比于Elasticsearch,它…

阅读全文 →

DBCP一个配置,浪费了MySQL 50%的性能!

研究背景 数据库性能的重要性 数据库性能优化对于保证应用的响应速度和处理大量数据的能力至关重要。它可以显著减少查询时间,提高事务处理效率,降低硬件成本,并确保系统稳定性与可扩展性。优化后的数据库能够更好地服务于用户需求,增强客户满意度,对企业的长期发展和竞争力具有深远影响。 连接池在数据库性能中的作用 1. …

阅读全文 →

35个Redis企业级性能优化点与解决方案

Redis作为企业级应用中广泛使用的高性能键值存储数据库,其性能优化是一个复杂且多面的话题。以下是V 哥整理的一些关键的优化点和相应的解决方案,提供给兄弟们参考。 Redis的性能优化涉及到硬件选择、配置调整、客户端优化、持久化策略等多个层面。 1. 硬件优化 解决方案:选择更快的CPU、更多的内存、更快的磁…

阅读全文 →

(八)漫谈分布式之缓存篇:唠唠老生常谈的MySQL与Redis数据一致性问题!

本文为稀土掘金技术社区首发签约文章,30天内禁止转载,30天后未获授权禁止转载,侵权必究! 引言 从开设《漫谈分布式专栏》至今,已经写了许多与一致性相关的文章,可其中大部分并不能和日常开发工作挂钩,为此,本文来聊一个跟实际工作挂钩的老生常谈的问题:分布式系统中的缓存一致性。 缓存技术,既能减轻数据库访问压力,…

阅读全文 →

RabbitMQ 最新面试题及答案整理

1. 什么是MQ MQ就是消息队列。是软件和软件进行通信的中间件产品 2. MQ的优点 异步处理 – 相比于传统的串行、并行方式,提高了系统吞吐量。 应用解耦 – 系统间通过消息通信,不用关心其他系统的处理。 流量削锋 – 可以通过消息队列长度控制请求量;可以缓解短时间内的高并发请求。 日志处理 – 解决大量…

阅读全文 →

RocketMQ 最新面试题及答案整理

说说你们公司线上生产环境用的是什么消息中间件? 见【2、多个mq如何选型?】 多个mq如何选型? MQ 描述 :-: :-: RabbitMQ erlang开发,对消息堆积的支持并不好,当大量消息积压的时候,会导致 RabbitMQ 的性能急剧下降。每秒钟可以处理几万到十几万条消息。 RocketMQ jav…

阅读全文 →

Kafka 最新面试题及答案整理

什么是消息中间件? 消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统。 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。 kafka …

阅读全文 →

MongoDB 最新面试题及答案整理

1. 什么是MongoDB? MongoDB是一种非关系型数据库,被广泛用于大型数据存储和分布式系统的构建。MongoDB支持的数据模型比传统的关系型数据库更加灵活,支持动态查询和索引,也支持BSON格式的数据存储,这种格式可以支持读取和写入大量的数据。 2. MongoDB的优势是什么? MongoDB的优…

阅读全文 →

MySQL 最新面试题及答案整理

MySQL 中有哪几种锁? 1、 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低; 2、 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高; 3、 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并;发度…

阅读全文 →