架构设计杂谈

1.软件架构运行而生

没有最好的架构只有最合适的架构,不同的量级采用不同的架构,往往由实际运行情况而调整,不用一步到位;从简单的烟囱型三层架构到面向服务的架构,一步步转化重构;都是在资源限制下,使问题简单化,模块化,松耦合化;

2.三层架构与SOA的区别

软件设计中,提倡高内聚松耦合;三层架构的核心点在层上面,层与层之间低耦合,层内部高内聚,向下依赖。SOA面向服务的架构中核心在服务上,要求对业务领域的细化分和明确划分,服务内部高内聚,服务之间低耦合;相比之下SOA的架构比三层架构的设计粒度很细,要求更高,更加适用于大系统;

3.SOA中服务设计注意项

互不信任:对服务的调用方和提供方都应本着互不信任的原则,调用方因对服务返回的结果进行严格校验,以免对自身程序造成伤害;服务提供者应对调用者进行相应防范,避免调用方问题类似死循环,造成服务提供的能力下降,可以在服务提供中有相应措施,对于判断调用不正常的请求,修改调用方请求地址,避免服务被这错误调用占据资源,影响服务提供能力;方法可以在请求中需要带上时间戳和key;

快慢分离:服务分为快速服务和慢速服务,快速服务对请求的服务处理速度较快,回复也更快,慢服务则相对;站点部署应将快服务和慢服务分离,同一站点系统资源共用将导致快服务受到影响;

4.数据库设计注意项

读写分离:数据库设计中对于大量读操作和少量写操作也经常采用读写分离的方式,读操作通常更多,分离已提高读操作处理能力,写操作通常更重要,分离已保障写操作的正常处理;

冷热分离:数据有冷热之分,类似三个月内为常用数据成为热数据,三个月前为冷数据不常用;数据库设计中可以讲他们分离,已提高常用数据的响应速度,冷数据同样可以处理,但是耗时更长;

表查询优化:数据库查询非常多,通常来讲单表查询比多表查询速度更快,通常提倡去join处理,但很多时候多表查询去join分开查询响应速度未必很快,这时候可以使用数据库工作任务,将业务数据定时更新到一个表中,速度将得到极大提升;在数据库资源固定情况下,无非是时间换空间或空间换时间,适当冗余部分字段也可以,当部分冗余无法解决问题或使表复杂化了,则可以使用上述方式换取时间;对单表再进行优化,类似分表,sql语句优化,建立索引,存储过程(不提倡,不易移植);

5.系统性能注意项

首选是硬件优化解决问题,成本最低;

其次才是系统优化;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值