安全性架构

系统安全往往在设计之初会有考虑,但在项目进度和成本压力下,又容易忽视了安全,不管是主动或被动的。

系统安全设计需要增加成本而又不能直接带来效益,往往只有在系统被攻击、数据泄露、或甲方有聘期第三方安全厂商检测出数据安全问题时,才会关注软件安全问题。

在政企、医疗信息系统、教育信息系统这类由外部厂商开发的信息系统往往存在数据安全问题。

阅读更多

数据存储架构

在互联网系统架构中,当系统遇到高并发压力带来性能瓶颈时,应用层可以通过水平伸缩采用分布式集群部署来提高系统的处理能力。

而承受着最大处理压力,难以被水平伸缩的是数据存储部分。数据存储是整个系统的底座、基石。数据存储架构的变化往往会导致整个系统架构的改造。所以数据存储架构设计就显得尤其重要。

阅读更多

异步编程的几种实现方式

异步编程是实现程序并发、依赖解耦的一种方式。异步的本质是开启一个新的线程来执行。

异步:即整个业务中的某些逻辑交给不同的线程异步处理,不用等待异步线程的结果就可返回。

同步:即一条线程干到底,在没结束没返回之前不能干其它事情,必须在所有逻辑处理完才能返回。

阅读更多

负载均衡的五种实现方案

负载均衡(Load Balance),指将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行。

通过负载均衡,可以将高并发的请求分发到由多台应用服务器组成的一个服务器集群上,从而利用多台服务器资源处理高并发下的计算压力。

负载均衡大的技术方向分硬件负载均衡设计 和 软件负载均衡,硬件设备通常比较贵成本较高,这里主要讲软件实现负载 均衡的实现方案。

阅读更多

Spring MVC 集成Servlet3.0 AsyncContext异步请求实现

Servlet 和基于 Servlet 的容器(例如Tomcat)默认处理请求和处理业务是同一条线程,即有请求进来后,分配一条线程接收并处理请求,并继续执行业务处理,直到所有处理结束才完成响应,线程才会释放。这使得 Servlet 对业务方法的调用变成一种阻塞调用,效率较低。

Servlet3.0 提供了AsyncContex 来异步处理请求,将请求线程与业务处理线程分离。

阅读更多

事件驱动架构

事件驱动架构,通常指使用消息队列的异步架构。通常是应用在模块之间或服务之间的写操作,目的是实现依赖解耦。

使用消息队列实现异步架构是目前互联网应用系统中一种典型的架构模式。

阅读更多

组件化设计及边界定义

软件开发行业共识,应该将复杂的软件进行拆分,拆成多个低复杂度的子系统,子系统还可以继续拆分成更小粒度的组件。即软件需要进行模块化,组件化设计。

Java 开发依赖的一个个 Jar 包就是组件。

阅读更多

领域模型与建模

领域驱动设计是一种思维方式,也是一组优先任务,它旨在加速那些必须处理复杂领域的软件项目的开发。

两个前提:

  1. 大多数软件项目中,主要的焦点应该是领域和领域逻辑;
  2. 复杂的领域设计应该基于模型。

本系列文章主要是阅读《领域驱动设计–软件核心复杂性应对之道(修订版)》–Eric Evans 书笔记。

阅读更多

领域模型与建模

领域驱动设计是一种思维方式,也是一组优先任务,它旨在加速那些必须处理复杂领域的软件项目的开发。

两个前提:

  1. 大多数软件项目中,主要的焦点应该是领域和领域逻辑;
  2. 复杂的领域设计应该基于模型。

本系列文章主要是阅读《领域驱动设计–软件核心复杂性应对之道(修订版)》–Eric Evans 书笔记。

阅读更多