如何用 Spring Cloud 构建面向企业的大型分布式、微服务快速开发框架?

最近公司给了我一个任务,为了满足企业内部多系统的快速开发和解耦,需要为企业搭建一套内部企业架构,要求必须使用分布式、微服务技术,考虑到现在比较流行springcloud开源架构,故在此基础上进行了框架搭建,搭建过程中对整个架构设计思想做了一下总结,希望可以帮助更多的朋友了解企业分布式架构,总结如下:

1. 鸿鹄Cloud架构清单

2. Commonservice(通用服务)

通用服务:对spring Cloud组件的使用&封装,是一套完整的针对于分布式微服务云架构的解决方案。如:注册中心、配置中心、网关中心、监控中心、认证中心、用户中心、日志中心、文件中心、消息中心、分布式ID、链路追踪、聚合发送等。

1)清单列表

2)代码结构

3. Component(通用组件)

通用组件:对系统常用组件的封装,如:常用异常状态码、URL权限、Service/Dao/VO封装、Mybatis/Spring封装、分页、对象存储包、Redis缓存、日志、常用工具类、RabbitMQ、分布式Sequence等。

1)清单列表

2)代码结构

4. 快速开发管理平台

鸿鹄云架构【系统管理平台】是一个大型企业、分布式、微服务、云架构的JavaEE体系快速研发平台,基于模块化、微服务化、原子化、热部署的设计思想,使用成熟领先的无商业限制的主流开源技术(Spring Cloud+Spring Boot+Mybatis+Oauth2+微服务设计思想)构建。采用服务化的组件开发模式,可实现复杂的业务功能。使用Maven进行项目的构建管理,采用Jenkins进行持续集成,主要定位于大型分布式企业系统或大型分布式互联网产品的架构。使用当前最流行最先进的开源技术实现服务组件化及管理,真正为企业打造分布式微服务云架构平台。

【平台安全性】平台严格遵循Web安全规范,使用前后端双重验证统一用户认证密码安全策略,标准功能权限、数据权限过滤。使用防SQL脚本注入跨站点脚本编制(XSS)伪造请求(CSRF)攻击等常见的攻击手段。

业务服务与业务服务提供对外标准Restful接口规范,对内Feign的调用模式,实现分布式集群部署,业务与业务之间完全解耦,使用Zipkin做服务与服务之间的链路追踪ES做日志数据收集,真正为企业打造分布式、微服务、云架构平台。

1)清单列表

2)代码结构

5. 业务服务

业务服务:通过服务与服务之间的内部(Feign)、外部通讯(Restful),满足不同业务需求。外部服务通过标准化协议,对外提供安全稳定的Restful服务,对内通过Spring Cloud Feign方式进行通讯,数据库完整CRUD操作。

1)代码结构

6. 分布式架构图

7. 运行环境支持

开发工具:Idea、Eclipse     
WEB容器:Tomcat、Jboss、Weblogic、webSphere
JDK版本:1.8+               
系统支持:Docker、Window、Linux
数据库/数据源:MySQL、Alibaba Druid     
服务框架:Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security
分布式中间件:RabbitMQ、Redis、ElasticSearch、OSS     
前端架构:VUE、Uniapp、Layui、Bootstrap、H5、CSS3
构建方式:Maven、Jenkins     
涉及技术:Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、Stream、ElasticSearch

以上是我给公司规划的分布式、微服务、云架构快速开发框架技术方案,希望可以帮助更多的朋友!

~阅读全文-人机检测~

关注下方微信公众号“Java精选”(w_z90110),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。微信搜索小程序“Java精选面试题”,内涵3000+道Java面试题!

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。

评论

分享:

支付宝

微信