美文网首页
一个业务系统的架构设计

一个业务系统的架构设计

作者: uorder | 来源:发表于2017-05-25 12:19 被阅读0次


之前开发了一个包括多端(PC端,移动端,微信端,API)的B2B系统,分享一下系统的架构设计演进。

技术选型

playframework

无状态

全栈(Hibernate,Netty,Groovy,Cache)

Python运维支持,开发热加载

AngularJS

对象操作

双向绑定

模版

这样的技术选型是基于低成本/小规模团队快速上线应用的需要。

选择playframework是它让我们从开发到运维都能省去很多成本,对于开发人员只要掌握一定的语法就可以直接关注业务逻辑,不用所有的人都特别升入的学习框架。

自动编译和重载:当编辑Java文件并保存后,刷新浏览器就能立即查看结果。使用Play开发不需要手动编译、部署以及重新启动Web服务器等操作。

无状态模型:Play是真正的无共享框架,为REST而准备。它可以将同一个应用的多个实例分别部署在多台服务器上,因而扩展性非常强。

高效的模板引擎:基于表达式语言Groovy的清晰模板引擎,提供了模板的继承、导入以及标签自定义等功能。

快速解决错误:当错误发生时,Play会在浏览器中显示出错代码块并提示问题发生的确切位置。

Full Stack:提供创建Web应用所需的全部功能,集成了Hibernate、OpenID、Memcached等第三方类库。

纯Java:Play采用Java编写代码,可以方便地使用任何Java类库,并且能够非常好地和Eclipse、Netbeans等IDE集成,只需通过命令生成匹配的项目文件即可。

基于非阻塞的IO模型:允许创建基于长轮询和WebSocket的主流Web应用。

有趣并且高效:省去了Java应用重启的时间,提高了应用的开发效率。

选择AngularJS是我们的应用更多的是后台应用,在2014年轻量级可选择的还只有knockout和angular,考虑到谷歌以及丰富的控件组件,mvvm的便捷实用我们选择了它,现在它仍然在很好的发挥着作用,在前端开发人手不足时能让后台开发也能介入前台开发,以便应用快速上线。

架构演进

我们并不是只用playframework提供的功能而已,在playframework的基础上考虑整体的性能和扩展自定义开发等方面我们在playfamework上做了一些改进

强制使用上下文(控制边界/业务隔离)

实体缓存(提高效率)

引入元数据(规范操作,公共问题公共处理)

回调机制(解耦/二开)

playframework服务化(前后端分离/代码复用/更丰富的API)

Swagger:API量化(测试深入参与后端服务接口测试)

大量使用多线程编程来提升系统运行效率

同时我们使用阿里云的OSS来做静态资源(JS/CSS的存储),使用七牛云存储来存储站点的大量图片和附件信息。

解决前端页面加载效率因地区而异

节省带宽资源

专注业务处理

为集群服务铺路

在运维上我们做了一些优化提升

全站HTTPS

避免单点积压

提高处理效率(相对部分HTTPS)

提升系统安全性

负载均衡

提升系统稳定性

提升访问性能

分布式memcached服务

避免单点雪崩效应

单实体强制缓存化(有效利用缓存分担数据库压力)

ELK

提供集群部署下快速分析解决问题的入口和渠道

Swagger-API文档

方便前后台分离协同开发及第三方开发者社区规范开发

相关文章

  • 订单整理设计

    架构 业务架构——根据业务需求设计业务模块及其关系 系统架构——设计系统和子系统的模块 技术架构——决定采用的技术...

  • 加油网络之技术架构

    一个系统应该是先设计业务架构,再设计技术架构。业务架构主要是为“人”理解系统,而出的方案。既要考虑新业务加入时的扩...

  • 大话软件工程:需求分析与软件设计(十六)

    第16章架构的应用设计 结束了业务架构的概要设计和详细设计,下面就要将业务架构设计的成果转换为用系统要素表达的应用...

  • 系统设计

    系统设计包括两步:业务分析和架构设计 下面以抢票酱小程序为例,演示如何进行业务分析和架构设计 1. 业务分析 业务...

  • 架构设计的本质

    简介:实际上架构只是系统设计里面的一个重要环节,除了架构还包含了商业诉求,业务建模,系统分析,系统设计等重要领域。...

  • 秒杀系统架构分析、设计、原理书目录

    秒杀系统架构分析、设计、原理 秒杀业务分析 秒杀技术挑战 秒杀架构原则 秒杀架构设计 大并发带来的挑战 作弊的手段...

  • 决胜B端:从0到1教你设计业务系统

    本文将以一个案例,向读者逐步揭示一套业务系统从0到1的设计过程。重点讲述架构、模型等业务系统最本质的设计精要。 理...

  • [转]从0到1教你设计业务系统

    导读 本文将以一个案例,向读者逐步揭示一套业务系统从0到1的设计过程。重点讲述架构、模型等业务系统最本质的设计精要...

  • 阿里蚂蚁保险岗位需求

    1.协助业务方梳理业务需求,提供业务规划方案、架构设计方案; 2.负责业务系统的规划设计,制定产品的技术发展路线,...

  • 架构训练营模块一作业

    画出微信的业务架构图。 “学生管理系统”毕设架构设计假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,...

网友评论

      本文标题:一个业务系统的架构设计

      本文链接:https://www.haomeiwen.com/subject/syaaxxtx.html