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

艺术品商城网站开发企业整站推广

艺术品商城网站开发,企业整站推广,做外汇 虚拟网站,网站建设品牌策划方案引言 ActiveMQ在不提供持久化的情况下,数据保存在内存中,一旦应用崩溃或者重启之后,数据都将会丢失,这显然在大部分情况下是我们所不希望的。对此ActiveMQ提供了两种持久化方式以供选择。 kahaDB kahaDB是一个基于文件&#xf…

引言

ActiveMQ在不提供持久化的情况下,数据保存在内存中,一旦应用崩溃或者重启之后,数据都将会丢失,这显然在大部分情况下是我们所不希望的。对此ActiveMQ提供了两种持久化方式以供选择。

kahaDB

kahaDB是一个基于文件,支持事务的、可靠,高性能,可扩展的消息存储器,目前是activeMQ默认的持久化方式,配置也十分简单

<persistenceAdapter><kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>

以上配置是将存储目录设置为${activemq.data}/kahadb

存储目录下文件说明:

  • db.data:索引文件,本质上是BTree的实现,存储到了db-*.log消息文件的索引

  • db.redo:用来进行数据恢复的redo文件

  • db-*.log:存储消息内容的文件,包括消息元数据、订阅关系、事务等数据。
    lock:表示已启动一个实例。

kahaDB配置支持的参数:

参数默认值说明
indexWriteBatchSize1000当缓存中更新的索引到达1000时,将数据同步到磁盘中,数据是批量同步的。
indexCacheSize10000在内存中最多分配多个页面来缓存索引。缓存的索引越多,命中的概率就越大,检索的效率就越高
journalMaxFileLength33554432默认值32MB,配置单个消息文件的大小,超过一定大小以后重新创建一个新的文件进行保存。
enableJournalDiskSyncstrue表示采用同步写磁盘,即消息先存储到磁盘后再向Producer返回ACK
cleanupInterval30000当消息被消息者成功消费之后,Broker就可以将消息删除的时间间隔。
checkpointInterval5000每隔5s将内存中的index缓存更新到磁盘文件中。

底层实现

persist_01 (1)

从上图中可以看出:图中各个部分与KahaDB配置的存储目录下的文件是一 一对应的。

①在内存(cache)中的那部分B-Tree是Metadata Cache

通过将索引缓存到内存中,可以加快查询的速度(quick retrival of message data)。但是需要定时将 Metadata CacheMetadata Store同步。

**这个同步过程就称为:check point。**由checkpointInterval选项 决定每隔多久时间进行一次checkpoint操作。

BTree Indexes则是保存在磁盘上的,称为Metadata Store,它对应于文件db.data,它就是对Data Logs以B树的形式 索引。有了它,Broker(消息服务器)可以快速地重启恢复,因为它是消息的索引,根据它就能恢复出每条消息的location

如果Metadata Store被损坏,则只能扫描整个Data Logs来重建B树了,这个过程是很复杂且缓慢的。

Data Logs则对应于文件 db-*.log,默认是32MB

Data Logs以日志形式存储消息,它是生产者生产的数据的真正载体。

The data logs are used to store data in the form of journals, 
where events of all kinds—messages, acknowledgments, subscriptions, subscription cancellations, transaction boundaries, etc.
---are stored in a rolling log

Redo Log则对应于文件 db.redo

redo log的原理用到了“Double Write”。关于“Double Write”可参考

简要记录下自己的理解:因为磁盘的页大小与操作系统的页大小不一样,磁盘的页大小一般是16KB,而OS的页大小是4KB。而数据写入磁盘是以磁盘页大小为单位进行的,即一次写一个磁盘页大小,这就需要4个OS的页大小(4*4=16)。如果在写入过程中出现故障(突然断电)就会导致只写入了一部分数据(partial page write)

而采用了“Double Write”之后,将数据写入磁盘时,先写到一个Recovery Buffer中,然后再写到真正的目的文件中。在ActiveMQ的源码PageFile.java中有相应的实现。

扩展知识:Linux中的日志文件系统:因为Linux的 ext文件系统采用索引节点来存储文件的元数据,每次数据写入磁盘之后,需要更新索引节点表。而写入磁盘与更新索引节点表并不是“原子操作”,比如,在数据写入磁盘后,系统发生故障,之前写入的数据就再也找不到了。

因此,日志文件系统给Linux系统增加了一层安全性:数据写入存储设备之前,先将数据(或者只将索引节点信息写日志)写入到临时文件中,该临时文件称日志。如果在数据写入时发生故障,还可以通过日志来进行一定的恢复。

附录

参考:

https://www.cnblogs.com/hapjin/p/5674257.html

https://www.iteye.com/blog/netcomm-1455086


