如何用 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
以上是我给公司规划的分布式、微服务、云架构快速开发框架技术方案,希望可以帮助更多的朋友!
作者:SpringCloud关注者
my.oschina.net/u/3613013/blog/5028472
Java 中注解与反射的使用方法及场景分析,有必要解释一下!
终于来了,IDEA 2021.1 正式版本发布,一起看看又有哪些神奇功能!
你还在用 Logback ?Log4j2 功能与异步性能已经无敌了,还不快试试?
Spring Boot 项目不同环境打包配置与Shell脚本部署实践,太实用了!
Spring boot 项目中如何优雅停止服务的五种方法,值得收藏!
Java 中什么是 IO 流,字节流、字符流两者区别,缓冲流原理代码剖析
你可能忽视的 MyBatis 3.5.X 在 JDK8 中存在的性能问题