目前,Spring Cloud微服务开发套件和阿里巴巴开源服务治理框架Dubbo是实施微微服务的主要选择。
Dubbo是阿里服务化治理的核心框架,被广泛应用于阿里产品的各个站点,是一个比较全面的SOA基础框架。不仅具有较为完善的中文文档,国内很多互联网企业的架构师也都出自阿里集团。
“Spring Cloud,从命名我们就可以知道,它是Spring Source的产物,Spring社区的强大背景可以说是Java企业界最有影响力的组织了,除了Spring Source之外,还有Pivotal和Netfix是其强大的后盾与技术输出。其中Netflix开源的整套微服务架构套件是Spring Cloud的核心。”[1]
1。3 系统开发相关技术
1。3。1 Git
Git是一种开源的分布式SCM(Source Code Management,源代码管理)工具,是一个免费的开放源码的分布式版本控制系统,也是世界上最先进的分布式版本管理系统,用于处理从小到大所有项目的速度和效率。
Git是易于学习和具有闪电般的快速性能。它超越了SCM工具,如Subversion、CVS、ClearCase和低廉的本地分支,方便的暂存区,和多个工作流等特点。
GitHub(https://github。com)是GIT服务器中比较知名和成功的,它提供了基于身份认证和项目托管等功能。
1。3。2 SOLID原则
系统设计遵循SOLID(OOD&OOP重要编码原则)原则:
图1。1 SOLID原则
1。3。3 Apache Maven
Maven(http://maven。apache。org)是Apache开源组织的项目,该项目用于组织和构建Java项目。“基于POM(项目对象模型)的概念,Maven可以用来管理项目的构建、报告和文档。Maven使用标准的目录结构(约定目录)和默认构建生命周期”[7],为项目构建提供了完整的生命周期框架。
1。3。4 Mybatis
“MyBatis的前身是iBatis,后改名为MyBatis。MyBatis是支持普通SQL查询、存储过程和高级映射的持久层框架。MyBatis消除了几乎所有的JDBC代码操作,如参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和POJO映射成数据库中的记录”[10]。
优势:
· MyBatis可以做更为细致的SQL优化,可以控制查询字段的个数。
· MyBatis比Hibernate更容易入门。
“Mybatis的功能架构分为三层:
1) API接口层:提供给外部使用的接口API,开发人员通过这些API接口来操纵数据库。接口层接收到请求就会调用数据处理层来完成具体的数据处理。
2)数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射POJO处理等。它主要的目的是根据请求完成一次数据库操作。
3)基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理。”[10]
图1。2 Mybatis 架构设计图
图1。3 Mybatis整理流程图
1。3。5 Spring
“Spring是一个轻量级的DI和AOP容器框架,Spring框架为基于java的企业应用程序提供了跨平台的综合编程和配置模型。”[2]“Spring的一个关键要素是应用层的基础设施支持:Spring专注于企业应用程序的“管道”,以便团队可以专注于业务逻辑,而不必对特定部署环境进行不必要的操作。”[2]
优点:
1)“使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑
2)可以提供众多服务,事务管理,WS等
3)AOP的很好支持,方便面向切面编程
4)对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等”[2]