spring cloud构建分布式云架构-微服务
1.鸿鹄Cloud框架选型-鸿鹄Cloud简介
鸿鹄Cloud使用大型互联网分布式企业微服务云架构(鸿鹄Cloud分布式微服务云),云框架是基于Spring Cloud来封装的,是一系列框架的有序集合。利用Spring Boot的开发模式简化了分布式系统基础设施的开发,如服务发现、注册、配置中心、消息总线、负载均衡、断路器、数据监控等(这里只简单的列了一部分),都可以用Spring Boot的开发风格做到一键启动和部署。鸿鹄云Cloud将目前比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装,屏蔽掉了复杂的配置和实现原理,最终整合出一套简单易懂、易部署和易维护的分布式系统架构平台。
采用服务化的组件开发模式,可实现复杂的业务功能。提供驱动式开发模式,整合内置的代码生成器,将JavaEE开发效率提高5倍以上,减少50%的代码开发量,解决80%的重复工作,让开发者更关注业务逻辑。 使用Maven进行项目的构建管理,采用Jenkins进行持续集成,主要定位于大型分布式企业系统或大型分布式互联网产品的架构。
2.鸿鹄技术架构
鸿鹄Cloud分布式微服务云结合了当前大部分企业的通用需求,包括技术的选型比较严格、苛刻,不仅要用业界最流行的技术,还要和国际接轨,在未来的5~10年内不能out。为公司技术选型要有一种放眼世界的眼光,不仅要给公司做好的技术选型,而且还要快速响应企业的业务需求,能够为企业快速定制化业务。
鸿鹄Cloud使用大型互联网分布式企业微服务云架构(鸿鹄云),架构图如下:
3.鸿鹄Cloud组成
大型企业分布式微服务云架构服务组件实现模块化、微服务化、原子化、灰度发布、持续集成,组件组成如下:
commonservice eureka
云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移
commonservice config
配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。
Spring Cloud Bus
事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。
Hystrix
熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
Feign
Feign是一种声明式、模板化的HTTP客户端。
Spring Cloud Task
提供云端计划任务管理、任务调度。
Ribbon
提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。
Turbine
Turbine是聚合服务器发送事件流数据的一个工具,用来监控集群下hystrix的metrics情况。
Zuul
Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。
Spring Cloud Security
基于spring security的安全工具包,为你的应用程序添加安全控制。
commonservice sso
为Web、手机、PC提供统一登录、认证、授权入口,允许第三方系统在用户授权的前提下访问用户在服务鸿鹄云商存储的服务信息。
commonservice apigateway
API网关封装了系统内部架构,为每个客户端提供一个定制的API。如身份验证、监控、负载均衡、缓存、管理、静态响应处理。
commonservice zipkin
日志收集工具包,封装了Dapper和log-based追踪以及Zipkin和HTrace操作,为SpringCloud应用实现了一种分布式追踪解决方案。
commonservice turbine
聚合服务器发送事件流数据的一个工具,用来监控集群下hystrix的metrics情况。。
commonservice cache
独立分布式缓存服务。
commonservice admin
微服务监控,如Health、内存、JVM、垃圾回收、各种配置信息(比如数据源、缓存列表和命中率)等,可修改logger的level等。
commonservice-system
提供后台管理基础功能,其中包括:用户,角色,权限,数据字典,菜单,部门,机构,操作日志,连接池监控等
4.代码结构
5.后台管理平台-技术点(只列了基础部分)
SOA服务框架:Spring Cloud 、Spring Boot、RestFul等
分布式缓存:Redis
模块化管理:Maven
数据库连接池:Alibaba Druid
核心框架:Spring framework、Spring Boot
持久层框架:MyBatis
安全框架:Apache Shiro
服务端验证:Hibernate Validator
任务调度:quartz
日志管理:SLF4J 1.7、Log4j
客户端验证:JQuery Validation
动态页签:easyui tab
前端框架:Bootstrap、Vue
6.后台管理平台-功能结构图
7.基础功能列表及描述
用户管理:用户是系统操作者,该功能主要完成系统用户配置。
角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
权限管理:对系统中经常使用的一些较为固定的数据进行维护等。
菜单管理:配置系统菜单,操作权限,按钮权限标识等。
部门管理:配置系统组织机构,树结构展现,可随意调整上下级。
日志管理:系统操作日志记录和查询;系统异常信息日志记录和查询。
连接池监视:监视数据库连接池状态,分析SQL找出系统性能瓶颈。
8.后台管理平台-基础功能截图
9.鸿鹄云平台微服务层设计
10.鸿鹄Cloud的未来
鸿鹄Cloud为未来互联网企业提供分布式基础设施解决方案。同时,随着近几年微服务架构和Docker容器概念的火爆,也会让Spring Cloud在未来越解决方案中提供了标准化的、全站式的技术方案,有效推进服务端软件系统技术水平提升。