自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DevOps海洋的渔夫@专栏

最新篇章尽在微信公众号:海洋的渔夫

  • 博客(877)
  • 资源 (2)
  • 收藏
  • 关注

原创 Spring Boot集成Redis Stream消息队列:从入门到实战

本文介绍了Spring Boot集成Redis Stream消息队列的实战方案。首先分析了Redis Stream作为消息队列的优势,包括高性能、持久化和消费者组支持。然后通过三个渐进式案例展示实现过程:1) 基础StringRedisTemplate实现;2) 多消费者组支持;3) 结合RedissonClient的完整方案,包含运维监控功能。文中提供了核心代码示例,如消息生产者的幂等发送、消费者的消息确认机制等关键实现,最终形成一个适合生产环境的消息队列解决方案。

2025-12-07 23:38:53 840

原创 13-ruby 迭代器详解

本文详细介绍了Ruby中的迭代器功能,包括基本概念、常用迭代器类型、自定义实现和性能优化。内容涵盖each/map/select等核心迭代器的使用,以及链式调用、惰性求值等高级特性。文章通过代码示例展示了如何利用迭代器简化集合操作,对比了迭代器与传统循环的差异,并提供了自定义迭代器实现方法和最佳实践建议。特别强调了在处理大数据集时使用lazy提升性能,以及如何通过符号到Proc语法精简代码。适合Ruby开发者系统学习迭代器用法和优化技巧。

2025-10-26 01:49:26 337

原创 12-ruby 文件、文件夹与时间处理详解

本文详细介绍了 Ruby 中的文件、文件夹与时间处理操作。主要内容包括:1) 文件基本操作(打开/关闭/读写)和模式选择;2) 目录管理(创建/删除/遍历)和临时目录使用;3) 时间处理(创建/格式化/计算)和时间组件获取。文章还提供了多个实用综合示例,如日志处理器、文件备份工具和时间间隔计算器,并分享了一些实用技巧,如文件编码处理、递归删除目录等。这些内容全面覆盖了 Ruby 中文件系统操作和时间处理的核心功能。

2025-10-26 01:48:20 358

原创 11-ruby 数组与哈希的详解

本文详细介绍了Ruby中的数组(Array)和哈希(Hash)两种核心数据结构。内容包括数组的创建、访问、操作方法(增删改查、遍历转换等),以及哈希的创建、键值操作、遍历合并等特性。文章还展示了数组与哈希之间的相互转换方法,并提供了一些实用技巧,如数组展开、哈希参数传递、符号数组创建等。通过丰富的代码示例,帮助读者掌握Ruby中这两种重要数据结构的操作和使用方法。

2025-10-26 01:45:29 309

原创 10-ruby 数值与字符串处理详解

本文详细介绍了Ruby中的数值与字符串处理方法。数值部分涵盖整数、浮点数、有理数和复数类型,以及基本运算、数学函数和类型转换。字符串部分包括多种创建方式、常用操作方法(查询、修改、分割)和类型转换技巧。还讲解了数值与字符串间的互转方法,并提供了格式化输出、字符串插值、多行处理和正则匹配等实用技巧。全文通过大量代码示例展示了Ruby处理数值和字符串的强大功能。

2025-10-26 01:43:05 316

原创 9-ruby 运算符的详解

本文详细介绍了Ruby中的各类运算符,包括算术运算符(+、-、*、/等)、比较运算符(==、!=、<=>等)、逻辑运算符(&&、||、^等)、赋值运算符(=、+=等)、位运算符(&、|、<<等)、三元运算符(?:)、范围运算符(..、...)以及特殊运算符(defined?、安全导航&.、匹配=~等)。文章还说明了运算符优先级顺序,并提供了运算符重载的示例代码,展示了如何通过自定义类实现运算符功能。这些内容全面覆盖了Ruby中运算符的使用方法和特性,适

2025-10-26 01:41:49 229

原创 8-ruby 模块的详解

本文详细介绍了Ruby模块(Module)的概念与使用方式。模块主要用于封装方法、常量和类,主要用途包括作为命名空间、混入(Mix-in)功能以及存储工具方法。文章对比了模块与类的区别,并通过代码示例展示了模块的三种主要用途:作为命名空间防止命名冲突、作为Mix-in为类添加功能、作为工具方法库使用。此外还介绍了模块扩展(extend)、钩子方法、模块组合、解决命名冲突等技术,并提供了模块使用的最佳实践建议,如命名清晰、单一职责、适当使用等。

