如何保证消息不被重复消费 如何保证消息不被重复消费?(如何保证消息消费的幂等性)举个例子吧。假设你有个系统,消费一条消息就往数据库里插入一条数据,要是你一个消息重复两次,你不就插入了两条,这数据不就错了?但是你要是消费到第二次的时候,自己判断一下是否已经消费过了,若是就直接扔了,这样不就保留了一条数据,从而保证了数据的正确性。一条数据重复出现两次,数据库里就只有一条数据,这就保证了系统的幂等性。幂等性,通俗点说,就...
RabbitMQ 的高可用集群 RabbitMQ 的高可用性RabbitMQ 是比较有代表性的,因为是基于主从(非分布式)做高可用的RabbitMQ 有三种模式:单机模式、普通集群模式、镜像集群模式。单机模式单机模式,生产几乎不用。普通集群模式(无高可用性)普通集群模式,有服务器ABC,在服务器ABC上分别启动RabbitMQ实例,生产者生产消息1,随机发给某一实例A,实例BC上记录消息1的原数据信息(比如消息1具体...
MQ之基本应用 简介消息队列 MQ 既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。应用场景削峰填谷:诸如秒杀、抢红包、企业开门红等大型活动时皆会带来较高的流量脉冲,或因没做相应的保护而导致系统超负荷甚至崩溃,或因限制太过导致请求大量失败而影响用户体验,消息队列 MQ 可提供削峰填谷的服务来解决该问题。异步解耦:交易系统作为淘宝/天猫主...
MQ基本应用场景 简介消息队列 MQ 既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。应用场景削峰填谷:诸如秒杀、抢红包、企业开门红等大型活动时皆会带来较高的流量脉冲,或因没做相应的保护而导致系统超负荷甚至崩溃,或因限制太过导致请求大量失败而影响用户体验,消息队列 MQ 可提供削峰填谷的服务来解决该问题。异步解耦:交易系统作为淘宝/天猫主...
MQ应用之解耦 简介消息队列 MQ 既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。应用场景削峰填谷:诸如秒杀、抢红包、企业开门红等大型活动时皆会带来较高的流量脉冲,或因没做相应的保护而导致系统超负荷甚至崩溃,或因限制太过导致请求大量失败而影响用户体验,消息队列 MQ 可提供削峰填谷的服务来解决该问题。异步解耦:交易系统作为淘宝/天猫主...
nginx 前后端分离 代理转发,解决跨域问题 场景适用于公司有前端,项目采用前后端分离。类似于我们 后端 springboot 提供接口,前端专门写html调用相应的接口,解决跨域问题配置说明 worker_processes 1; events { worker_connections 10240; } http { in...
mac外接显示器 字体发虚解决方案 描述今天买的LG性价比之王21:9的2k显示器到了,但是连接mbp后发现,字体发虚,模糊Macbook 外接显示器默认为 TV 模式,TV 渲染模式下,文字效果非常非常非常差解决下载 patch-edid.rb 这个文件到 mac 的Download 文件夹中。打开终端,cd Downloadsruby patch-edid.rb运行patch-edid.rb脚本后,...
SpringBoot Admin 使用指南 说明Spring Boot Admin 是一个管理和监控你的 Spring Boot 应用程序的应用程序。 这些应用程序通过 Spring Boot Admin Client(通过 HTTP)注册或者使用 Spring Cloud(例如 Eureka)发现。 UI只是 Spring Boot Actuator 端点上的一个 AngularJs 应用程序。创建服务创建spring boot...
执行数据库'INSERT'操作时事务无法回滚 在使用Spring声明式事务的时候,发现在做”update”时,出现异常事务可以回滚,但是在执行”insert”的时候,后台日志虽然显示回滚了,但是数据却已经保存到了数据库中,本来以为是哪里配置出错了,后来却发现是Mysql存储引擎的的问题。我们用的Mysql版本是”5.1.73”,默认存储引擎是”MyISAM”。查看mysql版本:mysql> select version(); -----...
Intellij IDEA基于Springboot的远程调试 简介本篇博客介绍一下在Intellij IDEA下对Springboot类型的项目的远程调试功能。所谓的远程调试就是服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内部状态。方法首先,打开Edit configurations,点击 号,创建一个Remote应用...
git log format 默认git log 出来的格式并不是特别直观,很多时候想要更简便的输出更多或者更少的信息,这里列出几个git log的format。可以根据自己的需要定制。git log命令可一接受一个--pretty选项,来确定输出的格式.比如 :如果我们只想输出hash. git log --pretty=format:"%h" 详细 命令 :'%H': commit hash...
Validator 常用注解 说明Validator主要是校验用户提交的数据的合理性的,比如是否为空了,密码长度是否大于6位,是否是纯数字的,等等。那么在spring boot怎么使用这么强大的校验框架呢。常用 @null 验证对象是否为空 @notnull 验证对象是否为非空 @asserttrue 验证 boolean 对象是否为 true @a...
Maven插件构建Docker镜像 背景微服务架构下,微服务在带来良好的设计和架构理念的同时,也带来了运维上的额外复杂性,尤其是在服务部署和服务监控上。单体应用是集中式的,就一个单体跑在一起,部署和管理的时候非常简单,而微服务是一个网状分布的,有很多服务需要维护和管理,对它进行部署和维护的时候则比较复杂。下面从Dev的角度来看一下Ops的工作。从Dev提交代码,到完成集成测试的一系列步骤如下:首先是开发人员把程序代码更新后上...
ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台 ELK平台介绍日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理...
ArchiSteamFarmV3.0使用服务器steam云挂卡 前言ASF不再基于.NET Framework 4.6.1(ASF V2系列)编写,如今使用.NET Core 2.0(ASF V系列)。值得庆幸的是,3.0系列的新出了linux版的程序,想在云端挂卡的童鞋,再也不用安装mono了,更不用使用win版的服务器,大大降低了使用内存,提高了运行速度等。安装步骤首页你要有一个云服务器,阿里云,腾讯云等等,也可以用跟国外免费的vps,随便一个都可以...
Jenkins 管道 工作流 自动化部署 jenkinsJenkins是一个用Java编写的开源的持续集成工具。在与Oracle发生争执后,项目从Hudson项目复刻。Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中(例如Apache Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC),可以执行基于A...
IntelliJ IDEA 使用 lombok 减少冗长代码 对于 POJO, 我们需要为其中的每个字段生成 getter,setter 方法, 虽然能够使用 IDE 快速为我们生成. 但如果需要修改字段名称及字段类型, 那么就需要删除在重新进行生成, 终究还是有一些不方便. 如果使用 lombok, 可以通过一些简单的注解直接生成我们所需要的代码, 能极大的提高开发体验.pom引入依赖 <dependency> ...
Spring Boot自定义Banner 启动效果步骤新建Spring Boot工程在/src/main/resources目录下创建一个banner.txt文件将ASCII字符画复制进去,就能替换默认的banner了 ${AnsiColor.BRIGHT_YELLOW} //////////////////////////////////////////////////////////...
使用 Jenkins 与 Sonar 集成对代码进行持续检测 SonarQube 与 Jenkins 简介SonarQube是 一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。同时,它提供了丰富的插件,支持多种语言的检测, 如 Java、Python、Groovy、C、C 等几十种编程语言的检测。它主要的核心价值体现在如下几个方面: * 检查代码是否遵循编程标准:如命名规范,编写的规范等。 ...