当前位置: 首页 > wzjs >正文

盐城网站优化价格营销怎么做

盐城网站优化价格,营销怎么做,软件开发培训有哪些,能交易的网站多少钱1.背景 目前我们生产环境使用的是 RocketMQ 4.7.1 版本,刚好最近遇到了一个消费阻塞的问题,如下图所示,假如 MQ 只有 2 个队列 A、B,当提交消息 1~6 时,按照 MQ 的默认分配策略,消息会被平均分配到两个队列…

1.背景

目前我们生产环境使用的是 RocketMQ 4.7.1 版本,刚好最近遇到了一个消费阻塞的问题,如下图所示,假如 MQ 只有 2 个队列 A、B,当提交消息 1~6 时,按照 MQ 的默认分配策略,消息会被平均分配到两个队列中,而处理结果可能会出现下图这样,消息 4 的处理耗时非常长,队列 A 中三个消息都被处理完了,队列 B 中的批次 5、6 还在等待处理;针对这个问题, Rocket MQ 5 的 pop 消费模式看上去是很好地解决了这个问题;再且没有找到官方的性能对比报告,于是这里针对 RockMQ 4 和 5 做个性能测试对比;  

2.POP 消费模式验证

具体步骤这里不详细描述,结果从下图日志可以看到 queue-0 一直都被 blockConsumer 消费,但是到了下方箭头部分 queue-0 的数据也能够被 normal 消费到了,说明 pop 模式起作用了,初步观察是 queue-0 有消息积压时才会被其他消费者消费到该队列的数据。

3.性能测试前磁盘 IO 测试

以下三份表格分别对四台机器做了不同场景的磁盘 IO 压测得到的吞吐量,根据 RocketMQ 的读写特性,写数据时属于顺序写,读属于随机读,如果只是简单根据下面的报告来看,那么 RocketMQ 的消息消费性能远远小于生产性能,而由于 RocketMQ 使用了 mmap 机制把磁盘文件和内存做映射,以及利用了磁盘的 page cache,大部分时候消息在内存中就已经被转发给了消费者,少量的会从磁盘 page cache 查出来转发给消费者,只有在生产速度大于消费速度时,数据被持久化到磁盘并且 page cache 已经被清除的情况下,RocketMQ 的消费性能才会出现明显下降。

机器CPU内存顺序读顺序写随机读随机写混合随机读写,70%读 30%写
A16核2000MHz64G 2500 MHz673MB/s174MB/s12.1MB/s13.8MB/s读:7.9MB/s写:3.4MB/s
B16核2600MHz16G 2600 MHz955MB/s238MB/s38.6MB/s19.9MB/s读:20.1MB/s写:8.6MB/s
C8核2500MHz16G 2000 MHz1201MB/s456MB/s50.8MB/s14.0MB/s读:22.3MB/s写:9.6MB/s
D32核2600MHz32G 2600 MHz1099.4MB/s254.3MB/s33.5MB/s16.0MB/s读:18.0MB/s写:7.7MB/s
测试工具 fio,文件大小30G,线程16,数据块16k,测试时长100秒,同步 IO,不经过文件系统
机器CPU内存顺序读顺序写随机读随机写混合随机读写,70%读 30%写
A16核2000MHz64G 2500 MHz71.9MB/s12.1MB/s1.2MB/s1MB/s读:0.65MB/s写:0.28MB/s
B16核2600MHz16G 2600 MHz88.9MB/s15.2MB/s2.6MB/s1.2MB/s读:1.18MB/s写:0.51MB/s
C8核2500MHz16G 2000 MHz54.2MB/s5.8MB/s3.3MB/s1.2MB/s读:0.41MB/s写:0.18MB/s
D32核2600MHz32G 2600 MHz84.7MB/s17.7MB/s2.1MB/s1.1MB/s读:1.16MB/s写:0.50MB/s
测试工具 fio,文件大小30G,线程16,数据块1k,测试时长100秒,同步 IO,不经过文件系统
机器CPU内存顺序读顺序写随机读随机写混合随机读写,70%读 30%写
A16核2000MHz64G 2500 MHz79.7MB/s12.1MB/s1.5MB/s0.9MB/s读:0.79MB/s写:0.34MB/s
B16核2600MHz16G 2600 MHz120MB/s15.9MB/s4.6MB/s1.1MB/s读:1.41MB/s写:0.60MB/s
C8核2500MHz16G 2000 MHz60.9MB/s5.8MB/s18.3MB/s1.2MB/s读:0.41MB/s写:0.18MB/s
D32核2600MHz32G 2600 MHz83.8MB/s18MB/s3.9MB/s0.9MB/s读:1.40MB/s写:0.56MB/s
测试工具 fio,文件大小30G,线程64,数据块1k,测试时长100秒,同步 IO,不经过文件系统

4.测试场景及结果

注意事项:该压测在于对 RocketMQ 4 和 5 在同样场景同样配置下的性能差异,而非性能摸高;

关键配置:这里保持和生产环境的 MQ 配置一致;

# 限制的消息大小  改为128M
maxMessageSize=134217728
# 发送消息的最大线程数
sendMessageThreadPoolNums=32
# 发送消息是否使用可重入锁
useReentrantLockWhenPutMessage=true
# 一次拉取允许的最大条数,默认是32
maxTransferCountOnMessageInMemory=2048
# 一次HA主从同步传输的最大字节长度,默认为32K
haTransferBatchSize=134217728
useEpollNativeSelector=true
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
maxTransferCountOnMessageInMemory=1000
transientStorePoolEnable=false
warmMapedFileEnable=false
pullMessageThreadPoolNums=128
transferMsgByHeap=true
mapedFileSizeConsumeQueue=50000000

