热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

软硬件方案

为什么80%的码农都做不了架构师?语言方案:优:并行,容错,调试,热部署,测

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

语言方案:

优:

并行,容错,调试,热部署,测试,高阶函数,柯里化(适配器),惰性求值,延续(没有栈。迭代。尾递归。单参数--单返回值。WEB,JETTY。不需要栈。stackless),模式匹配.

劣:

调用(使用栈,浪费空间),

 

数据提交:

0,流提交(免解码);

1,服务器提交===用户体验===请求已经发出去了;

2,无脚本;

3,快速验证(错误频率记忆===》检查项目顺序调整)。

 

数据获取(缓存):

1,流缓存(免编码);

2,检索数(XML)据+商品数据(HTML)+UI元素(XSL+图片);

3,全缓存(对所有除事务以外的内容包括数据使用缓存+使用URL变形做内容更新);

4,内容更新管理。

 

内容策略:

1,所有内容在系统处理全程保持流(字节)的形式。不解码,不编码;

 

处理器调度:

1,动态优先级(IO任务优先:网卡,数据库,磁盘。内存任务优先,IO任务排队);

2,抢占;

3,水平调度;

4,垂直调度;

5,智能调度引擎(自适应调度);

6,资源定义:处理器,内存,网络,磁盘+数据库

内存管理:

1,内存调度;

2,边界控制:溢出,死锁(内存争夺)。

3,缓存控制(开源库);

4,关闭虚存。

5,服务降级。 

数据库:

1,取结果条数;

资源管理:

1,数据库连接;

2,数据库锁(没有锁。不设计任何并发更新);

3,无依赖设计(所有部件独立工作。互不依赖);

循环控制:

1,没有循环(用函数式语言);

 

数据结构测试:

1,数据结构性能退化;

 

压力测试:

1,平均响应时间;

2,90th%响应时间;

3,突发活动(任意组合);

4,阶段性增加负载;

5,通量;

6,处理器,内存,网卡,磁盘负载时间;

7,图片。

恢复测试:

1,系统的恢复时间;

兼容性测试:

1,浏览器;

2,OS;

3,网络(不同接入点);

位置测试:

1,偏远地区;

2,特大城市;

3,中小城市;

4,四级城市;

5,乡村;

6,其它特殊接入点;

UI测试:

1,外观;

2,内容测试(语法,语义,流程,标题);

3,移动设备;

4,图片页;

 

前端:

1,客户端缓存+内存缓存+数据库缓存(与内存缓存互为独立;没有重复缓存);

2,内容压缩;

3,网卡加速,SSL加速,XML加速,HTML压缩;

4,UI元素的分步加载(XSL INCLUDE);

5,前端反向代理

 

系统运行监控(运维):

1,系统状态监控:节点工作状态:

2,服务追踪:用户事务日志(IP标识。使用在线事务审计数据);

2,报“错”机制--》电子邮件;

 

网络负载均衡可选方案:

1,基于特定服务器软件的负载均衡

2,基于DNS的负载均衡

3,基于四层交换技术的负载均衡(收信IP!=送信IP)

4,基于七层交换技术的负载均衡

5,站点镜像技术

网卡集群:

1, 上行假设轻负载。但要防攻击(DoS);

2,

 

安全:

1,端口关闭;

2,一阶段审计;

 

机房服务质量监督:

1,防火墙策略;

2,带宽;

3,接入稳定性;

4,路由可达性。

5,共享或独享带宽。

 

运筹学:

规划论:线性,动态;

排队论。

最短任务优先(排队论):

1,快速疏散。短的走的快;短任务拉开=》时间上的均匀分布;

2,最短周转时间;

3,最短服务时间;

4,全系统优化(人,机,软)。

 

内存管理开销:

1,GC的线程开销(内存,CPU周期,线程管理,计数);

2,程序不创建任何对象。所有对象在对象池(COMMONS POOL)中获取(和创建)。对象数量的多少由程序自动决定。但是要记得在线程任务结束后主动还回对象(这才是关掉GC的真正开销。因为从对象池获取对象与NEW一个对象的代码量其实是一样的。这里指的是程序员角度的开销);

CPU优先级:

1,CPU角度==》全部非阻塞任务的随时待“命”。最小程度的IO捆绑;

 

 

有的:

协程。微线程。无栈。进程。

要求:

大量大文件请求(压缩,缓存,IO压力);

大量数据请求(主要:商品数据,索引数据==》IO压力);

大量事务(购买,支付==》数据库更新);

主要挑战:大的(效率,带宽,内存==》索引数据,商品数据)。多的(效率)。

IO效率==》字节流。