2025-10-26 01:39:05 336

原创 7-ruby 类的定义与使用

本文介绍了Ruby中类的定义与使用。主要内容包括:类的基本语法和命名规则;类与实例的区别对比;自定义类的创建方法(初始化、实例方法、访问器);类方法与类变量的实现;继承机制;访问控制(public/protected/private);模块混入(Mixin)技术;以及类设计的最佳实践(单一职责、命名规范、适当封装等)。通过代码示例展示了如何定义类、创建实例、实现继承和模块混入等核心面向对象编程概念,为Ruby开发者提供了实用的类设计指南。

2025-10-26 01:31:35 320

原创 6-ruby 方法详解

" end greet # 输出: Hello, Ruby!# 方法重定义 def say_hi puts "Hi!" end say_hi # 输出: Hi!" end say_hi # 输出: Hello!

2025-10-26 01:28:32 180

原创 5-ruby 代码块和错误处理

本文介绍了Ruby中的代码块和错误处理机制。代码块使用do...end或{}语法,可作为方法参数,通过yield执行。错误处理部分讲解了begin-rescue结构(类似try-catch)、raise抛出异常、ensure确保执行(类似finally)和retry重试机制。还包括自定义异常类创建和最佳实践建议,如优先使用内置异常、捕获特定异常、合理释放资源等。提供了多个代码示例演示这些特性的实际应用。

2025-10-26 01:20:03 130

原创 4-ruby case语句和循环中的while语句以及until语句

本文介绍了Ruby中的case语句和循环控制结构。case语句是一种多条件分支结构,支持值匹配、范围匹配、正则表达式等多种形式,语法灵活且不需要break语句。循环部分重点讲解了while和until循环的基本用法,以及break和next关键字的使用技巧。文章通过多个代码示例展示了各种语法结构的实际应用,包括密码验证系统等综合案例。最后强调了Ruby循环中的注意事项,如避免无限循环、推荐使用迭代器等。

2025-10-26 01:13:31 771

原创 3-ruby 获取终端输入的值、if语句、unless语句的使用

if在 Ruby 中,unless是if的反向条件语句,用于“如果条件不成立,则执行”的场景。它的逻辑等同于if!condition,但语法更简洁易读。

2025-08-29 01:36:25 1053

原创 2-ruby 基本数据类型

核心概念:Ruby中万物皆对象,没有真正的基本数据类型,所有值都是类的实例对象分类:数字、文本、范围、符号、布尔值和nil,还有两种重要的数据结构——Array和Hash下面进入 irb 交互模式来逐个演示。

2025-08-29 01:34:39 821

原创 1-ruby介绍、环境搭建、运行 hello world 程序

这篇文章介绍了Ruby编程语言的基本特点和Windows系统下的环境搭建方法。 Ruby是一种开源的、面向对象的动态编程语言,具有简洁优雅的语法和强大的元编程能力。文章重点讲解了在Windows系统上安装Ruby的步骤: 首先需要安装PowerShell 5+和.NET Framework 4.5+ 使用rbenv-for-windows工具来管理Ruby版本 详细说明了如何配置PowerShell的profile文件 介绍了使用rbenv安装特定Ruby版本的方法 整个环境搭建过程包括安装必要的依赖工具、

2025-08-29 01:32:16 1139

原创 6.Gin 路由详解 - GET POST 请求以及参数获取示例

6.Gin 路由详解 - GET POST 请求以及参数获取示例GET POST 请求以及参数获取示例Get 请求:获取 Quary 参数//获取query参数示例:GET/user?uid=20&name=jack&page=1r.GET("/user",func(c*gin.Context){//获取参数//Query获取参数uid...

2023-11-20 00:45:32 1070

原创 2.Golang 热加载开发

2.Golang 热加载开发Golang 热加载开发在开发项目的过程中,如果总是要去重启服务,编译代码,总使一个繁琐的过程。当然,我们可以利用一些库协助我们热加载开发,不需要重复去重启服务了。热加载的工具工具 1(推荐):https://github.com/gravityblast/fresh#下载依赖库gogetgithub.com/pilu/fresh#使用热加载启动服务$...