测试工具:RocketMQ 官方自带 benchmark;

测试版本:RocketMQ 4.7.1、RocketMQ 5.3.0

机器用途:B 为主节点,A 为从节点以及 NameServer 节点,C 为生产者,D 为消费者;

指标解释

  • B2C:born2Consumer,表示从这个消息出生到消费间隔的时间;
  • S2C:store2Consumer,表示从这个消息保存在broker到消费的时间间隔;

压测命令

  • producer:sh producer.sh -t topic_benchmark_test -w <线程数> -s <消息大小> -n NameServer:9876
  • consumer:sh consumer.sh -t topic_benchmark_test -n NameServer:9876 -g group_benchmark_test

部署模式:1 主 1 从、8G 内存、存算一体、同步刷盘、异步写从

测试场景版本失败数发送最大 TPS

最大 RT(发送)

平均 RT(发送)

平均 RT(B2C)

平均 RT(S2C)

最大 RT(B2C)最大 RT(S2C)

60 线程

1K 消息

16 队列

40233793362.5654.5553.5277271
50203896832.941 4.3723.6005654

60 线程

2K 消息

16 队列

40177224703.3844.8623.4363231
50175083613.4256.2705.0945150

80 线程

1K 消息

16 队列

40229636373.4823.8992.206128127
50223758013.5754.8553.5904341

80 线程

2K 消息

16 队列

40190143964.2065.0252.9769689
50190277194.2035.4653.7973129

120 线程

1K 消息

16 队列

40268789414.4624.6912.4253229
50255454924.6956.5164.6553937

120 线程

2K 消息

16 队列

40206636925.80622.51619.358199197
502179710205.50425.93123.634134131

120 线程

100K 消息

16 队列

40507671023.64066.48044.567433411
507039144317.05027683.21227665.1132984929833

部署模式:1 主 1 从、8G 内存、存算一体、异步刷盘、同步写从

测试场景版本失败数发送最大 TPS

最大 RT(发送)

平均 RT(发送)

平均 RT(B2C)

平均 RT(S2C)

最大 RT(B2C)最大 RT(S2C)

60 线程

1K 消息

16 队列

40230137082.6064.2322.3493432
50224965332.6663.9213.1363331

60 线程

2K 消息

16 队列

40197127543.042147.402145.381329327
50183093613.2755.1104.2284436

80 线程

1K 消息

16 队列

40247673953.2295.1072.751128126
50251664923.182 4.3173.2433534

80 线程

2K 消息

16 队列

40226283733.5341077.7601075.04012791277
50216568763.69311.42010.1267978

120 线程

1K 消息

16 队列

40286136874.1928.3925.6225957
50346028473.4676.7385.5074241

120 线程

2K 消息

16 队列

402356311315.09121670.38721666.4432222022217
50214679045.588217.787215.584637635

120 线程

100K 消息

16 队列

40594277620.18741077.35641055.9764180441786
50654684719.13118479.36518461.6941881118793

5.总结

  1. 总体上看性能差不多,但是对于消息体不大的我们常用的场景 RocketMQ 4 比 5 要好一丢丢; 
  2. RocketMQ 5 在需要主从同步的场景稳定性会比 4 更好;
  3. 对于其他性能相关的参数配置暂未调整,可能会有不一样的表现但应该差距不会大;
  4. 存算分离模式因为从架构上看多了一层网络交互,所以从理论上性能会比主从模式更低,但是在大规模集群情况下会有明显的性能优势,我们系统暂时用不到所以这里没有测试;
  5. Dledger 模式和 Controller 模式属于高可用部署模式,也不在这探索;
http://www.dtcms.com/wzjs/176986.html

相关文章:

  • 设计师必备的国际设计网站免费二级域名申请网站
  • 网站开发保密协议书网络营销工具体系
  • wordpress外链插件pc优化工具
  • 南阳网站建设推广百度企业推广怎么收费
  • 电子科技公司网站网页设计数据分析报告
  • 辽宁建设厅官方网站sem推广竞价
  • 做暖暖视频网站观看企业软文范例
  • 推动高质量发展的措施什么公司适合做seo优化
  • 做类似美团的网站吗制作网站要找什么公司
  • 做网站需要学那几个软件抖音搜索引擎优化
  • 网站建设交流论坛免费开网店免费供货
  • 广州网站搭建百度推广开户多少钱一个月
  • 做网站公司牛鼻子网站优化排名推荐
  • 溧阳做网站价格深圳百度推广排名优化
  • 短视频运营公司网站建设站长之家产品介绍
  • 南昌电商购物网站开发制作网站公司
  • 市住建设局网站“跨年”等关键词搜索达年内峰值
  • 北京的广告公司有哪些东莞网站建设优化诊断
  • 深圳专业优定软件网站建设百度电脑网页版入口
  • 网站 配色百度一下就知道百度首页
  • 小程序ui设计seo外包大型公司
  • 做模具的网站网站优化排名方法有哪些
  • 网站前台设计工具网页设计论文
  • 台州网站建设维护永久免费自助建站系统
  • 权重查询站长工具苏州关键词优化怎样
  • 网站开发一般用什么数据库推广文案怎么写吸引人
  • 做网站网络公司无收入外链工具
  • 青岛网站建设公司有哪些跨境电商平台排行榜前十名
  • 设计制作小车的基本步骤北京seo分析
  • 另一更新正在进行 wordpressseo网络推广怎么做