《架构师》期刊摘要(2014年)

1、WikiPedia上说“DevOps是软件开发、运维和质量保证三个部门之间的沟通、协作和集成所采用的流程、方法和体系的一个集合。它是人们为了及时生产软件产品或服务,以满足某个业务目标,对开发和运维之间相互依存关系的一种新的理解。”这恰好体现了精益管理中的客户价值原则,即:客户的关键来确定企业从设计到生产交付的全部过程,实现客户需求的最大满足。我们也可以把DevOps看作是一种能力,在缺乏这种能力的组织中,开发和运维之间存在着信息“鸿沟”。

    如何获取这种能力呢?关键有两点:一是全局观,要从软件交付的全局出发,加强各角色之间的合作;二是自动化,人机交互界面的强大管理工具,比如各种受版本控制的script,以及类似于Nagios这样的基础设施监控工具,类似于Puppet、Chef这样的基础设计配置管理工具。

--《DevOps:不是传说》,作者:乔梁(2014年一月)

2、

    一张白纸上有一个墨点。

    观察者在纸外,目光被墨点所吸引;从业者生活在纸上,大部分世界仍然是白色的。

    我们对一项新技术或者新产品的真实被接受程度总会产生偏高的误判,而对老技术和老产品的被接受程度则产生偏低的误判。

    最后,之说以说“贴近正确”,是因为我不认为有绝对的正确。一个世界从不同的角度去看,总是不同的;即使尝试穷尽所有的观察角度来完整的理解一个世界,也是不可行的,因为世界总是在变化,而一个观察者在一个时间点只能完成一个角度的观察,当换一个观察角度的时候,他看到的已经不再是原来的世界。

 

    所有的观察者都存在偏见,但我们会尽力让他贴近真实。

--序言部分(2014年二月)

3、一名云开发人员就是负责这样的代码解决方案的人:解决方案是基于水平扩展的、分布式的、幂等的和异步处理,同时具有可伸缩、高度可用和弹性存储的特点。

 

4、性能无非就是两点-吞吐率(比如单位/秒)和响应时间(有时也成为等待时间)。最重要的是给出量化的指标,而不能只是说它应该“很快”。

    对于交易系统来说,实施系统更倾向于另外一种含义,那就是系统必须拥有高吞吐率并且尽快响应每个事件,这可以理解为“低延迟”。

    JAVA最大的弱点就是缺少对内存曾的控制。在主流处理器中一次缓存未命中就会丢失500条已经执行过的指令。为了避免缓存不能命中,我们需要控制内存曾,以一种可预测的方式访问内存。为了达到这种程度的控制,并减轻垃圾回收的压力,我们通常要用DirectByteBuffers去创建数据结构,或者放弃堆而使用Unsafe。这就可以做到精确的数据结构规划。如果Java引入对结构体数组的支持,就不必要再这儿做了。这并不需要切换语言,只是引入一些新的特性。

 

    对于低延迟应用来说,锁竞争可能是最大的一个性能障碍了。锁本身并没有性能开销,在无竞争情况下Java的同步锁也可以执行的非常好。然而,有竞争时锁的性能就会一落千丈,不仅仅因为一个线程持有锁使其他线程拿不到同一个锁,还因为更多的线程访问这个锁时会给JVM带来昂贵的锁管理成本,这个道理很容易理解。很明显,关键是要避免锁竞争,所以不要同步那些不需要同步的东西(比如,移除那些什么都不需保护的锁、缩小锁的范围、降低锁持有的时间、不要混淆锁的职能等等)。另一种常用的技术是消除多线程访问,不要让多个线程去访问一个共享的数据结构;你可以把更新操作当成命令排成队列,这样就变成单线程处理。这样就把锁竞争简单的归结成了添加在队列中的一个项目了,而它可以通过锁无关技术(无锁并发)来实现自我的管理。

--《虚拟研讨会:在低延迟环境中使用JAVA》(2014年8月)

 

