网站搭建框架是什么dede静态网站
2026/5/21 19:37:09 网站建设 项目流程
网站搭建框架是什么,dede静态网站,如何开通微信公众号,室内设计软件手机版在做项目的性能测试时#xff0c;MQ和Kafka经常会是项目服务架构中非常重要的组成部分#xff0c;负责处理大量的实时数据流#xff0c;如日志收集、消息队列、事件流处理等#xff0c;Kafka和MQ的性能会直接影响整个系统的表现。所以#xff0c;我们做性能测试的时候经常…在做项目的性能测试时MQ和Kafka经常会是项目服务架构中非常重要的组成部分负责处理大量的实时数据流如日志收集、消息队列、事件流处理等Kafka和MQ的性能会直接影响整个系统的表现。所以我们做性能测试的时候经常也需要关注一下MQ中间件的性能。消息队列【MQ】消息队列英文名Message Queue经常缩写为MQ。从字面上来理解消息队列是一种用来存储消息的队列我们可以简单理解消息队列就是将需要传输的数据存放在队列中。而真正用来存储消息的软件组件叫做消息队列中间件。举个例子来理解为了分析网站的用户行为我们需要记录用户的访问日志。这些一条条的日志可以看成是一条条的消息我们可以将它们保存到消息队列中。将来有一些应用程序需要处理这些日志就可以随时将这些消息取出来处理。目前市面上的消息队列的中间件有很多例如Kafka、RabbitMQ、ActiveMQ、RocketMQ、ZeroMQ等。MQ应用场景1、异步处理举例电商网站中新的用户注册时需要将用户的信息保存到数据库中同时还需要额外发送注册的邮件通知、以及短信注册码给用户。但因为发送邮件、发送注册短信需要连接外部的服务器需要额外等待一段时间这样就会造成用户的响应时间很长体验很差所以此时我们就可以使用消息队列来进行异步处理从而实现快速响应提高用户的体验。保存用户注册信息到数据库后就直接返回给用户响应消息这样用户就可以在非常短的时间里收到注册成功的使用体验而剩下的发送注册的邮件通知、以及短信注册码的消息写到消息队列里跟用户收到回复信息的步骤异步执行从而实现快速响应。2、系统解耦比如用户秒杀需要下单访问订单系统的时候订单系统需要保存用户的订单信息并且调用接口访问库存系统让库存系统同步减少库存在这个业务流程里如果库存系统出现的问题就会导致订单系统下单失败而且如果库存系统接口修改了会导致订单系统也无法工作了这样的设计会让两个系统之间的依赖性很强系统出现问题的场景就会比较多。为了解决以上问题我们可以使用消息队列来实现系统和系统之间的解耦。如下图所示订单系统不再调用库存系统的接口而是把订单消息写到消息队列里库存系统从消息队列中拉取消息然后再减库存从而实现系统解耦减少系统之间的依赖降低问题出现的频率。3、流量削峰这个场景也比较常见比如我们用12306抢火车票的时候上亿的用户会同时对服务器发起请求每一个请求都会去业务数据库里请求数据查询或者变更上的话数据库压力就会很大而且人越多反应越慢用户可能越会疯狂刷新页面这样会造成更大的并发瞬间会压垮mysql。所以为了解决以上的问题我们同样可以使用消息队列因为消息队列的吞吐量比起业务数据库的吞吐来你跟要大很多mysql数据库的吞吐量大概8000左右消息队列比如kafka中间件的吞吐量大概在10w左右。用户发给服务器的请求服务器先发给消息队列然后立马可以给用户返回用户端能看到的信息就可能是在排队中。这样用户有收到响应就不会疯狂刷新页面造成更大的压力了。4、日志处理大型电商网站淘宝、京东、国美、苏宁…、App抖音、美团、滴滴等等需要分析用户行为要根据用户的访问行为来发现用户的喜好以及活跃情况需要在页面上收集大量的用户访问信息。Kafka了解了消息队列之后kafka作为MQ中非常主流的一个的中间件我们来介绍一下kafka。kafka是一个分布式、高吞吐量、高扩展性的消息队列系统。主要应用在日志收集系统和消息系统也可以叫做KafkaMQ。总之Kafka比其他消息队列要好一点优点也比较多稳定性和效率都比较高。kafka的诞生背景kafka的诞生是为了解决linkedin的数据管道问题起初linkedin采用了ActiveMQ来进行数据交换大约是在2010年前后那时的ActiveMQ还远远无法满足linkedin对数据传递系统的要求经常由于各种缺陷而导致消息阻塞或者服务无法正常访问为了能够解决这个问题linkedin决定研发自己的消息传递系统当时linkedin的首席架构师jay kreps便开始组织团队进行消息传递系统的研发。在大数据技术领域一些重要的组件、框架都支持Apache Kafka不论成成熟度、社区、性能、可靠性Kafka都是非常有竞争力的一款产品。kafka的重要概念1producer生产者生产者就是发送消息的生产者每发送一个条消息必须有一个Topic主题也可以说是消息的类别生产者源源不断的向kafka服务器发送消息。2Topic主题每一个发送到Kafka的消息都有一个主题也可叫做一个类别类似我们传统数据库中的表名一样比如说发送一个主题为order的消息那么这个order下边就会有多条关于订单的消息只不过kafka称之为主题都是一样的道理3Partition分区生产者发送的消息数据Topic会被存储在分区中这个分区是想把数据分成多个块达到负载均衡合理的把消息分布在不同的分区上分区是被分在不同的B服务器上这样我们大量的消息就实现了负载均衡。每个Topic可以指定多个分区但是至少指定一个分区。每个分区存储的数据都是有序的不同分区间的数据不保证有序性。因为如果有了多个分区消费数据的时候肯定是各个分区独立开始的有的消费得慢有的消费得快肯定就不能保证顺序了。那么当需要保证消息的顺序消费时我们可以设置为一个分区只要一个分区的时候就只能消费这个一个分区那自然就保证有序了。4 Replica副本副本就是分区中数据的备份是Kafka为了防止数据丢失或者服务器宕机采取的保护数据完整性的措施一般的数据存储软件都应该会有这个功能。如果有某些服务器宕机我们可以通过副本恢复数据也可以暂时用副本中的数据来使用。5Broker实例或节点就是Kafka的实例启动一个Kafka就是一个Broker多个Brokder构成一个Kafka集群这就是分布式的体现服务器多了自然吞吐率效率啥的都上来了。6Consumer Group消费者组和 Consumer消费者Consume消费者来读取Kafka中的消息可以消费任何Topic的数据多个Consume组成一个消费者组一般的一个消费者必须有一个组Group名如果没有的话会被分一个默认的组名。如下图就包括了2个Producer生产者一个Topic主题3个Partition分区3个Replica副本3个BrokerKafka实例或节点一个Consumer Group消费者组其中包含3个Consumer消费者kafka 在性能测试中的应用场景1、在什么样的项目里需要关注kafka的性能如果 Kafka 是项目中数据流处理的核心部分负责处理大量的实时数据流如日志收集、消息队列、事件流处理等或者项目需要处理高吞吐量数据的场景中Kafka 的性能会直接影响整个系统的表现。如果系统依赖 Kafka 处理和传递大量消息测试 Kafka 的吞吐量、延迟等指标是至关重要的。2、在性能测试或实际生产环境中以下一些关键指标的异常可能表明 Kafka 出现了问题我们需要去分析和调优1 吞吐量下降系统整体的消息处理速度明显下降即每秒处理的消息数量减少。Kafka 的生产者或消费者无法以预期的速度发送或接收消息。可能原因Kafka 集群的带宽或 I/O 达到瓶颈导致无法处理更多的消息。分区数不足或副本同步速度过慢导致生产者和消费者的处理速度受到限制。内部队列如 Broker 的缓冲区或网络层队列积压导致吞吐量下降。2消息延迟增加从生产者发送消息到消费者接收到消息的时间端到端延迟显著增加。可能原因Kafka 的内部缓冲区或日志队列积压导致消息在 Broker 内部的处理变慢。网络延迟或带宽不足导致生产者或消费者与 Broker 之间的通信变慢。由于 Kafka 的副本同步问题例如 ISR 列表中有节点失效导致消息在写入时需要等待其他副本的同步增加延迟。3消费者滞后Lag增加Kafka 消费者滞后明显增加即消费者无法及时处理已提交到 Kafka 的消息造成未消费的消息积压。可能原因消费者的处理能力不足无法跟上生产者的消息发送速度。Kafka Broker 处理负载过高导致消息无法及时发送到消费者。分区分配不均或消费者群组配置不当导致部分分区处理速度远慢于其他分区。4磁盘 I/O 使用率过高Kafka Broker 的磁盘 I/O 使用率接近或达到100%导致系统性能下降。可能原因Kafka 日志文件的写入和清理操作频繁导致磁盘 I/O 成为瓶颈。Kafka 配置不当如日志分段log segment过小导致频繁的日志文件创建和删除操作。大量的持久化消息写入操作占用了磁盘带宽影响到 Kafka 的正常运行。5CPU 使用率过高Kafka Broker 的 CPU 使用率持续高企导致其他任务无法顺利执行。可能原因Kafka Broker 在处理大量请求如高频的生产和消费操作时占用大量 CPU 资源。数据压缩或解压缩、加密或解密操作过多导致 CPU 资源紧张。不合理的批量设置或频繁的上下文切换导致 CPU 负载过高。6网络带宽占用率过高Kafka Broker 的网络带宽使用接近或达到上限导致消息传输延迟或丢包。可能原因高频的数据传输或大量副本同步操作导致网络带宽不足。生产者和消费者之间的数据传输过于频繁超过了网络的处理能力。Kafka 集群中节点之间的副本同步流量过大影响了生产和消费的正常流量。7高频率的垃圾回收GC活动Kafka Broker 出现频繁的垃圾回收活动导致系统停顿和性能下降。可能原因Kafka 配置的内存heap size过小导致 JVM 频繁进行 GC 操作。Kafka 的内存管理不当导致内存碎片或大量对象驻留在堆内存中。由于高负载或错误的配置Kafka Broker 产生了大量短生命周期的对象增加了 GC 负担。8高频率的 ISR 列表变动Kafka 的 ISRIn-Sync Replica列表频繁变动导致分区副本状态不稳定。可能原因Kafka 集群中的某些 Broker 出现网络问题或资源不足导致副本掉线和恢复频繁发生。磁盘 I/O 性能问题或网络延迟导致副本无法及时同步数据进而被移出 ISR 列表。配置了过短的超时设置如 **replica.lag.time.max.ms导致副本被频繁踢出 ISR 列表。9消息丢失或重复系统中出现了消息丢失或重复消费的现象影响了数据的一致性。可能原因Kafka 的副本机制或事务性配置未正确设置导致在 Broker 故障或重启时发生消息丢失。消费者配置错误导致在重新平衡时重复消费消息。生产者在发送消息时未正确处理 acks 设置导致消息未被可靠接收。10集群的稳定性下降Kafka 集群中频繁出现节点失效、分区不可用、重新平衡等现象。可能原因Kafka Broker 配置不当或硬件资源不足导致在高负载下节点失效。网络问题导致 Kafka 集群中的节点无法正常通信引发集群不稳定。副本数量配置不足导致在节点失效时分区不可用。感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询