开发者社区> 问答> 正文

[@wangccsy][¥20]Java应用系统架构时,有哪些注意事项和设计准则?

Java应用系统架构时,有哪些注意事项和设计准则?

展开
收起
黄一刀 2018-12-07 23:57:27 2437 0
3 条回答
写回答
取消 提交回答
  • 开闭原则,单一职责,里氏替换

    2019-07-17 23:18:57
    赞同 展开评论 打赏
  • 对于一个产品,一定有很多模块组成,每个模块一次开发好都开发好再进行集成一般时间耗时比较长,原型开发就是每个模块先实现基本功能,集成后马上可以进行产品演示,这样有两个好处:

    • 验证技术实现的可行性,评估性能,能对技术方案进行及时的调整
    • 对产品会有一个直观的感受,请其他人体验,给出更好的产品建议,同时给领导这个项目正在一步一步向前走的感觉
    2019-07-17 23:18:56
    赞同 展开评论 打赏
  • 前一个帐号wangccsy@126.com不知道怎么的就成了企业帐号,改不成个人。所以重新注册了一个个人帐号。老程序员。精通JAVA,C#,数据库,对软件开发过程和流程熟悉。考取系统分析师,项目管理师和系统架构设计师等软件资格考试认证。愿意和大家一起前进。

    软件系统架构设计原则就是把我们在各种场景下的架构设计进行抽选化提取公共特征形成过一定的方法论,这些方法论是经过严格推敲并具备移植性的,我们在设计系统时遵从这些设计规则可以为我们的体统提供更高的扩展性、稳定性。
    抽象原则

    各平台(含基础设施、中间件技术服务、各层业务服务等)需要通过合理地抽象,将内部信息、处理与扩展能力聚合成标准的服务于扩展接口,并通过统一的形式提供给使用者,屏蔽内部的实现与运行细节。

    以下是一些符合抽象原则的架构规范或模式: 架构分层(layer)/级(tier),层、级间提供标准服务与数据接口 根据业务模型,统一服务标准与数据标准 使用服务目录屏蔽服务位置等实现细节 使用“逻辑库”屏蔽数据库物理细节 通过SLA,标准化服务的质量水平 提供标准插件架构支持扩展 使用标准数据库特性,保持厂商无关性 使用逻辑的网络与系统名称 使用商品化硬件单元
    共享原则

    最大化重用数据、计算资源、业务组件等资产,防止数据、逻辑与技术实现不一致性带来的管理复杂性,避免重复建设成本与管理成本,通过安全机制保证共享资产的合法使用,通过业务分级保障共享资源效益最大化。 以下是一些符合共享原则的架构规范或模式:

    同一业务服务有唯一提供者
    
    同一技术服务有唯一提供者
    
    同一数据有唯一可信源
    
    控制技术多样性 (但需要同时防止厂商绑定)
    
    服务具备互操作性
    
    服务具备易用性
    
    统一的身份、访问控制与加解密机制
    
    为共享服务提供多租户能力 (Multi-tenancy)
    
    提供访问计量与控制能力
    
    提供业务分级能力,对不同级别的业务提供区分服务
    

    自治原则

    每一个组件(计算资源、业务组件、信息实体等)具备最大可能的自我完备性,可独立运行、监控、部署、配置与禁用,具备确定的SLA,并与其它组件之间以松散耦合的方式进行协作。当依赖的组件不存在或者无法正常提供服务时,能够以良好的方式降级,且在故障解除后自动恢复。 以下是一些符合自治原则的架构规范或模式:

    基于开-闭原则(OCP)设计组件
    
    应用无启动依赖
    
    最小化运行依赖集
    
    根据运行依赖关系合理安排组件物理colocation
    
    能够隔离依赖组件的故障
    
    异步调用 (提升异常流量的承载能力,简化故障隔离的实现)
    
    具备自我健康检查能力
    
    具备自我恢复能力
    
    无状态设计
    

    冗余原则

    各组件(计算资源、业务组件、数据等)都必须有充分、合理的冗余实例,保证单一组件实例失效不影响业务正常运行(多活/热备),或可以通过切换备份实例快速恢复(温备/冷备),不会丢失不可恢复的数据。针对不同类型的组件,需要明确定义冗余量与冗余类型。 以下是一些符合冗余原则的架构规范或模式:

    高可用水平扩展服务器集群(负载均衡、健康检查与自动切换)
    
    无单点设计 (含逻辑单点)
    
    采用“随机写”策略的数据库水平拆分
    
    Failover数据库
    
    N+1或N+x设计
    
    “多活”数据中心
    
    数据复制
    
    灾难备份
    

    分布原则

    整个系统拆分成职责清晰、粒度恰当、便于管理的组件,各组件(计算资源、业务组件、数据等)可分布部署运行。组件的拆分与分布可以采取复制、根据功能垂直拆分、或根据用户与访问模式水平拆分等形式。 以下是一些符合分布原则的架构规范或模式:

    读写分离设计
    
    垂直分拆
    
    水平分拆
    
    柔性的分布事务
    

    自动原则

    系统设计了具备自监控、自管理、自适应与自优化能力,可以随着业务量与访问模式的变化、以及其它内、外部因素的改变,自动地对资源进行调度、调整服务策略,保障自身的稳定与服务的质量。 以下是一些符合自动原则的架构规范或模式:

    监控每一个服务的质量与资源的状态与报警
    
    从客户视角监控最终服务的质量
    
    统一、自动的错误报告、管理与响应
    
    提供完备的配置能力
    
    自动化系统安装
    
    自动化应用部署
    
    自动化资源分配
    
    可以mark up/mark down服务
    
    支持优雅降级
    
    自动拒绝超出SLA之外异常流量
    

    作者:技术僧
    来源:CSDN
    原文:https://blog.csdn.net/Bryans/article/details/80545040
    版权声明:本文为博主原创文章,转载请附上博文链接!

    2019-07-17 23:18:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载