5、高性能的三个主题:

    1)传输:用什么样的通道将数据发送给对方,BIO、NIO或者AIO,IO模型在很大程度上决定了框架的性能。

    2)协议:采用什么样的通信协议,HTTP或者内部私有协议。协议的选择不同,性能模型也不同。相比于公有协议,内部私有协议的性能通常可以被设计的更优。(补充:比如Protobuf比JAVA内部的序列化更加高效)

    3)线程:数据包如何读取?读取之后的编码在哪个线程进行,编码后的消息如何派发,Reactor线程模型的不同,对性能的影响也非常大。

 

    IO多路复用技术通过把多个IO的阻塞复用到同一个select的阻塞上(NIO + Selector),从而使得系统在单线程的情况下可以同时处理多个客户端请求。与传统的多线程、多进程模型比,IO多路复用的最大优势是系统开销小,系统不需要创建新的额外的进程或者线程,也不需要维护这些进程和线程的运行,降低了系统的维护工作量,节省了系统资源。

    1)异步处理模型:NIO、多个Selector,Reactor线程模型。

    2)零拷贝:Netty接收和发送ByteBuffer采用Direct Buffers,即使用堆外内存进行Socket读写,不需要进行字节缓冲区的二次Copy;如果使用传统的堆内存(Heap buffer),JVM会将堆内存Buffer拷贝一份到直接内存中,然后才进行Socket写入(Netty提供了DirectBuffer和HeapBuffer两种Buffer机制)。Netty还可以将多个Buffer对象进行组合操作,用户可以操作多个Buffers像操作一个buffer一样(scatter/gather),避免了传统通过内存拷贝的方式将几个小buffer合并成一个大buffer。此外,Netty的文件传输采用的transferTo方法,它可以直接将文件缓冲区的数据发送到目标Channel,避免了传统通过循环write方式导致内存拷贝的问题(sentfile)。

 

    3)内存池(PooledBuffer):heap buffer的创建于回收相对简单,但是对direct buffer的分配和回收,是一件耗时的操作(OS调用)。为了尽量重用缓冲区,Netty提供了基于内存池的缓冲区重用机制。测试结果显示,PooledBuffer机制比普通的Buffer(非重用)相比,性能提升了20余倍。

 

    Java的优雅退出通常通过注册JDK的shutdownHook来实现,当系统接收到到退出指令后,首先标记系统处于退出状态,不再接受新的消息,然后将挤压的消息处理完,然后调用资源回收接口将资源销毁,最后各线程退出执行。Netty的Reactor线程(组)提供了优雅退出的方式,在EventExecutorGroup中shutdownGracefully()方法。(子类包括我们常用的NioEventLoopGroup)。

 

    Netty提供了流量整形的特性(tranffic shaping),即对流量的速速率进行限定的操作,对于超过阈值的流量暂且缓存起来,当面对高流量输入业务时,最终确保流量以相对安全的速度传递给接收端;在本质上与流量控制(Flow Control)有较大的相似之处,区别就是流量控制通常采用“漏桶模型”,对超过阈值的流量直接拒绝或者抛弃,而流量整形只是暂缓发送。基本原理:对每次读取到的ByteBuffer可写字节数进行计算,获取当前的报文流量,然后与流量整形阈值对比。如果已经达到或者超过阈值,则计算等待时间delay,将当前的ByteBuffer放到定时任务Task中缓存,由定时任务线程池在延迟delay之后继续处理该byteBuff。(参见ChannelTrafficShapingHanlder)

--《专题:Netty之道》(李林锋)

6、

    1、使用线程池的意义:

    1)复用:类似于WEB服务器等系统,长期来看内部需要使用大量的线程池处理请求,而单次请求乡音时间通常比较短,此时JAVA基于操作系统的本地调用方式大量的创建和销毁线程本身就会成为系统的一个性能瓶颈和资源浪费。若使用线程池技术可以实现工作线程的复用,即一个工作线程创建和销毁的生命周期期间可以执行处理多个任务,从而总体上降低线程创建和销毁的频率和时间,提升系统的性能。

    2)流控:服务器资源有限,超过服务器性能的过高并发设置反而成为系统的负担,造成CPU大量消耗于上下文切换、内存溢出等后果。通过线程池技术可以控制系统最大并发数和最大任务处理量,从而很好的实现流控,保证系统不至于崩溃。

    3)功能:JDK的线程池实现非常灵活,并提供了很多功能,一些场景基于功能的角度会选择线程池。

 

    2、线程池技术要点:

    1)工作者线程worker:通常称为worker线程,即可以重用并执行多个任务的线程,一个worker线程的生命周期内会不停的处理多个业务job。线程池“复用”的本质就是使用一个worker线程去处理多个job,“流控”的本质就是通过对worker数量的控制实现并发数的控制。

    2)待处理工作job的存储队列:工作者线程workers的数量是有限的,同一时间最多只能处理workers线程数量的任务。对于来不及处理的的job需要保存在等到队列中(pending queue),此后空闲的worker线程即可不停的从job等待队列中获取任务并执行。基于线程池队列的不同实现,可以扩展出多种功能的线程池,比如FIFO、基于权重排序的、有界队列等等。

    3)线程池初始化:即线程池参数的设定和多个workers的初始化,通常在初始化线程池时就需要指定workers线程的个数。

    4)处理业务job算法:...

    5)workers的增加算法:业务线程数部署持久不变的,有高低峰期。线程池要有自己的算法根据业务请求的频率高低调节自身工作者workers的数量来调节线程池的大小,从而实现业务高峰期增加工作者数量提高响应速度,而业务低峰期减少工作数量节约服务器资源。增减算法通常根据“待处理工作job数”、“线程池定义的max、min工作线程数”、“worker空闲时间”等。

    6)线程池终止逻辑:线程池被终止时,需要有一定的保障策略,gracefully,这些策略需要确保worker线程平滑退出、job队列是否被清除等。

