qemu数据结构分析 这里主要分析queue.h头文件中包含的四种数据结构:1.单链表 2.双链表 3.简单队列 4.尾队列 一、单链表 1.1 应用场景 适用于数据量大的集合并且没有过多删除动作的场景,也适用做LIFO(后进先出)队列。 1.2 定义 /* Singly-linked List d ...
分类:
其他好文 时间:
2020-10-29 10:18:08
阅读次数:
25
这是一篇从去年写到今年的文章,希望大家会喜欢1.背景分布式事务一直是一个老生常谈的一个话题,在我的公众号下面下面已经写过很多篇分布式事务相关的文章了,但是依旧没有将其完全剖析。在之前的文章中我也多次提到我们可以使用消息队列来实现我们的分布式事务,但是大多都是一笔带过,很多读者都对这一块产生了很多疑问,希望读完这篇文章能让你理解如何用消息队列实现分布式事务。当然首先要回顾一下我们的一些基本概念:CA
分类:
其他好文 时间:
2020-10-29 10:02:05
阅读次数:
15
1.背景上篇文章介绍了RocketMQ整体架构和原理有兴趣的可以阅读一下,在这篇文章中的延时消息部分,我写道开源版的RocketMQ只提供了18个层级的消息队列延时,这个功能在开源版中显得特别鸡肋,但是在阿里云中的RocketMQ却提供了支持40天之内任意秒级延时队列,果然有些功能你只能充钱才能拥有。当然你或许想换一个开源的消息队列,在开源社区中消息队列延时消息很多都没有被支持比如:RabbitM
分类:
其他好文 时间:
2020-10-29 10:01:24
阅读次数:
17
背景本篇文章主要分享压测的(高并发)时候发现的一些问题。之前的两篇文章已经讲述了在高并发的情况下,消息队列和数据库连接池的一些总结和优化,有兴趣的可以在我的公众号中去翻阅。废话不多说,进入正题。事务,想必各位CRUD之王对其并不陌生,基本上有多个写请求的都需要使用事务,而Spring对于事务的使用又特别的简单,只需要一个@Transactional注解即可,如下面的例子:@Transactiona
分类:
编程语言 时间:
2020-10-29 09:59:52
阅读次数:
83
背景本篇文章主要分享压测的(高并发)时候发现的一些问题。之前的两篇文章已经讲述了在高并发的情况下,消息队列和数据库连接池的一些总结和优化,有兴趣的可以在我的公众号中去翻阅。废话不多说,进入正题。事务,想必各位CRUD之王对其并不陌生,基本上有多个写请求的都需要使用事务,而Spring对于事务的使用又特别的简单,只需要一个@Transactional注解即可,如下面的例子:@Transactiona
分类:
编程语言 时间:
2020-10-29 09:59:40
阅读次数:
20
1.背景最近一直再做一些系统上的压测,并对一些问题做了优化,从这些里面收获了一些很多好的优化经验,后续的文章都会以这方面为主。这次打压的过程中收获比较的大的是,对RocketMq的一些优化。最开始我们公司使用的是RabbitMq,在一些流量高峰的场景下,发现队列堆积比较严重,导致RabbitMq挂了。为了应对这个场景,最终我们引入了阿里云的RocketMq,RocketMq可以处理可以处理很多消息
分类:
其他好文 时间:
2020-10-29 09:59:01
阅读次数:
18
背景今天在脉脉上面看到了一个帖子,比较有意思:这个帖子的意思是:在使用Kafka的时候,我们已经设置了多个分区,如何去提升消费能力?如果使用线程池的方式去提升如何保证重启时消息不丢。这个题其实问了两个点,第一个是如何提升消费能力,第二个是如果选择线程池,我们如何做到消息不丢。这里先解释一下这两个问题到底是怎么回事,在很多消息队列中都有一个概念叫partion,代表着分区,分区是我们提高消息队列消费
分类:
编程语言 时间:
2020-10-29 09:42:12
阅读次数:
19
高并发场景下的限流策略在高并发的场景下,我们的优化和保护系统的方式通常有:多级缓存、资源隔离、熔断降级、限流等等。今天我们来聊聊限流。为什么需要限流举个比较简单的例子,正常来说,一个员工A他每天能够处理的工作是10个,突然某一天来了100个工作量,这时候,如果员工A还处理100个,只有一种可能,这个员工被压垮。如果我们能预先知道会有100个任务会来,我们通过增加员工数或定义消息队列等等来临时解决。
分类:
其他好文 时间:
2020-10-29 09:24:41
阅读次数:
18
Java中的List你真的会用吗?List是Java中比较常用的集合类,关于List接口有很多实现类,本文就来简单介绍下其中几个重点的实现ArrayList、LinkedList和Vector之间的关系和区别。ListList是一个接口,它继承于Collection的接口。它代表着有序的队列。当我们讨论List的时候,一般都和Set作比较。List中元素可以重复,并且是有序的(这里的有序指的是按照
分类:
编程语言 时间:
2020-10-29 09:23:54
阅读次数:
16
继上周的《Kafka生产者的使用和原理》,这周我们学习下消费者,仍然还是先从一个消费者的HelloWorld学起:publicclassConsumer{publicstaticvoidmain(String[]args){//1.配置参数Propertiesproperties=newProperties();properties.put("key.deserializer","org.apac
分类:
其他好文 时间:
2020-10-27 11:53:49
阅读次数:
25