2023-11-20 00:45:32 656

原创 4.Gin HTML 模板渲染

4.Gin HTML 模板渲染Gin HTML 模板渲染1. 全部模板放在一个目录里面的配置方法创建用于渲染的模板htmltemplates/index.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</t...

2023-11-20 00:45:32 749

原创 7.Gin 路由详解 - 路由分组 - 路由文件抽离

7.Gin 路由详解 - 路由分组 - 路由文件抽离前言在前面的示例中,我们直接将路由的定义全部写在 main.go 文件中,如果后面 路由越来越多,那将会越来越不好管理。所以,下一步我们应该考虑将路由进行分组管理,并且将其抽离 main.go的文件。1696330394289路由分组我们可以将相同模块路径的作为一组,将路由进行分组处理。1696330862506//2.1路由分组//设置...

2023-11-20 00:45:32 624

原创 8.Gin 自定义控制器

8.Gin 自定义控制器前言在上一篇路由文件抽离的过程中,我们发现接口的业务逻辑还写在路由配置中,如下:1696385129126但是如果业务逻辑比较多,如果写在路由之中,肯定不合适。我们可以将业务逻辑抽离,单独再写一个Controller的模块。自定义控制器下面我们自定义一个 AdminController 模块来作为示例。新增 controller/admin/AdminController....

2023-11-20 00:45:32 498

原创 5.Gin 静态文件服务

5.Gin 静态文件服务静态文件服务当我们渲染的 HTML 文件中引用了静态文件时, 我们需要配置静态 web 服务。代码示例准备静态文件1696178698221h1{color:red;}配置静态文件的加载1696178751358//定义静态文件路径r.Static("/static","static")“前面的/static 表示路由 后面的./static 表示路径”...

2023-11-20 00:45:32 2772

原创 1.Gin 介绍

1.Gin 介绍介绍Gin 是一个 Go (Golang) 编写的轻量级 http web 框架,运行速度非常快,如果你是性能和高效的追求者,我们推荐你使用 Gin 框架。Gin 最擅长的就是 Api 接口的高并发,如果项目的规模不大,业务相对简单,这个时候我们 也推荐您使用 Gin。当某个接口的性能遭到较大挑战的时候,这个还是可以考虑使用 Gin 重写接口。Gin 也是一个流行的 golang ...

2023-11-20 00:45:32 3107

原创 3.Gin 框架中的路由简要说明

3.Gin 框架中的路由简要说明Gin 框架中的路由路由概述路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET、POST 等)组成的,涉及到应用如何响应客户端对某个网站节点的访问。RESTful API 是目前比较成熟的一套互联网应用程序的 API 设计理论,所以我们设计我们的路由的时候建议参考 RESTful API 指南。在 RESTful 架构中,每个网...

2023-11-20 00:45:32 2933

原创 12--Gradle进阶 - Gradle任务的类型

12--Gradle进阶 - Gradle任务的类型任务类型前面我们定义的task 都是DefaultTask 类型的,如果要完成某些具体的操作完全需要我们自己去编写gradle 脚本,势必有些麻烦,那有没有一些现成的任务类型可以使用呢?有的,Gradle 官网给出了一些现成的任务类型帮助我们快速完成想要的任务,我们只需要在创建任务的时候,指定当前任务的类型即可,然后即可使用这种类型中的属性和AP...

2023-06-25 09:01:26 911 1

原创 8--Gradle进阶 - Gradle任务的入门、任务行为

8--Gradle进阶 - Gradle任务的入门、任务行为Gradle TaskGradle 项目工程的管理 实质上是 Task 对象的集合。一个 Task 表示一个逻辑上较为独立的执行过程,比如编译Java 源代码,拷贝文件, 打包Jar 文件,甚至可以是执行一个系统命令。另外,一个 Task 可以读取和设置Project 的Property 以完成特定的操作。下面我们来看看如何编写 Grad...

2023-06-25 09:01:26 894

原创 11--Gradle进阶 - Gradle任务的定义方式、指定任务的属性

