澳门微信号收码官网

一点技术心得

来源:心得体会网 · 线程  科技新闻  技术心得 
下午想到了几点心得,总结下来。消息队列常用于流量削峰、异步处理、不同系统间的通信,有一个重要点就是快速读写,有的消息队列还支持久化,持久化就要与磁盘打交道,IO是一个重要的瓶颈,如何提高写磁盘的效率呢?metaq的高速的一个重要原因是使用到了内存映射pagecache。系统横向扩展是一个非常重要的点。另外提高IO操作,一个重要的方法就是内存映射,读磁盘与读内存一样,岂不快哉。
下午想到了几点心得,总结下来。

消息队列快速读写

消息队列常用于流量削峰、异步处理、不同系统间的通信,有一个重要点就是快速读写,有的消息队列还支持久化,持久化就要与磁盘打交道,IO是一个重要的瓶颈,如何提高写磁盘的效率呢?有两个重要的理伦很重要:顺序读写比随机读写要快;磁盘的局部性原理。metaq使用了pagecache,一个commitLog的大小是1G,数据并不是直接写入到磁盘中,那太慢了,它使用到了内存映射,解决IO瓶颈,然后每隔一定的时间刷到磁盘中(批量写+顺序写),当然也可以实时刷盘和group commit。这里就有一个问题,在没有落地磁盘前,消息是可以丢失的,所以没有100%的可靠性。metaq的高速的一个重要原因是使用到了内存映射pagecache。





2. 系统横向扩展

现在是分布式的时代,不管是存储还是计算也好,单台机器的性能都有极限,如何使系统能横向扩展,部署10台机器和部署1000台机器一样,并且性能是线性提高。这里有一个关键的问题就是系统之间是无状态的(相互独立),要做到这一点,有不多的方法来实现,其中有一个方法就是集群,每台机器都是从集群中取数据,现在的微服务是不是这样的呢?系统横向扩展是一个非常重要的点。





3. NIO

不管是网络还是磁盘,都是IO,常见的IO就会阻塞。有不同的方式来处理网络通信:

a. 单进程:一个IO阻塞就会阻塞其它的读写请求,所以单线程变成多线程模式;

b. 多线程:一个线程阻塞不会影响其它的线程,缺点是线程一多上下文切换就多,所以多线程优化成线程池,不管怎样,IO阻塞还是没有解决掉。

从一个读操作的流程可以知道,它是分两个步骤的:一个是接收读命令、二是读操作,这两个操作是绑定在一起的,关注分离点,就是把这两个步骤划分开,有一个线程来接收所有的命令,其它的线程当读写就绪后再进行操作,减少阻塞等待的时间。这也是职责分离的一个重要体现!

另外提高IO操作,一个重要的方法就是内存映射,读磁盘与读内存一样,岂不快哉。

文章推荐:

2018年五四青年节党课活动总结

[经管学院]五四运动精神学习感悟微党课

迎接五四青年节主题党课学习心得

《三板斧:阿里巴巴的管理之道》读书笔记

管理层培训怎么做,参考阿里三板斧

尊龙国际娱乐场备用网,永辉国际线上娱乐-【官网】 澳门美高梅网上官网,永利博-【官网】 澳门美高梅网投官网,永辉国际-【官网】 澳门美高梅网站平台,盈乐足球论坛-【官网】 澳门美高梅网址官网,盈乐网论坛-【官网】 澳门美高梅网投网址,赢得利娱乐场-【官网】 澳门美高梅网址排名,盈乐全讯网-【官网】 澳门美高梅网址直营,盈禾国际娱乐场-【官网】 澳门美高梅在线平台,盈丰国际线上赌场-【官网】 558棋牌,永利博备用网址-【官网手机版】