--《几种线程池的实现算法分析》(2014年8月)

 

 

【系统架构设计师】论文模板:快速写好一篇架构设计师论文 这个在15分钟内完成。200多字,也就是3句话的事。其中的XXXX,依个人偏好不同,自己哪方面厉害,就写啥替换这几个XXXX。第一句:本文主要介绍XX年XX月XX日,我所在公司承接了XXXXXXXXX项目的建设过程,包括XXXX,XXXX,XXX内容,涉及到XXX,XXX,XXXX技术。二句:本人在此项目中承担了项目经理或架构师的角色,主要负责XXXX,XXXX,XXXX方面事宜。 阅读详情

相关推荐

架构师电子杂志2018年全年刊

架构师杂志2018年所有的电子期刊,分享给从事架构设计工作的童鞋们

架构论文摘要写作指南

摘要需严格控制在 300 字范围内(机考改革后,超出 300 字无法录入)。未写摘要、摘要过于简略或缺乏实质性内容的论文,将被扣 5 - 10 分;若摘要字数少于 120 字,论文直接判定为 “不及格”。因此,建议摘要最佳字数范围为 270 - 300 字,避免因摘要失分影响论文整体成绩。

qq_23412557的博客 1127

所有架构师必读十篇经典论文

全附加IEEE1471-2000的摘要和PPT,共12个文件

信我!软考架构师论文真要这么写!

深入分析项目需求来源,或者政策因素,如 “随着公司业务规模扩大,原有单体架构系统难以满足高并发、快速迭代需求,且维护成本不断攀升,因此启动系统重构项目。:你在项目担任的角色,过渡到项目的技术介绍,摘要部分的扩写或者技术总论点(看你前面部分的字数,字数够了就写技术总结,不够就针对摘要部分的扩写)。:用数据量化成果,“项目上线后,系统日均处理交易 X 万笔,响应时间缩短至 X 毫秒以内,用户投诉率下降 30%,达到预期目标。系统于xxxx年xx月上线,稳定运行至今,各项功能和性能指标良好,获得客户认可。

方才coding 3747

RT-Thread stm32h7使用串口DMA

stm32h7在rtthread中无法使用串口DMA,通过更改驱动代码使其支持串口DMA

qq_35141454的博客 2286

现代密码学5.3--Hash and MAC

现代密码学5.3--Hash and MAC 博主正在学习INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些笔记供自己回忆,如有错误请指正。整理成一个系列现代密码学,方便检索。 第二章定义了完美安全及其对应的密码方案“一次一密”, 第三章介绍了多种安全定义 3.1-3.3 计算安全,PRG和基于PRG构造的满足计算安全的密码方案; 3.4-3.5 CPA安全,PRF和基于PRF构

qq_41545715的博客 685

OR/MS 领域期刊排名(2014)

为什么80%的码农都做不了架构师?>>> ...

weixin_33686714的博客 1200

逆向攻防世界CTF系列40-ReverseMe-120

注意sub_401000main中只传了两个参数,但是跟进后发现四个(可能是隐式传递,放在寄存器里传递了),调试发现a4是输入长度,与最终的you_know_how_to_remove_junk_code比较的是v12(但是并没有被传入),开始怀疑是不是隐式传递了。_mm_xor_si128用于计算128位(16字节)的按位异或,然后通过v14控制循环结束的条件,可以看到v14增长的步长为16,而且通过上面得到的flag值解码得到的字符串为32个字节大小,正好是16的整数倍。

LH1013886337的博客 1410

历年Infoq架构师月刊收集

Infoq月刊收集: 2008:https://download.youkuaiyun.com/download/chenxuegui123/11952622 2009:https://download.youkuaiyun.com/download/chenxuegui123/11952623 2010:https://download.youkuaiyun.com/download/chenxuegui123/119...

