随笔分类 -  中间件

摘要:实现最简单全面的Jenkins+docker+springboot 一键自动部署项目,步骤齐全,少走坑路。 环境:centos7+git(gitee) 简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Dockerfile和shell脚本实现项目自动拉取打包并运行。 一 阅读全文
posted @ 2022-08-23 09:03 苏先生139 阅读(247) 评论(0) 推荐(0) 编辑
摘要:消息重复消费 MQ的一条消息被消费者消费了多次 重复消费场景重现测试 如何解决消息重复消费的问题 编码 解决消息重复消费测试 消息重复消费 什么是消息重复消费? 首先我们来看一下消息的传输流程。消息生产者-->MQ-->消息消费者;消息生产者发送消息到MQ服务器,MQ服务器存储消息,消息消费者监听M 阅读全文
posted @ 2022-08-23 08:45 苏先生139 阅读(555) 评论(0) 推荐(0) 编辑
摘要:在现实生活中,某些类具有两个或多个维度的变化,如图形既可按形状分,又可按颜色分。如何设计类似于 Photoshop 这样的软件,能画不同形状和不同颜色的图形呢?如果用继承方式,m 种形状和 n 种颜色的图形就有 m×n 种,不但对应的子类很多,而且扩展困难。当然,这样的例子还有很多,如不同颜色和字体 阅读全文
posted @ 2021-05-22 11:28 苏先生139 阅读(330) 评论(0) 推荐(0) 编辑
摘要:1. 什么是Redis Redis是一个开源的内存数据库,它以键值对的形式存储数据。由于数据存储在内存中,因此Redis的速度很快,但是每次重启Redis服务时,其中的数据也会丢失,因此,Redis也提供了持久化存储机制,将数据以某种形式保存在文件中,每次重启时,可以自动从文件加载数据到内存当中。 阅读全文
posted @ 2021-05-19 17:03 苏先生139 阅读(691) 评论(0) 推荐(0) 编辑
摘要:主要是关于ActiveMQ集群,这里采用的方式是:Zookeeper+LevelDB+ActiveMQ。 利用Zookeeper实现ActiveMQ的高可用话不多说,先来看一张ActiveMQ官方提供的架构图: Master/Slave broker的信息要注册到ZK 注意到只有Master对外提供 阅读全文
posted @ 2020-12-01 17:41 苏先生139 阅读(126) 评论(0) 推荐(0) 编辑
摘要:本篇主要讨论的话题是:消息的顺序消费、JMS Selectors、消息的同步/异步接受方式、Message、P2P/PubSub、持久化订阅、持久化消息到MySQL以及与Spring整合等知识。 消息的顺序消费 在上一篇文章中,我们已经明确知道了ActiveMQ并不能保证消费的顺序性,即便我们使用了 阅读全文
posted @ 2020-12-01 17:34 苏先生139 阅读(119) 评论(0) 推荐(0) 编辑
摘要:JMS 首先来说较早以前,也就是没有JMS的那个时候,很多应用系统存在一些缺陷: 1.通信的同步性 client端发起调用后,必须等待server处理完成并返回结果后才能继续执行 2.client 和 server 的生命周期耦合太高 client进程和server服务进程都必须可用,如果serve 阅读全文
posted @ 2020-12-01 17:21 苏先生139 阅读(139) 评论(0) 推荐(0) 编辑
摘要:前言:在分布式环境中,我们经常使用锁来进行并发控制,锁可分为乐观锁和悲观锁,基于数据库版本戳的实现是乐观锁,基于redis或zookeeper的实现可认为是悲观锁了。乐观锁和悲观锁最根本的区别在于线程之间是否相互阻塞。 那么,本文主要来讨论基于redis的分布式锁算法问题。 从2.6.12版本开始, 阅读全文
posted @ 2020-12-01 10:57 苏先生139 阅读(121) 评论(0) 推荐(0) 编辑
摘要:其中有一个功能叫做领劵的订阅推送。什么是领劵的订阅推送?就是用户订阅了该劵的推送,在可领取前的一分钟就要把提醒信息推送到用户的app中。本来这个订阅功能应该是消息中心那边做的,但他们说这个短时间内做不了。所以让我这个负责优惠劵的做了-.-!。 具体方案就是到具体的推送时间点了,coupon系统调用消 阅读全文
posted @ 2020-12-01 10:45 苏先生139 阅读(149) 评论(0) 推荐(0) 编辑
摘要:不知道大家在初次使用docker的时候是否有遇到这种场景,每次部署微服务都是需要执行docker run xxx,docker kill xxx 等命令来操作容器。假设说一个系统中依赖了多个docker容器,那么对于每个docker容器的部署岂不是都需要手动编写命令来启动和关闭,这样做就会增加运维人 阅读全文
posted @ 2020-11-30 17:23 苏先生139 阅读(760) 评论(0) 推荐(0) 编辑
摘要:在之前的文章里面介绍了如何基于docker容器部署一些常见的基础环境,例如MySQL、Redis这些,那么这篇文章里面我会介绍一些关于SpringBoot如何打包运行到docker容器中。 先介绍一下需要准备的基础环境内容: 1.一台centos机器 docker运行在centos7上,要求系统为6 阅读全文
posted @ 2020-11-30 17:09 苏先生139 阅读(188) 评论(0) 推荐(0) 编辑
摘要:Docker 介绍 简单的对docker进行介绍,可以把它理解为一个应用程序执行的容器。但是docker本身和虚拟机还是有较为明显的出入的。我大致归纳了一下,可以总结为以下几点: docker自身也有着很多的优点,关于它的优点,可以总结为以下几项: 安装docker 从 2017 年 3 月开始 d 阅读全文
posted @ 2020-11-30 16:58 苏先生139 阅读(175) 评论(0) 推荐(0) 编辑
摘要:摘要 接触docker以来,似乎养成了一种习惯,安装什么应用软件都想往docker方向做,今天就想来尝试下使用docker搭建redis集群。 首先,我们需要理论知识:Redis Cluster是Redis的分布式解决方案,它解决了redis单机中心化的问题,分布式数据库——首要解决把整个数据集按照 阅读全文
posted @ 2020-11-30 11:19 苏先生139 阅读(655) 评论(0) 推荐(0) 编辑
摘要:一直都想自己动手搭建一个Redis集群和MySQL的主从同步,当然不是依靠Docker的一键部署(虽然现在企业开发用的最多的是这种方式),所以本文就算是一个教程类文章吧,但在动手搭建之前,会先聊聊理论的东西,以便于大家有一个集群和主从同步的概念 什么是Redis集群 简介 Redis是一个快速高效的 阅读全文
posted @ 2020-11-30 10:26 苏先生139 阅读(1219) 评论(0) 推荐(0) 编辑
摘要:Redis由浅入深剖析 前言 常用的SQL数据库的数据都是存在磁盘中的,虽然在数据库底层也做了对应的缓存来减少数据库的IO压力,但由于数据库的缓存一般是针对查询的内容,而且粒度也比较小,一般只有表中的数据没有发生变动的时候,数据库的缓存才会产生作用,但这并不能减少业务逻辑对数据库的增删改操作的IO压 阅读全文
posted @ 2020-11-30 10:02 苏先生139 阅读(133) 评论(0) 推荐(0) 编辑
摘要:前言 Nginx日志对于统计、系统服务排错很有用。 Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志)。通过访问日志我们可以得到用户的IP地址、浏览器的信息,请求的处理时间等信息。错误日志记录了访问出错的信息,可以帮助我们定位错误的原因。 本文将详细描述一下 阅读全文
posted @ 2020-11-30 09:45 苏先生139 阅读(281) 评论(0) 推荐(0) 编辑
摘要:一、Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好,提高收录量及排名等。 语法: rewrite <regex> <replacement> [flag 阅读全文
posted @ 2020-11-30 09:35 苏先生139 阅读(221) 评论(0) 推荐(0) 编辑
摘要:目录 应用场景 消息延迟推送的实现 测试结果 应用场景 目前常见的应用软件都有消息的延迟推送的影子,应用也极为广泛,例如: 淘宝七天自动确认收货。在我们签收商品后,物流系统会在七天后延时发送一个消息给支付系统,通知支付系统将款打给商家,这个过程持续七天,就是使用了消息中间件的延迟推送功能。 1230 阅读全文
posted @ 2020-11-26 15:50 苏先生139 阅读(731) 评论(0) 推荐(0) 编辑
摘要:一、List类型使用说明 list类型是用来存储多个有序的字符串的,支持存储2^32次方-1个元素。 redis可以从链表的两端进行插入(pubsh)和弹出(pop)元素,充当队列或者栈 支持读取指定范围的元素集 读取指定下标的元素等 注意它是链表而不是数组。这意味着 list 的插入和删除操作非常 阅读全文
posted @ 2020-11-26 15:45 苏先生139 阅读(2646) 评论(0) 推荐(0) 编辑
摘要:MQ的主要特点为解耦、异步、削峰,该文章主要记录与分享个人在实际项目中的RocketMQ削峰用法,用于减少数据库压力的业务场景,其中RocketMQ的核心组件概念如下: Producer:生产发送消息 Broker:存储Producer发送过来的消息 Consumer:从Broker拉取消息并进行消 阅读全文
posted @ 2020-11-25 08:48 苏先生139 阅读(1161) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示