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

做网站客户端发帖推广

做网站客户端,发帖推广,北京一环都是住什么人,网站app开发流程1、对于Rocketmq消息积压、丢失如何解决? 消息积压原因以及解决方案 🎯 产生原因: 消费者处理能力弱,消费速度远低于生产速度; 网络不稳定,消费者拉取消息失败; 消费端异常(如处理…

1、对于Rocketmq消息积压、丢失如何解决?

消息积压原因以及解决方案
🎯 产生原因:
消费者处理能力弱,消费速度远低于生产速度;

网络不稳定,消费者拉取消息失败;

消费端异常(如处理逻辑阻塞、宕机);

消费者线程数过少或消费逻辑中存在阻塞操作。

✅ 解决方案:
方法 说明

  1. 增加消费者实例数 RocketMQ 是天然支持水平扩展的,多实例消费同一个 Consumer Group 可以分担压力、如果消费实例大于队列Message Queue,就需要扩容Message Queue数量。
  2. 提高消费线程数 DefaultMQPushConsumer#setConsumeThreadMax(int) 调整线程数,提升并发消费能力
  3. 异步消费、批量消费 将消费逻辑异步化或开启批量消费(如一次拉取多条消息)以提升处理效率
  4. 降低发送速率(限流) 在生产端做速率控制,避免瞬时高并发导致积压
  5. 提高消费者异常容错能力 避免因为单条消息异常导致消费阻塞,如使用 try-catch 包裹消费逻辑并记录错误
  6. 利用监控预警 RocketMQ 提供消息堆积监控(通过 accumulationCount 指标),及时报警、自动扩容

消息丢失解决方案:
一、预防性原因以及解决方案(防止丢失)

消息丢失的常见原因:

场景可能原因
生产端丢失消息发送失败未处理;未等待 Broker 确认
Broker 丢失异步刷盘;Broker 崩溃前消息未持久化
消费端丢失消费成功但 offset 提交失败;消费失败但 offset 提交了

解决方案

  1. 生产者防丢措施:设置请求确认机制、使用同步发送、启用发送重试设置 setRetryTimesWhenSendFailed()来保证消息的可靠传递
  2. Broker持久化防丢措施:消息持久化、同步刷盘、使用主从模式。
    • 同步刷盘:在消息达到Broker的内存之后,必须刷到commitLog日志文件中才算成功,然后返回Producer数据已经发送成功。
    • 异步刷盘:异步刷盘是指消息达到Broker内存后就返回Producer数据已经发送成功,会唤醒一个线程去将数据持久化到CommitLog日志文件中。
  3. 消费者防丢措施:Consumer保证消息成功消费的关键在于确认的时机,不要在收到消息后就立即发送消费确认,而是应该在执行完所有消费业务逻辑之后,再发送消费确认、异常消费时不要返回成功状态、设置最大重试次数,消费失败消息自动转入死信队列,便于人工补偿。

二、补救性解决方案(已丢失处理)

  1. 消息溯源
    生产者日志:消息发送日志落盘
  2. 补偿机制
    定时校对:生产消费对账
  3. 死信处理
    DLQ监控:自动告警+人工处理
    面试时候总结的来说:主要通过…机制预防消息丢失,同时设计了…方案应对极端情况下的消息丢失"

2、

一、消息积压解决方案

3、JVM 常用工具命令大全

一、图形化工具

  1. JConsole
    启动命令:
jconsole

功能:
监控堆内存、线程、类加载情况
查看MBean信息
监控CPU使用率
支持远程连接JMX
2. VisualVM
启动命令:

jvisualvm

功能:
更强大的性能分析功能
支持插件扩展(如GC插件)
线程转储分析
内存采样和CPU分析
支持快照比

二、命令行工具

  1. jstat - JVM统计监控工具
    常用命令格式:
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

常用选项:
选项 说明
-class 类加载统计
-gc GC堆状态
-gccapacity 各区容量
-gcutil GC统计汇总
-gccause 最近GC原因
-gcnew 新生代统计
-gcold 老年代统计

每1秒打印一次GC情况,共打印5次

jstat -gcutil -h5 <pid> 1000 5

带时间戳输出

jstat -gc -t <pid> 1000
  1. jstack - 线程堆栈分析工具
    命令格式:
jstack [-l] [-F] <pid>

常用参数:
参数 说明
-l 长列表,打印锁的附加信息
-F 强制dump(当jstack无响应时使用)
-m 混合模式(Java和Native帧)

# 获取线程dump并输出到文件
jstack -l 1234 > thread_dump.txt
# 查找CPU高的线程(配合top命令使用)
top -H -p <pid>
printf "%x\n" <nid>  # 将线程ID转为16进制
jstack <pid> | grep -A 20 <nid_hex>
  1. jmap - 内存分析工具
    命令格式:
bash
jmap [option] <pid>

常用选项:
选项 说明
-heap 显示堆概要信息
-histo[:live] 显示堆中对象统计(live表示只统计存活对象)
-dump: 生成堆转储快照
-finalizerinfo 显示等待finalize的对象
示例:

# 生成堆dump文件(生产环境慎用,会STW)
jmap -dump:format=b,file=heap.hprof 1234# 显示存活对象统计
jmap -histo:live 1234 | head -20
  1. jinfo - 配置信息工具
    命令格式:
bash
jinfo [option] <pid>

常用功能:

# 查看所有系统属性
jinfo -sysprops <pid># 查看指定JVM参数
jinfo -flag MaxHeapSize <pid># 动态修改部分参数(仅支持可写的参数)
jinfo -flag +PrintGCDetails <pid>

四、使用技巧
组合使用示例:

# 快速诊断流程
jps -mlvV | grep <app_name>  # 找PID
jstat -gcutil <pid> 1000 5   # 看GC
jstack <pid> > thread.txt    # 线程分析
jmap -histo:live <pid> | head -20  # 对象统计

生产环境注意事项:

jmap -dump 会导致STW,谨慎使用

优先使用jcmd GC.heap_dump替代jmap

线程dump建议连续做3次(间隔5秒)

使用-F参数时可能造成JVM暂停更久

常用分析流程:

高CPU → top -H → jstack → 16进制线程ID匹配
内存泄漏 → jmap -histo → 分析大对象 → jmap -dump → MAT分析
GC问题 → jstat -gcutil → 分析各分区变化

http://www.dtcms.com/wzjs/501000.html

相关文章:

  • 白银网站建设公司国家认可的教育培训机构
  • 网站建设公司专业网站开发制作网店运营是做什么的
  • 营销型网站建设的特别之处都有哪些今天最新新闻事件报道
  • 外贸展示网站多少钱免费查权重工具
  • 为什么要立刻做网站售卖链接
  • 传奇私服哪个网站做的好网站推广app
  • 网站开发的最初阶段包括站长工具seo排名查询
  • 阿里云备案 网站备案域名购买微信公众号怎么做文章推广
  • 自己怎么样做游戏网站国家培训网官网
  • 全国代运营最好的公司百度seo排名优化提高流量
  • wordpress title 竖线seo搜索引擎优化入门
  • iis 设置网站权限软文交易平台
  • 钢管网站模板长沙网站策划
  • 在什么网站做贸易好俄罗斯搜索引擎yandex推广
  • 开发公司委托物业管养绿化协议搜索引擎seo关键词优化方法
  • 平板电脑可以做网站不宁波seo优化公司排名
  • wordpress4.9 环境快速优化系统
  • 用ssh做网站百度商家入驻
  • 高端网站开发哪家专业首页优化公司
  • 重庆seo技术博客网站怎么优化
  • 做视频哪个网站收入高网络营销的认知
  • 网站直播是未开票收入怎么做对网络营销的认识有哪些
  • 北京网站建设公司升上去销售平台软件有哪些
  • asp网站模版安装网络营销方法有哪几种
  • 描述网站的含义seo网络排名优化技巧
  • 永嘉移动网站建设公司好用的网站推荐
  • 报社新闻网站建设方案最新搜索引擎排名
  • 做网站要学那些网络营销的职能有哪些
  • 手机网站 需求模板搜索引擎数据库
  • 网站首页做的好看网站seo哪家好