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

唐山建设网站网站营销方案怎么写模板

唐山建设网站网站,营销方案怎么写模板,网络构建工作室,宜宾网站建设多少钱文章目录 前言一、什么是ActiveMQ二、ActiveMQ 服务器宕机怎么办?三、丢消息怎么办四、持节化消息非常慢五、消息的不均匀消费总结 前言 什么是ActiveMQActiveMQ 服务器宕机怎么办?丢消息怎么办持节化消息非常慢消息的不均匀消费 一、什么是ActiveMQ a…

文章目录

  • 前言
  • 一、什么是ActiveMQ
  • 二、ActiveMQ 服务器宕机怎么办?
  • 三、丢消息怎么办
  • 四、持节化消息非常慢
  • 五、消息的不均匀消费
  • 总结


前言

  1. 什么是ActiveMQ
  2. ActiveMQ 服务器宕机怎么办?
  3. 丢消息怎么办
  4. 持节化消息非常慢
  5. 消息的不均匀消费

一、什么是ActiveMQ

activeMQ 是一种开源的,实现了 JMS1.1 规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信


二、ActiveMQ 服务器宕机怎么办?

这得从 ActiveMQ 的储存机制说起。
在通常的情况下,非持久化消息是存储在内存中的,持久化消息是存储在文件中的,它们的最大限制在配置文件的 systemUsage 节点中配置。
但是,在非持久化消息堆积到一定程度,内存告急的时候,ActiveMQ 会将内存中的非持久化消息写入临时文件中,以腾出内存。虽然都保存到了文件里,但它和持久化消息的区别是,重启后持久化消息会从文件中恢复,非持久化的临时文件会直接删除。
那如果文件增大到达了配置中的最大限制的时候会发生什么?我做了以下实验:
设置 2G 左右的持久化文件限制,大量生产持久化消息直到文件达到最大限制,此时生产者阻塞,但消费者可正常连接并消费消息,等消息消费掉一部分,文件删除又腾出空间之后,生产者又可继续发送消息,服务自动恢复正常。
设置 2G 左右的临时文件限制,大量生产非持久化消息并写入临时文件,在达到最大限制时,生产者阻塞,消费者可正常连接但不能消费消息,或者原本慢速消费的消费者,消费突然停止。整个系统可连接,但是无法提供服务,就这样挂了。
具体原因不详,解决方案:尽量不要用非持久化消息,非要用的话,将临时文件限制尽可能的调大。

三、丢消息怎么办

这得从 java 的 java.net.SocketException 异常说起。简单点说就是当网络发送方发送一堆数据,然后调
用 close 关闭连接之后。这些发送的数据都在接收者的缓存里,接收者如果调用 read 方法仍旧能从缓存中
读取这些数据,尽管对方已经关闭了连接。但是当接收者尝试发送数据时,由于此时连接已关闭,所以会
发生异常,这个很好理解。不过需要注意的是,当发生 SocketException 后,原本缓存区中数据也作废了,
此时接收者再次调用 read 方法去读取缓存中的数据,就会报 Software caused connection abort: recv
failed 错误。
通过抓包得知,ActiveMQ 会每隔 10 秒发送一个心跳包,这个心跳包是服务器发送给客户端的,用来判
断客户端死没死。如果你看过上面第一条,就会知道非持久化消息堆积到一定程度会写到文件里,这个写
的过程会阻塞所有动作,而且会持续 20 到 30 秒,并且随着内存的增大而增大。当客户端发完消息调用
connection.close()时,会期待服务器对于关闭连接的回答,如果超过 15 秒没回答就直接调用 socket 层
的 close 关闭 tcp 连接了。这时客户端发出的消息其实还在服务器的缓存里等待处理,不过由于服务器心
跳包的设置,导致发生了 java.net.SocketException 异常,把缓存里的数据作废了,没处理的消息全部丢
失。
解决方案:用持久化消息,或者非持久化消息及时处理不要堆积,或者启动事务,启动事务后,commit()方法会负责任的等待服务器的返回,也就不会关闭连接导致消息丢失了。

四、持节化消息非常慢

默认的情况下,非持久化的消息是异步发送的,持久化的消息是同步发送的,遇到慢一点的硬盘,发送消息的速度是无法忍受的。但是在开启事务的情况下,消息都是异步发送的,效率会有 2 个数量级的提升。所以在发送持久化消息时,请务必开启事务模式。其实发送非持久化消息时也建议开启事务,因为根本不会影响性能。

五、消息的不均匀消费

有时在发送一些消息之后,开启 2 个消费者去处理消息。会发现一个消费者处理了所有的消息,另一个消费者根本没收到消息。原因在于 ActiveMQ 的 prefetch 机制。当消费者去获取消息时,不会一条一条去获取,而是一次性获取一批,默认是 1000 条。这些预获取的消息,在还没确认消费之前,在管理控制台还是可以看见这些消息的,但是不会再分配给其他消费者,此时这些消息的状态应该算作“已分配未消费”,如果消息最后被消费,则会在服务器端被删除,如果消费者崩溃,则这些消息会被重新分配给新的消费者。但是如果消费者既不消费确认,又不崩溃,那这些消息就永远躺在消费者的缓存区里无法处理。更通常的情况是,消费这些消息非常耗时,你开了 10 个消费者去处理,结果发现只有一台机器吭哧吭哧处理,另外 9 台啥事不干。
解决方案:将 prefetch 设为 1,每次处理 1 条消息,处理完再去取,这样也慢不了多少。


总结

  1. 什么是ActiveMQ
  2. ActiveMQ 服务器宕机怎么办?
  3. 丢消息怎么办
  4. 持节化消息非常慢
  5. 消息的不均匀消费
http://www.mnyf.cn/news/38345.html

相关文章:

  • 做网站收费 优帮云seo诊断方案
  • 电子商务网站建设一般流程cfa三级和一二级关系大吗
  • 品牌推广型网站seo主要优化
  • 网站配色 蓝色如何自己创建网站
  • 网站建设 万网网络推广服务合同范本
  • 有了源代码怎么做网站torrentkitty磁力猫
  • 英国做电商网站在线生成个人网站app
  • 多平台网站建设百度云资源搜索入口
  • 电商网站建设哪个好潍坊网站定制模板建站
  • 蒙古网站后缀cba最新消息
  • 套模版做网站搜索引擎优化方法包括
  • 网站建设业务范围最近热点新闻事件
  • 长沙电子商务网站建设朋友圈推广广告
  • 网站建设合同模板下载全媒体运营师报名费多少钱
  • 织梦上网站次导航怎么做网页广告怎么投放
  • 如何做网站优化代写软文公司
  • 可信网站友链怎么做正规拉新推广平台有哪些
  • 阿里云模板建站怎么样百度帐号注册
  • 做网站前台需要学什么 后台乐清网站建设
  • 招聘类网站建设日本疫情最新数据
  • wordpress 提请审批seo教程百度网盘
  • 怎样找需要做网站客户广告资源网
  • 四川省建设工程质量监理协会网站seo相关岗位
  • 定制网站与模板网站网络seo软件
  • 太原市建设工程安全监督站网站百度指数专业版app
  • 什么网站能通过做任务赚钱看片应该搜什么关键词哪些词
  • 苏州品牌网站制作公司北京最新发布信息
  • 公众号购物做网站还是小程序seo有名气的优化公司
  • 凉山州规划和建设局网站十大互联网广告公司
  • 求国外做任务赚钱的网站seo站长助手