11--Gradle进阶 - Gradle任务的定义方式、指定任务的属性前言在前面的篇章中,我们写了不少 task 任务,但是任务完整的定义方式,指定哪些任务属性 没有一个归纳的总结。本篇章我们来熟悉一下。任务定义方式任务定义方式,总体分为两大类:一种是通过 Project 中的task()方法另一种是通过tasks 对象的 create 或者register 方法。// 1.通过 Project...

2023-06-25 09:01:26 1603

原创 9--Gradle进阶 - Gradle任务的依赖方式

9--Gradle进阶 - Gradle任务的依赖方式前言Gradle Task 任务之间是可以配置依赖的,那么为什么要配置依赖?因为任务有可能依赖其他任务执行完毕之后,才可以开始执行。对于这种情况,我们就可以通过任务的依赖来控制。下面来介绍一下任务的依赖方式。任务的依赖方式Task 之间的依赖关系可以在以下几部分设置:参数依赖内部依赖外部依赖方式一:参数方式依赖下面我们定义 task A、tas...

2023-06-25 09:01:26 2191

原创 10--Gradle进阶 - Gradle任务的执行

10--Gradle进阶 - Gradle任务的执行前言在前面的篇章中,我们尝试执行了 gradle 的 task,但是不清楚有哪些语法,下面来介绍一下。任务执行任务执行语法:gradle [taskName...] [--option-name...]。分类解释常见的任务(*)gradle build: 构建项目:编译、测试、打包等操作gradle run :运行一个服务,需要applicati...

2023-06-25 09:01:26 3232

原创 2--Gradle入门 - Groovy简介、基本语法

2--Gradle入门 - Groovy简介、基本语法Gradle 需要 Groovy 语言的支持,所以本章节主要来介绍 Groovy 的基本语法。1.Groovy 简介在某种程度上,Groovy 可以被视为Java 的一种脚本化改良版,Groovy 也是运行在 JVM 上,它可以很好地与 Java 代码及其相关库进行交互操作。它是一种成熟的面向对象编程语言,既可以面向对象编程,又可以用作纯粹的脚...

2023-06-12 08:41:33 3310

原创 4--Gradle入门 - 创建普通的web工程

4--Gradle入门 - 创建普通的web工程前言上一篇,我们已经创建了java工程,本篇章再来创建web工程。“其实没啥用,还是研究如何部署 Springboot 环境就好了”创建普通的web工程1. 新建 gradle 管理的工程项目16858628472242. 设置项目使用本地的 gradle设置 Gradle user home:默认会设置 GRADLE_USER_HOME 的缓存仓库...

2023-06-12 08:41:33 973

原创 5--Gradle入门 - junit 的使用

