RESTful API后台系统架构设计(Java)

最近设计和实现了一个JAVA的RESTful API的后台业务系统架构,主要基于Java平台。设计要求是:

  • 性能:平均响应时间(RESTful API)小于2s(平均负载的情况下),并发访问200个以上。
  • 可用性:99%,87.6小时每年宕机时间
  • 伸缩性:允许负载均衡集群水平扩展web server和application server。保留半年的历史数据。可以扩展。
  • 安全性:具有基于RBAC的角色和权限控制;提供SSL链接;可以和LDAP集成;可以通过PCI/DSS安全认证标准。

可以看到系统对可用性和性能要求一般,但对安全性要求较高。整体设计架构:

之所以采用关系数据库和NoSQL混合模式,是因为系统有很多视频和图片文件,而且需要保存历史,所以这类数据存放在NoSQL数据库中。

技术选型

 

展现层:

  • Spring MVC - MVC Framework
  • Java Server Pages (JSP) - View Generation
  • ExtJS - Javascript UI Widget Framework
  • Spring Security - Security Framework
  • Jackson - JSON Generation / Parser
  • Jersey - JAX-RS 2.0 Implementation

中间层:

  • Spring Beans  -  IoC Container
  • Spring Transaction -  Transaction Management
  • Dozer -  Bean Transformation Framework
  • Spring Security -  Security Framework
  • Quartz Scheduler -  Scheduling

数据层:

  • Spring Data - Convenience API for Hibernate & MongoDB
  • Hibernate  -  ORM Tool
  • RDBMS  -  PostgreSQL
  • NoSQL DB  -  MongoDB

公共:

  • Java Development Kit - Core Platform
  • Spring Beans / IoC - IoC Container
  • Spring AOP - AOP Framework
  • Logback - Logging API
  • SLF4J - Logging API Abstraction

其它:

  • Application Server    - JBoss AS
  • Distributed Cache    - EHCache
系统部署图

上图可以看出,前端入口是负载均衡和反向代理(Apache HTTPD with mod_proxy and mod_balancer),中间是JBOSS应用服务器集群,后面是两台统计服务器(RServer),然后是关系数据库集群和NoSQL。

高可用方案:

  • Primary / Stand-By Load Balancers
  • Active / Active Application Server Cluster
  • Active / Active Analytics Server Cluster
  • Active / Passive RDBMS Cluster

系统上线运行以来基本满足设计要求。

转载于:https://www.cnblogs.com/NL34/p/3555880.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值