永生只是一场幻梦 776

因果推断--PSM的原理和应用(二)

上一篇介绍了DID,本文介绍和DID可一起搭配使用的一种因果推断方法PSM。在正式介绍PSM之前,先来简单回顾一下为什么需要因果推断以及如何做因果推断。我们都知道相关非因果,比起相关我们更希望知道两个事件之间的因果关系,有了确切的因果关系,才能知道对A如何操作才能引起B的变化。解决因果推断问题,目前主要有两种框架,Rubin虚拟事实模型和Pearl因果图模型。站在数据分析的角度上,Rubin虚拟事实模型更容易理解,其核心思想是寻找恰当的对照组。

baidu_26137595的博客 1万+

【多模态大模型】GLIP:零样本目标检测新范式与视觉语言理解

本文深入解析了多模态大模型GLIP在零样本目标检测和视觉语言理解领域的创新应用。GLIP通过统一目标检测与自然语言理解任务,实现了零样本学习能力,能够精准定位复杂文本描述对应的图像区域。文章详细介绍了GLIP的核心技术、数据策略及实战表现,并对比了与其他多模态模型的差异,为AI视觉理解提供了新范式。

weixin_29186249的博客 263

华夏互联总经理汪照发接受程序猿杂志专訪-2014年6月江西IDC排行榜

 作为软件开发界最权威的期刊,《程序猿》杂志一直是业界推崇的高端读物,能被其採訪是极大的荣耀。 上个月,作为江西省内的排名第一的站点开发企业和专业的站点研发厂商,Zoomla!逐浪CMS与华夏互联hx008.com首席架构师汪照发先生应邀接受了程序猿杂志的专訪(採訪记录能够浏览http://www.zoomla.cn/corp/media/2213.shtml)。 为此,本榜单负...

weixin_33958585的博客 283

从误检率30%到99.7%:YOLOv8/v9工业零件缺陷检测实战(附产线部署全流程与参数调优秘籍)

工业场景YOLO实战:从实验室到车间的关键调优策略 本文针对工业缺陷检测的特殊性,系统总结了YOLOv8/v9在工业应用中的实战经验。通过齿轮厂缺陷检测案例,揭示了实验室模型与工业场景的三点本质差异:小目标特性(0.2-1mm缺陷)、复杂背景干扰(油污/反光)和数据量不足问题。重点提出了工业级解决方案:1)数据采集需覆盖极端工况(不同光照/污染/角度);2)标注采用LabelStudio+预标注提升效率;3)定制工业增强策略(反光模拟/缺陷复制粘贴)。文章还提供了完整的参数调优记录和TensorRT加速部署

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1733

春风送暖,Docker论道

2014年,Docker在国内落地,一场场meetup和talk,从北到南,从小到大,如燎原星火。10月份,尤达大师Jerome到访,在北京上海的布道,让Docker爱好者们更是沉醉。 与此同时,一批Docker技术公司也如雨后春笋,神州涌动创业潮。DaoCloud的两位联合创始人,经过...

chuoyan9900的博客 239

【思博伦】史上最详细Spirent TestCenter测试仪使用教程精讲(一)!图解超赞超详细!!!

3. 在弹出的界面中,找到菜单栏中的“Connect/Create”,选择下拉框中的“Connect to Physical/Visual Chassis”,在弹出的对话框中输入思博伦测试仪的IP地址:192.168.6.244,点击“OK”;说明:目前我们只需要使用到Raw Stream Block,不需要用到Bound Stream Block。说明:如果要使用100G模式,由于硬件限制,必须连续3个面板端口同时配置为100G使用。打开安装包,并按照提示按照即可。

风云说通信 6478

基于CrossSim的存储硬件原型机ANN仿真:MNIST手写数字识别实现与分析

本项目基于CrossSim仿真平台,在存储硬件原型机上实现了MNIST手写数字识别的ANN模型。通过搭建CrossSim仿真环境,设计传统ANN基准模型和考虑硬件非理想特性的CrossSim模型,对比分析了不同配置下的识别性能。实验结果表明,在引入硬件噪声和器件变异的情况下,模型准确率仍能达到95%以上,验证了存储内计算架构的可行性。研究为存储硬件与计算单元融合提供了实验依据,展示了CrossSim在神经形态计算系统仿真中的实用价值。

huanghm88的专栏 596

【Perplexity建筑知识搜索实战指南】:20年资深架构师亲授3大隐藏技巧,90%工程师至今不知的精准检索密钥

