
分布式与微服务
文章平均质量分 82
分布式系统和微服务是两个相关但又不完全相同的概念,它们在软件架构和开发中有着密切的联系。
分布式系统:
定义:分布式系统是由多个自治的计算机组成,这些计算机通过网络进行通信和协作,以完成共同的任务或提供服务。
特点:分布式系统中的各个计算机节点可以运行不同的操作系统和应用程序,它们通过消息传递或
Dddddduo_
江苏省高中数学竞赛三等奖 阿里云认证专家博主 字节跳动青训营后端优秀奖
展开
-
Linux常见定时任务命令 系统级别的定时任务
crontab是一个常用的定时任务管理工具,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于crontab文件中,以供之后读取和执行。通常,crond守护进程会在后台运行,每分钟检查是否有预定的作业需要执行。at命令用于设置在某个特定的时间点执行一次性的任务。原创 2025-03-28 02:05:27 · 488 阅读 · 0 评论 -
Linux常见docker命令整理 容器 镜像
在执行停止和删除容器的操作之前,了解 Docker 容器的不同状态十分重要。容器主要有以下几种状态,其中停止(Exited)状态表示容器已停止运行,但仍然存在于 Docker 主机上。在 Linux 系统中,若要停止并删除所有 Docker 容器,可按以下步骤进行,同时要注意这些操作可能需要管理员权限。除了删除容器外,还可以使用 Docker 的清理命令来释放其他未使用的资源,如镜像、网络和卷。使用以下命令列出所有正在运行的容器的 ID,然后通过。以安静模式列出所有容器(包括已停止的)的 ID,原创 2025-03-28 01:57:39 · 822 阅读 · 0 评论 -
使用事件监听器来处理并发环境中RabbitMQ的同步响应问题
@RabbitListener 是 Spring AMQP 提供的核心注解,用于简化 RabbitMQ 消息监听器的创建。以下是对 @RabbitListener(queues = "balloonWords.queue") 的详细解析:一、基础功能队列监听通过 queues 属性指定监听的队列名称(如 "balloonWords.queue" )。若队列不存在,需配合 @Queue 注解声明队列:@RabbitListener(queuesToDeclare = @Queue("balloo原创 2025-03-25 20:10:09 · 548 阅读 · 0 评论 -
Springboot整合elasticsearch详解 封装模版 仓库方法 如何在linux里安装elasticsearch
Field 字段注解中打上标识 表示elasticsearch中可能要进行全文搜索的字段。@Document 类注解中标注其索引(在 elasticsearch 中指的是表名)、elasticsearchTemplate 是 Java 提供的模版工具类。关于ElasticSearch的9200和9300端口区别。要使其变为 elasticsearch 可以识别的包装类。注意我们要将包装类和主键类型作为参数传入。ES集群之间是通过9300进行通讯。来直接调用父类方法中的增删改查方法。原创 2025-03-25 19:54:08 · 436 阅读 · 0 评论 -
Java并发编程 什么是分布式锁 跟其他的锁有什么区别 底层原理 实战讲解
分布式锁是一种在分布式系统中协调多进程/节点对共享资源进行互斥访问的机制。其核心作用是确保同一时间只有一个进程能够操作共享资源,解决分布式环境下的并发冲突问题(如超卖、数据覆盖等)。分布式锁通过外部存储系统实现跨进程资源互斥,需权衡性能、一致性和复杂度。Redis适合高频低一致性要求的场景,ZooKeeper适用于强一致性但低并发场景,而数据库锁仅作为简单场景的备选。实际选型需结合业务需求和容错能力(如Redisson整合Redis的方案较优)。原创 2025-03-25 18:46:59 · 666 阅读 · 0 评论 -
JavaEE企业级开发 延迟双删+版本号机制(乐观锁) 事务保证redis和mysql的数据一致性 示例
在起草这篇博客之前我做了点功课这边我写的是一个示例代码数据层都写成了 mock 的形式(来源于 JUnit5)// Dduo// 数据服务类// 模拟缓存(实际使用Redis等实现)// 延迟双删线程池// 模拟数据库,使用一个 Map 来存储数据记录// 数据记录类,包含数据的基本信息和版本号return id;// 模拟从数据库获取数据// 模拟数据库更新操作,更新数据并更新版本号// 检查版本号是否匹配。原创 2025-03-25 18:24:00 · 1019 阅读 · 0 评论 -
Springboot应用配置github自动流部署 深入理解CI/CD:构建、测试和部署的自动化完整流程
持续集成通过自动化的流程和工具,提高软件开发的效率、质量和交付速度。持续集成是开发团队通过将代码的不同部分集成到共享存储库中,并频繁地进行构建和测试,以确保代码的一致性和稳定性。持续交付持续交付建立在持续集成的基础上,通过自动化的流程确保软件可以随时随地进行部署。原创 2025-03-25 15:08:05 · 1078 阅读 · 0 评论 -
保姆级教程 在linux上启动Docker并且使用IntelliJ DockerCompose一键部署Springboot应用 常见命令
修改 docker.service 文件。Linux用户组是多个用户的集合,通过共享权限和资源访问规则实现集中管理。每个用户必须至少属于一个用户组,且系统中存在三种角色划分:● 文件所有者:创建文件的用户,拥有最高控制权;● 用户所在组:文件所属的默认组,组成员共享权限;● 其他组:既非所有者也不在文件所属组的用户。1. 权限控制用户组通过文件权限位(rwx)实现精细控制: ○ 文件权限分为所有者、所属组、其他组三部分(如 -rw-r--r--) ○ 通过 chmod 命令批量修改组权限(如原创 2025-03-25 12:22:25 · 732 阅读 · 0 评论 -
浅谈canal实例 在docker里面安装canal镜像 Canal监听MySQL数据库变更并同步更新Redis和Elasticsearch 示例
通过以上步骤,Spring Boot应用能够实时监听MySQL变更,并自动同步到Redis和Elasticsearch,保障数据一致性。原创 2025-03-20 21:27:54 · 585 阅读 · 0 评论 -
言简意赅 Linux部署elasticsearch7.15.2
byd折磨了我两天。原创 2025-03-19 21:26:16 · 467 阅读 · 0 评论 -
浅谈RabbitMQ Springboot3后终止自动注入服务 需要手写Bean并实例化bean(SpringBoot启动前) Could not autowire. No beans of ‘Rab
报错 Could not autowire. No beans of 'RabbitAdmin' type found.意思就是这个模版在高版本是需要自己去手写。手写 注册 Bean 注入。Spring 启动流程。原创 2025-03-09 16:29:08 · 107 阅读 · 0 评论 -
快速上手 代码详解 RabbitMQ简单实战 Spring框架下实现解耦 改造传统服务端代码
它就像是一个“调度员”,将接收到的请求进行初步处理后,调用 Service 层的相应方法来完成具体的业务逻辑。这一层是业务逻辑的核心处理层,负责对 Controller 层传递过来的请求进行具体的业务处理。它会调用 Dao 层的方法来获取所需的数据,并对数据进行必要的处理和转换。在这种方案中,Service 层不再直接将处理后的数据返回给 Controller 层,而是将数据发布到消息队列中,Controller 层再从消息队列中获取数据。监听到消息队列中有新的数据时,会将数据赋值给。原创 2025-03-07 16:42:25 · 581 阅读 · 0 评论 -
概念|RabbitMQ 消息生命周期 待消费的消息和待应答的消息有什么区别
以上流程体现了RabbitMQ在消息可靠性、灵活路由和异常处理上的核心设计,实际应用中需根据业务场景组合配置参数。如需进一步了解 RabbitMQ 消息生命周期,可参考 关于消费模式的解析或 中的应答机制实验代码。若未持久化且服务崩溃可能丢失。已分配给消费者但未确认(队列中未分配给消费者(消费者未确认且连接中断。可能因队列未持久化丢失。原创 2025-03-07 16:20:42 · 809 阅读 · 0 评论 -
RabbitMQ控制台详解 中文讲解 软件工业化生产 rabbitmq-management 索引速查
rabbitmq-management是RabbitMq web管理端,用的是erlang的cowboy框架进行开发。web页面包括Overview(概述)Connections(连接)Channels(通道)Exchanges(交换器)Queues(队列)Admin(用户管理)。转载 2025-03-07 16:14:23 · 23 阅读 · 0 评论 -
快速开始 | Springboot操作RabbitMQ太简单啦! 编写RabbitmqConfig 基于模版向下封装Service 跑通Junit测试
【Java代码】快速开始 | Springboot->消息队列RabbitMQ 编写RabbitmqConfig 基于模版向下封装Service 跑通Junit测试。原创 2025-03-07 14:26:11 · 343 阅读 · 0 评论 -
2024 VMpro 虚拟机中如何给Ubuntu Linux操作系统配置联网
这边刚刚去查了一下 114.114.114.114 是国内的IP地址。注意的是首选的DNS服务器必须是114.114.114.114。8.8.8.8 是国外的IP地址 比较卡。现在这是一个联网的状态。可以在商店里面下载东西。原创 2024-09-16 20:51:30 · 92021 阅读 · 0 评论 -
JavaWeb后端开发Spring框架之消息 消息队列案例--订单短信通知
当涉及使用Spring框架进行消息队列的订单短信通知时,你可以考虑以下步骤和实现方法:1. 确定技术栈和工具首先,你需要选择合适的消息队列技术。常见的选择包括:Apache KafkaRabbitMQActiveMQ这些消息队列系统都能够与Spring框架很好地集成,并且有广泛的社区支持和文档资源。2. 配置消息队列选择一个消息队列系统并设置好你的消息队列服务器。确保你有权限访问该队列,以便生产和消费消息。3. 创建订单服务创建一个Spring服务来处理订单相关的逻辑。这可能包括原创 2024-06-23 18:58:48 · 96515 阅读 · 0 评论 -
后端开发Spring框架之消息介绍 同步异步 JMS AMQP MQTT Kafka介绍
消息在实际生活中的应用很常见Spring提供了一整套丰富的消息处理功能,从基础的消息传递接口到对各种消息中间件的支持,使开发者能够方便地构建消息驱动的应用程序。无论是同步还是异步消息传递,Spring都有相应的解决方案,能够满足不同场景下的需求。同步消息 讨债需要别人进行回应和响应异步消息 请帖不需要别人回应原创 2024-06-23 18:42:16 · 91913 阅读 · 0 评论 -
Web后端Javaee企业级开发之定时任务 Springboot整合任务框架Quartz和Task详解
在Java EE企业级开发中,定时任务(也称为后台调度或周期性任务)是非常常见的一种功能,主要用于执行那些不需要用户交互,但需要按照预定时间间隔或事件触发的任务。Java EE提供了几个框架和API来处理这种需求:Java.util.Timer和TimerTask:这是最早的定时任务解决方案,它允许你在主线程之外执行任务。然而,这通常用于一次性任务,不是特别适合复杂的业务逻辑,因为线程安全性较差。ScheduledExecutorService:这个API在Java并发包中,提供了更高级别的定时任务支持。你原创 2024-06-19 14:08:57 · 96500 阅读 · 0 评论 -
SpringBoot配置第三方专业缓存框架j2cache
这不是一个缓存这是一个缓存框架J2Cache, 也称为Java Cache或JSR-107,是一个用于缓存管理的标准API,它允许开发者在Java应用程序中实现分布式、基于内存的缓存。J2Cache主要通过接口提供功能,用于存储和检索数据,以提高性能和减少数据库访问。以下是J2Cache的一些关键点:我们查看maven工程这代表我们要使用的框架j2cache以及的我们要使用的两个缓存技术redis和j2cache指定j2cache的配置文件是j2cache.properties我们原创 2024-06-18 22:00:37 · 96769 阅读 · 0 评论 -
SpringBoot配置第三方专业缓存技术jetcache方法缓存方案
JetCache 是一个基于 Java 的缓存库,支持多种缓存方案和缓存策略,主要用于提升应用程序的性能和响应速度。它提供了多种缓存模式和特性,可以根据需求选择合适的缓存方案。JetCache 的主要特点和功能支持多种缓存后端:JetCache 支持多种缓存后端,包括 Redis、Caffeine、LevelDB 等,可以根据项目的需要选择合适的后端存储。多种缓存模式:Local Cache:本地缓存,使用 Caffeine 或者 ConcurrentHashMap 等,适用于单个应用节点内原创 2024-06-18 09:31:48 · 96807 阅读 · 0 评论 -
SpringBoot配置第三方专业缓存技术jetcache远程缓存方案和本地缓存方案
是一个基于 Java 的分布式缓存解决方案,旨在提供高性能和可扩展性。它支持多种后端存储,如 Redis、Hazelcast、Tair 等,可以作为应用程序的缓存层,有效地提升数据访问性能和响应速度。原创 2024-06-17 17:24:36 · 53019 阅读 · 0 评论 -
SpringBoot配置第三方专业缓存技术Memcached 下载 安装 整合测试 2024年5000字详解
我们需要在命令行窗口启动memcached.exe -d installmemcached.exe -d startmemcached.exe -d stop我们打开任务管理器 发现成功运行问题是springboot提供整合技术还没有纳入到整合中我们打开idea因为springboot没有整合根本没有配置所以我们直接采取硬编码的形式我们直接进行依赖注入书写完毕我们要去改一下缓存的注释我们把之前采用的缓存方案全部注释掉启动成功就是手搓客户端对象然后交给spring原创 2024-06-17 12:58:55 · 96860 阅读 · 0 评论 -
SpringBoot配置第三方专业缓存技术Redis
Redis作为一种高性能、多功能的内存中数据存储系统,不仅适合作为缓存使用,还可以作为数据库和消息中间件使用。它的特点包括快速访问、丰富的数据结构、高度可扩展性和强大的功能,因此被广泛应用于各种大规模应用和系统中,尤其在需要快速响应和高并发的场景下表现突出。原创 2024-06-16 16:52:24 · 96517 阅读 · 0 评论 -
SpringBoot配置第三方专业缓存技术Ehcache
我们刚才是用Springboot提供的默认缓存技术我们用的是simple是一个内存级的缓存我们接下来要使用专业的缓存技术了Ehcache 是一个流行的开源 Java 分布式缓存,由 Terracotta 公司开发和维护。它提供了一个快速、可扩展、易于集成的内存缓存解决方案,常被用于提升应用程序的性能和扩展性。Ehcache 最初是作为一个基于 Java 的进程内缓存而设计的,后来也支持了分布式缓存的特性。原创 2024-06-16 15:35:12 · 96839 阅读 · 0 评论 -
案例 采用Springboot默认的缓存方案Simple在三层架构中完成一个手机验证码生成校验的程序
Cacheable是 Spring Framework 提供的一个注解,用于在方法执行前先检查缓存,如果缓存中已存在对应的值,则直接返回缓存中的值,而不执行该方法体。如果缓存中不存在对应的值,则执行方法体,并将方法的返回值存入缓存供下次使用。在 Spring Boot 中,@Cacheable注解通常与缓存管理器一起使用,可以轻松地在方法级别上实现缓存功能,避免不必要的重复计算或查询数据库操作,从而提高应用程序的性能和响应速度。原创 2024-06-16 10:35:21 · 97060 阅读 · 0 评论 -
微服务SpringCloud ES分布式全文搜索引擎简介 下载安装及简单操作入门
分布式全文搜索引擎我们天天在用ES搜索的时候要与多个信息进行匹配查找然后返回给用户首先ES会将数据库中的信息先进行一个拆分这个叫做分词是按照词语关键词拆的然后就能进行搜索的时候匹配对应的id每一个关键字对应若干id每一个id对应数据然后搜索的时候展示简化版数据点击简化版数据反映全部信息属于的是全文搜索在数据库中有索引在ES中也有索引但是根据关键字查ID 再由ID查数据这个在全文搜索里叫倒排索引倒排索引是怎么出现的呢是根据创建文档 出现一个一个的库。原创 2024-06-15 18:01:50 · 96769 阅读 · 0 评论