5--Gradle入门 - junit 的使用Gradle 对测试支持测试任务自动检测并执行测试源集中的所有单元测试。测试执行完成后会生成一个报告。支持JUnit 和 TestNG 测试。默认测试目录及标准输出imgJunit 使用Gradle 对于Junit4.x 支持dependencies{testImplementationgroup:'junit',name:'jun...

2023-06-12 08:41:33 2757

原创 1--Gradle入门 - 简介、安装、目录结构、创建项目

1--Gradle入门 - 简介、安装、目录结构、创建项目Gradle 官网Gradle官网地址:Gradle Build ToolGradle官方下载安装教程页面:https://gradle.org/install/Gradle官方用户手册:https://docs.gradle.org/current/userguide/userguide.html1. Gradle入门1.1 简介Grad...

2023-06-12 08:41:33 31016 3

原创 7--Gradle进阶 - settings.gradle的文件说明

7--Gradle进阶 - settings.gradle的文件说明前言介绍 settings.gradle 文件之前,先来说明一下,settings.gradle 主要是用来多模块工程使用的。所以我们先来创建一个多模块的工程。多模块工程创建1. 创建 root 工程16858777561761.1 配置本地 Gradle16858780537281.2 配置依赖1685878091474plug...

2023-06-12 08:41:33 2347

原创 6--Gradle进阶 - 项目的生命周期

6--Gradle进阶 - 项目的生命周期项目的生命周期Gradle 项目的生命周期分为三大阶段: Initialization -> Configuration -> Execution. 每个阶段都有自己的职责,具体如下图所示:imgInitialization 阶段主要目的是初始化构建, 它又分为两个子过程,一个是执行 Init Script,另一个是执行 Setting Scr...

2023-06-12 08:41:33 620

原创 3--Gradle入门 - 创建普通的Java工程

3--Gradle入门 - 创建普通的Java工程前言前面我们以及尝试过使用 Gradle 创建项目,下面我们使用 Idea 来创建普通的Java工程创建普通的Java工程1. 创建 Gradle 管理依赖的项目1685795605292语言设置 Java依赖设置 GradleDSL 使用 Groovy2. 设置项目使用本地的 gradle1685795743303设置 Gradle user h...

2023-06-12 08:41:33 1673

原创 17-RabbitMQ高级特性-日志与监控

17-RabbitMQ高级特性-日志与监控RabbitMQ日志RabbitMQ默认日志存放路径: /var/log/rabbitmq/rabbit@xxx.log日志包含了RabbitMQ的版本号、Erlang的版本号、RabbitMQ服务节点名称、cookie的hash值、RabbitMQ配置文件地址、内存限制、磁盘限制、默认账户guest的创建以及权限配置等等。我们登录服务器,查看一下日志如下...

2023-01-27 23:00:13 656

原创 18-RabbitMQ高级特性-消息追踪

18-RabbitMQ高级特性-消息追踪消息追踪在使用任何消息中间件的过程中,难免会出现某条消息异常丢失的情况。对于 RabbitMQ 而言,可能是因为生产者或消费者与RabbitMQ 断开了连接,而它们与 RabbitMQ 又采用了不同的确认机制;也有可能是因为交换器与队列之间不同的转发策略;甚至是交换器并没有与任何队列进行绑定,生产者又不感知或者没有采取相应的措施;另外 RabbitMQ 本身...

2023-01-27 23:00:13 337

原创 15-RabbitMQ高级特性-死信队列

15-RabbitMQ高级特性-死信队列死信队列死信队列,英文缩写:DLX 。Dead Letter Exchange(死信交换机),当消息成为Dead message后,可以被重新发送到另一个交换机,这个交换机就是DLX。消息成为死信的三种情况:队列消息长度到达限制;消费者拒接消费消息,basicNack/basicReject,并且不把消息重新放入原目标队列,requeue=false;原队...

2023-01-27 23:00:13 612

原创 14-RabbitMQ高级特性-TTL

14-RabbitMQ高级特性-TTL前言在业务开发中有时候会有这样的需求,例如 12306 购买车票,我们必须在30分钟内进行付款,如果超过30分钟,则该订单将会被自动取消。要满足这个需求,可以采用 TTL 的这个特性功能。TTLTTL 全称 Time To Live(存活时间/过期时间)。当消息到达存活时间后,还没有被消费,会被自动清除。RabbitMQ可以对消息设置过期时间,也可以对整个队列...

2023-01-27 23:00:13 921

原创 19-RabbitMQ应用问题-消息补偿

19-RabbitMQ应用问题-消息补偿RabbitMQ应用问题消息可靠性保障消息补偿机制消息幂等性保障乐观锁解决方案消息可靠性保障需求:100%确保消息发送成功消息可靠性保障--消息补偿Producer1.业务数据入库DB,保证消息持久化2.发送消息至消费队列Q1(中间有交换机就不写了)3.延迟发送消息队列Q3(用于后续校验 2.发送的消息)Consumer4.监听队列Q1:如果消费成功,则将消...

2023-01-27 23:00:13 614

原创 20-RabbitMQ应用问题-消息幂等性保障

20-RabbitMQ应用问题-消息幂等性保障RabbitMQ应用问题消息可靠性保障消息补偿机制消息幂等性保障乐观锁解决方案消息幂等性保障幂等性指一次和多次请求某一个资源,对于资源本身应该具有同样的结果。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。在MQ中指,消费多条相同的消息,得到与消费该消息一次相同的结果。消息幂等性保障--乐观锁机制消息发送还是之前的消息补偿流程图,...

2023-01-27 23:00:13 453

Dell R720 安装Win2003 64位 sp2 的工具、安装文档

r720安装win2003的驱动程序、软件制作工具、网卡驱动等,全部都有。下载了,就可以装上去。 具体安装流程在我的博文里: http://blog.csdn.net/u012887259/article/details/17839665

2014-01-04

多份同样格式标题execl合并的工具

多份同样格式标题execl合并的工具,要注意检查好每份execl文件的标题要求是一致的,避免出错。

2017-11-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除