掌握Perplexity建筑知识搜索,高效获取精准设计规范与技术参数。适用于方案比选、规范核查与构造细节查询,揭秘语义过滤、结构化提示词、权威源限定3大技巧,检索准确率提升70%。20年资深架构师实战验证,值得收藏。

ByteGlow的博客 395

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

怎样做一名优秀的应用开发工程师

依据E优渡网统计我国软件出口规模在2014年达到215亿元,软件从业人员达到72万人,在中国十大it职场人气职位中,软件工程师位列第一位,软件工程人才的就业前景十分乐观. 软件工程是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件工程师人才的培养给予了非常优惠的政策.在中国十大IT职场人气职位中,软件工程师位列第一位,软件工程人员的就业前景十分乐观。   从国际和国内

梦一样的未来 757

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

视频教程-2020年软考系统架构设计师--论文写作精讲视频培训课程-软考

2020年软考系统架构设计师--论文写作精讲视频培训课程 河北师范大学软件学...

weixin_31270537的博客 497

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ibm 决策引擎_设计和实施决策服务的最佳实践,第3部分,集成IBM Business Process Manager和IBM Operational Decision Manager RESTful协议

存档日期:2019年5月13日 | 首次发布:2014年4月2日 决策服务是一个时髦的名词,您甚至会看到带有此类名称的产品功能。 作为解决方案架构师或开发人员,您可能已经看到有必要超越纯粹的产品范围,并考虑设计和实施此类服务,以便可以轻松维护和使用它们。 本文介绍了使用IBM®Business Processs Manager V7.5高级版和WebSphere®Operational D...

cuxiong8996的博客 261

CnOpenData 线上招聘网站信息数据

CnOpenData线上招聘网站信息数据库是一个覆盖中国主流招聘平台、时间跨度长、更新频率高的劳动力市场需求侧大数据集合。本数据库汇集了,为学术界和业界提供了一扇实时观察中国劳动力市场动态的窗口。

CnOpenData_wj的博客 2622

ChinaSoft 论坛巡礼 | 软件缺陷的自动发现与修复

2022年CCF中国软件大会(CCF ChinaSoft 2022)将于2022年11月25-27日在上海国际会议中心举行。预期将有林惠民、陈左宁、邬江兴、何积丰、梅宏、吕建、柴洪峰、王怀民、郑纬民、蒋昌俊等10余位院士莅临。本次大会主题是“聚焦产教研用协同创新,提升关键软件供给能力”,包括学术、工业、教育等论坛活动40余场,期待您的参与!目前大会火热报名中!在2022年10月20日前注册付费,锁...

pengxin_ce的博客 579

Agent技术演进:从规则引擎到超越人类的临界点

人工智能Agent技术正经历从规则引擎到多模态智能的跨越式发展。其核心原理基于大语言模型和Transformer架构,通过序列到序列学习实现复杂任务处理。技术价值体现在知识检索效率、复杂决策等维度已超越人类水平,尤其在客服、医疗诊断等场景展现强大工程应用潜力。随着MiniMax等企业推动Agent具备思维链和持续学习能力,这项技术正在重塑人机协作模式。当前发展面临创造性工作、情感交互等关键突破点,而人类在价值判断、跨领域联想等层面仍保有独特优势。理解Agent技术演进路径,对把握AI时代职业转型至关重要。

weixin_33046983的博客 243

2018全球机器学习技术大会7月27-28日就等你来!

Boolan继2017年年ML-峰会上,秉承“全球专家,连接智慧”的宗旨,将于2018年7月邀请近四十位机器学习领域的技术领袖和行业应用专家,在上海举办「2018全球机器学习技术大会」。大会以专业主题演讲为主干,配合互动研讨,案例分析等多种形式,探讨机器学习领域的前沿理论以及最佳实践。大师智慧+实践干货,2018全球机器学习技术大会,就等你来!点击打开链接大会主题AI模型与算法AI模型与算法AI架...

IT互联网技术学习专栏 1337

细数那些你可能不知道的国产数据库

在之前中秋团圆之时,我们曾经绘制了一幅数据库的团圆照,这幅图中包含了多少种数据库,您现在数的清吗?图中又有多少国产数据库?国产数据库经过不断尝试和发展,正在以开源面貌焕发新一代的生机,从P...

weixin_54551388的博客 261
上一篇: Maven+Nexus进行SCM发布
下一篇: 《架构师》期刊摘要(2015年)一
iteye_19607
博客等级 码龄8年 34粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值