内存的主要消耗者分析:UI,事务优先。其余全用于索引数据,商品数据的缓存与工作空间(硬盘==》网卡拷贝)。

处理器不用分析。网卡比特流用专用网卡解决。内容用XML加速器。

专用设备:

  专用网卡。专用内存。专用硬盘。专用主板。专用CPU。

冗余设备:

  内存,硬盘,CPU,网卡,电源。

系统级设备:

  双机热备。

数据设备:

  数据冷备,热备,灾备。

服务器论坛学习。

 

加速设备:

网卡(比特流),XML,SSL。
 

而MAP/REDUCE因为是在生产环境中提出并成功应用的生产计划/模式,天生具有很强的实践性。

MAP/REDUCE加工备忘:

1,有管理的,全方位的作业调度:水平调度---给谁做;垂直调度--谁先做;内部调度---机器系统调度;外部调度---人机系统调度);

2,调度策略的实时调整(系统性能实时评估-->反馈机制---》策略调整(量化调整与方案调整));

3,内部作业的划分(几个MAP,几个REDUCE):

4,内存模型(时变特性);

5,中间结果 - 平面;

6,系统进化(约束适应,新质量,新功能);

7,延续,闭包的价值分析(与对象的对比);

8,规则引擎的应用;

9,接口封装的形式(REST,XML,WEB SERVICE)与ESB的应用;

内部作业的划分详细包括:

1,UI引擎(内容服务--小内存+大磁盘,高带宽:客户==首页+搜索+购买+支付+注册,商品,商务,图片);

2,数据引擎(数据服务:索引,商品,关联商品,物流,支付,评论,交易历史,商务支持,交易统计);

3,事务引擎(订单,支付,评论,评论审核,注册,商务事务,审计);

5,I/O引擎;

6,性能/成本引擎:浏览器缓存(更新周期=日期后缀)+内容压缩=》带宽

 

相关备忘:

架构目标的种类:

1,抽象建模---多主体系统。自由系统。提供相对自由的资源分配模型;

2,事务处理---单主体系统。服务型系统。对外强调服务。内部则强调个体服从整体。所以个体是不考虑的。只考虑整体。所以只有一个主体,即整体。这样的系统没有个体---象一支军队。存在的是一个Team,不是人;

3,实时系统---无主体系统。响应型系统。不是强调,而是必须做到即时响应。在这样的系统中,什么都不存在。所有主体都位于系统以外。考虑问题时,都不考虑系统。考虑的全是系统以外的因子。系统被假设为不存在的。比如,可以假设它为上帝,将满足你的所有要求。上帝是不需要考虑的。因为她是完美的。她没有缺陷。她将响应你全部的请求;

4,图形系统---工具型系统。领域系统。可有主体,可没有主体。都行;

5,云计算---单主体系统。事务型系统。服务型系统。强调整体性能与效率。个体同样不考虑(需要对象模型的分析性平台除外)。

6,。。。。。。

 

领域建模相关备忘:

1,领域建模需要对相关领域进行元操作提取。也就是说,这种系统的需求分析不应该具体化。而应该保持一定程度上的抽象性。即,用户说的话,我们记下来,并且写到系统中去。详细设计的目的不是将用户需求全都变成具体功能,而是该具体的具体,该抽象的抽象。具体与抽象的边界要与用户进行反复的确认与理解才能得到。该抽象的被具体了,与该具体的被抽象了,都是不对的。

需要的是脑子。

 

http://www.translatorsbase.com/UserAccount.aspx


转:https://my.oschina.net/digerl/blog/10964



推荐阅读
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 题目《BZOJ2654: Tree》的时间限制为30秒,内存限制为512MB。该问题通过结合二分查找和Kruskal算法,提供了一种高效的优化解决方案。具体而言,利用二分查找缩小解的范围,再通过Kruskal算法构建最小生成树,从而在复杂度上实现了显著的优化。此方法不仅提高了算法的效率,还确保了在大规模数据集上的稳定性能。 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Python错误重试让多少开发者头疼?高效解决方案出炉
    ### 优化后的摘要在处理 Python 开发中的错误重试问题时,许多开发者常常感到困扰。为了应对这一挑战,`tenacity` 库提供了一种高效的解决方案。首先,通过 `pip install tenacity` 安装该库。使用时,可以通过简单的规则配置重试策略。例如,可以设置多个重试条件,使用 `|`(或)和 `&`(与)操作符组合不同的参数,从而实现灵活的错误重试机制。此外,`tenacity` 还支持自定义等待时间、重试次数和异常处理,为开发者提供了强大的工具来提高代码的健壮性和可靠性。 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
author-avatar
xillb_486
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有