08 2020 档案
摘要:数组做为一种基础的数据存储结构,应用十分广泛。数组是用连续的内存空间来存储固定长度的、相同数据类型的一种数据结构。数据结构是跟语言无关的,这里,使用java来进行数组的相关操作。数组的索引是从0开始的。 一 数组初始化 创建数据有两种方式,一种是先声明一个固定长度的数据,然后再给数组赋值,另一种是直
阅读全文
摘要:昨天有个读者问了我这样一个问题在mysql中建表的时候,我设置一个字段为int类型,长度为1,但是我发现这个字段却可以存储任意长度的数字,这是什么情况?这个问题在我刚接触数据库的时候也遇到过,我觉得有必要写一篇文章来解释一下。 0 和 1 是计算机最基本的存储单位。也是 CPU 采用的最基本的计算单
阅读全文
摘要:SQL注入攻击是黑客对数据库进行攻击常用的手段之一,随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返
阅读全文
摘要:一 什么是死信队列 当一条消息在队列中出现以下三种情况的时候,该消息就会变成一条死信。 消息被拒绝(basic.reject / basic.nack),并且requeue = false 消息TTL过期 队列达到最大长度 当消息在一个队列中变成一个死信之后,如果配置了死信队列,它将被重新publi
阅读全文
摘要:一 重复消息 为什么会出现消息重复?消息重复的原因有两个:1.生产时消息重复,2.消费时消息重复。 1.1 生产时消息重复 由于生产者发送消息给MQ,在MQ确认的时候出现了网络波动,生产者没有收到确认,实际上MQ已经接收到了消息。这时候生产者就会重新发送一遍这条消息。 生产者中如果消息未被确认,或确
阅读全文
摘要:一条消费成功被消费经历了生产者->MQ->消费者,因此在这三个步骤中都有可能造成消息丢失。 一 消息生产者没有把消息成功发送到MQ 1.1 事务机制 AMQP协议提供了事务机制,在投递消息时开启事务支持,如果消息投递失败,则回滚事务。 自定义事务管理器 @Configuration public c
阅读全文
摘要:一大早,小王就急匆匆的跑过来找我,说:周哥,那个记录日志的功能我想请教一下。 因为公司某个项目要跟别的平台做对接,我们这边需要给他们提供一套接口。昨天,我就将记录接口日志的工作安排给了小王。 下面是我跟小王的主要对话。 我:说说怎么了? 小王:我将记录接口日志的功能放到了每个controller中,
阅读全文