架构设计
文章平均质量分 83
逍遥子_
重点关注大并发处理、分布式计算、微服务、物联网、大数据等领域
展开
-
关于健康吗、核算检测等系统高并发问题的一些思考
针对某地出现的***和*****系统并发访问的性能问题,总结了一下自己的想法,并按照自己的理解设计了一套实现架构,并列出了该架构的部署方式和运维思路。原创 2021-12-29 22:45:06 · 2973 阅读 · 0 评论 -
关于物模型的一些理解和总结
1、模型是什么?模型是实体对象数字化建模后的结果,建模就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述,它跟建模对象的使用密切相关。即便同一个客观对象,不同的使用场景,就可以有不同的建模!2、物联管理平台的物模型概念物模型中“物”指什么?在消费物联网领域中,边缘应用较少,通常一个连接对应一个设备,即其架构形式为:物联管理平台(或物联管理组件)<——>设备,平台与设备之间直接进行通信,此时,平台(或组件)管理的对象就是一个单一设备,因此这里的物通常指设备,物模型就是对所原创 2021-03-25 17:13:39 · 7568 阅读 · 2 评论 -
聚焦核心竞争力:自建与外购
本文是对《架构即未来》一书第15章的学习与总结; 1.设计可扩展性的系统的两个关键:水平扩展和为了不可预知;水平扩展是我们服务能扩展的首要条件,未来不可预知是指在设计服务时要做好隔离,做好随时能把一个复杂组件替换掉的准备;这其实还是设计的基本功,要能从一堆复杂问题准确识别出一个组件,确定它的边界,处理好组件内和组件外的通信接口,能识别并设计好一个组件是满足不可预知条件的前提; 2.在对一个组件是原创 2016-12-12 20:50:34 · 1663 阅读 · 0 评论 -
nginx源码分析之内存池实现原理
建议看本文档时结合nginx源码;1.1什么是内存池?为什么要引入内存池?内存池实质上是接替OS进行内存管理,应用程序申请内存时不再与OS打交道,而是从内存池中申请内存或者释放内存到内存池,因此,内存池在实现的过程中,必然有一部分操作时从OS中申请内存,或者释放内存到OS,如下图所示:图1内存池的引入可有效解决两个问题:(1) 降低应用程序与OS之间进行频繁内存...原创 2017-02-21 19:47:47 · 4565 阅读 · 0 评论 -
使用LVS实现负载均衡原理及安装配置详解
本文转自:http://www.cnblogs.com/liwei0526vip/p/6370103.html 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。一、负载均衡LVS基本介绍 LB集群的架构转载 2017-02-15 08:54:53 · 957 阅读 · 0 评论 -
大数据平台在分布式服务中的应用
对大数据平台的一些理解大数据是目前比较火的领域,它涉及的领域比较广泛,例如数据挖掘、机器学习等等;所有这些基于数据的操作能够正常工作的前提是:搭建相应的大数据收集平台,在该平台中能够通过主动和被动的方式收集到足够的数据;一般情况下,大数据平台里的数据来源主要有:(1) 日志数据,相对于大数据平台,这是一种主动收集数据的方式;这种方式可能是大数据平台中最主要的数据来源,并且随着用户请求量、服务数量原创 2017-06-27 18:03:22 · 3751 阅读 · 2 评论 -
架构设计的原则
本文是对《架构即未来》一书第12章的总结; 1. 书中总结了一个好的架构应该具备的特点,但是有些特点个人感觉是重复的,中间起来应该有以下3个特点: (1) 具体的、可执行的;好的架构不应有太多虚的东西,它应该能够切实可执行起来用于指导开发; (2) 可度量的;平时最关注的是一个架构所能承载的性能,它应该是可以测试出来; (3) 可达到的;架构设计不应脱离实际,一个很美好但是无法实现的架构是原创 2016-12-07 20:39:32 · 2941 阅读 · 0 评论 -
使用LVS实现负载均衡原理及安装配置详解
使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。一、负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分...转载 2019-04-01 11:24:20 · 431 阅读 · 0 评论 -
LVS简介及使用
一.LVS是什么?LVS的英文全称是LinuxVirtualServer,即Linux虚拟服务器。它是我们国家的章文嵩博士的一个开源项目。在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。二.LVS能干什么?LVS主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。它廉价,可把许多低性能的服务器组合在一起形成一个超级...转载 2019-04-01 11:35:17 · 802 阅读 · 0 评论 -
微服务开发过程中需要注意的若干事项
微服务,说比做容易!我们更关注怎样将这种架构设计思想融入到实际工作中,微服务更关注各服务之间的调用、管理,它追求软件研发过程中的自动化,例如:自动编译、打包、发布,自动化运维等等,这里的每一个自动化的地方都需要有相应的软件、脚本做支撑;在实际应用过程中,我们很难短时间内把所有的自动化基础软件熟练应用起来,一方面,时间紧迫,很难有公司会专门抽出来时间来搭建和构造这样的一套自动化系统出来,并且培训好相原创 2017-02-07 18:42:57 · 5094 阅读 · 0 评论 -
优秀REST风格 API的设计原则
本文由逍遥子翻译自:https://codeplanet.io/principles-good-restful-api-design/文中注释由逍遥子根据个人理解填写,转载时请附带本文的连接。设计优秀的REST风格API非常困难!API是服务提供方和使用方之间的契约,打破该契约将会给服务端开发人员招来非常大的麻烦,这些麻烦来自于使用API的开发人员,因为对API的改动会导致他们的移动...翻译 2017-01-10 17:42:27 · 36701 阅读 · 13 评论 -
性能测试、 障碍条件和回滚
第17章 性能测试 1. 性能测试是指把负载和用户需求施加在系统上,以测量其相应时间和稳定性的过程,它是为了验证应用能够满足预期的性能目标;一般需要关注响应时间、吞吐量和资源利用率这三类指标; 2. 性能测试的第一步是建立标准,没有标准的测试是没有意义的; 3. 性能测试的环境应该与研发、QA和准生产等环境分开;之所以要把性能测试环境独立开是因为性能测试需要对整个系统施加压力,如果系统中原创 2016-12-14 20:38:55 · 1114 阅读 · 0 评论 -
如何估算一个分布式系统的容量
本文是对《架构即未来》一书第11章的总结; 1. 读完本章最大的收获是了解了应该如何评估一个系统的能力以及应该怎样为一个线上系统预留发展空间。在系统上线的时候,我们经常被问到的几个问题就是你的系统能承受多大的用户量?我们当前应该部署多少服务才能承载公司的当前和未来一段时间的业务? 2. 文中给出若干步骤用于预估系统的预留空间,将其总结如下: (1)确定当前的系统负载量,包括了解系统的组成以原创 2016-12-07 19:39:22 · 5626 阅读 · 0 评论 -
团队的组织形式
本文是对《架构即未来》第2章的总结 1. 团队组织的核心就是人员的管理问题 2. 规范和标准对于一个团队来说非常重要,个人理解,它能保障团队成果的质量底线,如果一个团队不能养成遵守规范和标准的习惯,那这个团队的产出成果就会良莠不齐;规范和标准是一个团队由游击队走向正规军的标志; 3. 团队中的任何工作都要职责清晰、明确;如果全凭自觉,靠吃大锅饭的形式,当任务下来的时候就不会有人觉得自己对原创 2016-12-09 20:29:24 · 6858 阅读 · 0 评论 -
架构设计的立方体扩展
本文是对《架构即未来》一书第20章的总结; 1. 立方体扩展是指X、Y、Z轴三个方向的扩展方式; 2. X轴扩展,指水平扩展,这种方式简单易于实现,它要求服务必须是无状态的,部署1个和部署多个是一样的,这样可以根据系统当前的业务承载量来部署所需数量的服务实例,一般情况下,该业务需要与服务注册、治理、发现机制相结合,当一个服务A被水平扩展了一个新实例ai时,所依赖它(调用了它)的其他服务C需要原创 2016-12-15 20:30:30 · 1524 阅读 · 1 评论 -
为系统扩展而采取的一些措施——缓存
缓存 1.1 缓存刷新机制,缓存刷新是指什么时候把数据库中的数据加载到缓存 (1) 定期刷新; (2) 缓存命中失败时刷新; 1.2 在有缓存时的数据写入方式: (1) 同步写入,即缓存和数据库同时被写入,即在应用层进行双写操作,这种方式可以有效保证缓存和DB中数据的一致性,由于这种方式即要更新缓存同时还要更改数据库,其访问效率相对较低,适合读多写少的场景; (2) 异步更新机制,在写操原创 2016-12-16 20:24:30 · 1017 阅读 · 0 评论 -
为系统扩展而采取的一些措施——异步
同步与互斥,提到异步必然要涉及到与之对应的另一个词“同步”,而提到“同步”很多人也会联想到另一个词“互斥”,同步是指多个操作之间产生了依赖或者先后顺序关系,互斥是指多个操作需要访问同一个资源,而这个资源又不能让多个操作同时进行,那么这多个操作之间就是互斥关系;同步调用与异步调用,在服务设计时,同步调用是指调用方在发起调用之后必须一直等待直到调用结果返回才能进行后续的操作,异步调用是指调用发起方在发原创 2016-12-17 17:33:20 · 1567 阅读 · 0 评论 -
构建故障隔离的架构
本文是对《架构即未来》一书第19章的总结; 1. 什么是故障隔离的架构?个人理解,就是一个系统按照其功能划分为几个独立的子模块,子模块之间互不依赖,互不通信;这里的互不通信是指模块之间不要采用同步调用方式,可以采用中间模块转交的异步方式。 2. 故障隔离的架构有什么好处? (1) 限制故障的影响范围,采用了故障隔离的架构,每个子模块的故障至影响它本身而不会波及到其他模块; (2) 便于故原创 2016-12-15 20:14:43 · 4835 阅读 · 0 评论 -
正向代理和反向代理
正向代理,代理客户端发送请求,例如,我们局域网内的所有主机都不能上网,但是该局域网内有一台双网卡主机A能访问外网,这时可以在双网卡主机A上启动代理服务,在局域网内其他想访问外网的主机上配置代理服务,这样它们就可以上网了;因为这些原本无法访问外网的主机会先将上网请求发送到代理服务器A上,由代理服务A替它们访问相应的外网资源,并将请求到的网络资源返回给请求用户;对于服务端而言,它只能看到代理服务器,并不原创 2016-12-19 17:56:58 · 1037 阅读 · 0 评论 -
确定风险
本文是对《架构即未来》一书第16章的总结; 1. 风险管理是提高和保持可用性及可扩展型的最基本和最重要的方面。 2. 测试是预先发现风险并有效降低风险概率的有效方法,但是任何的测试都无法彻底发现所有的风险点; 3. 在AKF中倾向于把风险看成一个“多元化的产品”,将风险分成两部分: (1)风险发生的概率,它有两部分决定: [1] 本次变更(版本升级)的变更量,即这次改动有多大? [原创 2016-12-14 18:24:16 · 1007 阅读 · 0 评论