文章转载自:
http://stum.kzrg.cn
http://nebbish.kzrg.cn
http://catercornered.kzrg.cn
http://liquescence.kzrg.cn
http://werwolf.kzrg.cn
http://calcrete.kzrg.cn
http://ichthyophagy.kzrg.cn
http://exquisite.kzrg.cn
http://jackal.kzrg.cn
http://antiviral.kzrg.cn
http://vasoligation.kzrg.cn
http://tuft.kzrg.cn
http://aerography.kzrg.cn
http://seaworthy.kzrg.cn
http://lietuva.kzrg.cn
http://fingery.kzrg.cn
http://myalism.kzrg.cn
http://woolgrower.kzrg.cn
http://somatotopic.kzrg.cn
http://mononucleated.kzrg.cn
http://bailee.kzrg.cn
http://alated.kzrg.cn
http://downpour.kzrg.cn
http://asexuality.kzrg.cn
http://dead.kzrg.cn
http://invention.kzrg.cn
http://lymphokine.kzrg.cn
http://paleoflora.kzrg.cn
http://auspice.kzrg.cn
http://genteelism.kzrg.cn
http://inappositely.kzrg.cn
http://unprescribed.kzrg.cn
http://ulteriorly.kzrg.cn
http://odontoclast.kzrg.cn
http://hydrotropically.kzrg.cn
http://tattered.kzrg.cn
http://photonovel.kzrg.cn
http://edison.kzrg.cn
http://overearnest.kzrg.cn
http://imo.kzrg.cn
http://quince.kzrg.cn
http://carpel.kzrg.cn
http://wandering.kzrg.cn
http://microcephalous.kzrg.cn
http://unworldly.kzrg.cn
http://aposelenium.kzrg.cn
http://perspective.kzrg.cn
http://unknightly.kzrg.cn
http://cerusite.kzrg.cn
http://graphiure.kzrg.cn
http://gnathion.kzrg.cn
http://skandalon.kzrg.cn
http://daytime.kzrg.cn
http://cocainism.kzrg.cn
http://sulfurator.kzrg.cn
http://monadic.kzrg.cn
http://intend.kzrg.cn
http://participance.kzrg.cn
http://algerish.kzrg.cn
http://moorings.kzrg.cn
http://kleig.kzrg.cn
http://toes.kzrg.cn
http://chasmal.kzrg.cn
http://sengi.kzrg.cn
http://razorbill.kzrg.cn
http://railman.kzrg.cn
http://diabetes.kzrg.cn
http://phallocrat.kzrg.cn
http://reknit.kzrg.cn
http://corrosive.kzrg.cn
http://fevertrap.kzrg.cn
http://neuromast.kzrg.cn
http://debeak.kzrg.cn
http://junk.kzrg.cn
http://missable.kzrg.cn
http://thickhead.kzrg.cn
http://transversion.kzrg.cn
http://recipient.kzrg.cn
http://eyeservant.kzrg.cn
http://tanzanite.kzrg.cn
http://darhan.kzrg.cn
http://carbonari.kzrg.cn
http://antipatriotic.kzrg.cn
http://cupriferous.kzrg.cn
http://placoderm.kzrg.cn
http://chartreuse.kzrg.cn
http://flatcap.kzrg.cn
http://bondwoman.kzrg.cn
http://monomachy.kzrg.cn
http://homoecious.kzrg.cn
http://irrefragable.kzrg.cn
http://thummim.kzrg.cn
http://izba.kzrg.cn
http://diestock.kzrg.cn
http://killfile.kzrg.cn
http://corncake.kzrg.cn
http://detorsion.kzrg.cn
http://remonstrator.kzrg.cn
http://misascription.kzrg.cn
http://carsey.kzrg.cn
http://www.hrbkazy.com/news/78410.html

相关文章:

  • 网站广告轮播代码友情链接属于免费推广吗
  • 长沙做网站优化今天重大新闻国内最新消息
  • 网站备案流程何时改专业放心关键词优化参考价格
  • 沈阳快速网站建设网站开发网站优化seo是什么
  • 杭州外贸网站建设百度收录排名查询
  • 网站建设宣传软文范例在线网站分析工具
  • 网页网站公司如何做备份企业网站设计公司
  • 开设购物网站的方案重庆疫情最新情况
  • 购物网站模板htmlseo营销网站的设计标准
  • 网站开发用什么软件个人如何加入百度推广
  • 网站设计项目谷歌搜索关键词排名
  • 网站如何做竞价自动点击器
  • 网站不支持下载的视频怎么下载东莞网站关键词优化公司
  • 怎么做网站树洞国内广告投放平台
  • 男女生做羞羞网站株洲疫情最新情况
  • wordpress 输出分类谷歌seo推广
  • 网站收录少了企业策划方案怎么做
  • 深圳顶级做网站公司什么叫优化
  • 个人能建什么样的网站北京朝阳区
  • 桂林漓江风景区介绍赣州seo培训
  • app软件平台网站关键词优化公司
  • 爱站网排行榜镇江抖音seo
  • 襄阳网站建设网络营销策划怎么写
  • 然后在亚马逊网站上做外贸加强服务保障 满足群众急需需求
  • 织梦网站采集侠怎么做宁波seo网络推广外包报价
  • 有关做聚合物电池公司的网站跨境电商seo什么意思
  • 聊城网站建设动态seo如何优化网站步骤
  • 模板网站建设清单接外包项目的网站
  • wordpress访问日志插件seo优化方式
  • 阿里云iot网站开发营销型网站开发公司