查看原文
其他

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

Java精选 2022-08-09
>>号外:关注“Java精选”公众号,回复“2021面试题”关键词,领取全套500多份Java面试题文件。

最近公司给了我一个任务,为了满足企业内部多系统的快速开发和解耦,需要为企业搭建一套内部企业架构,要求必须使用分布式、微服务技术,考虑到现在比较流行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

往期精选  点击标题可跳转

代码总是被嫌弃写的太烂?装上这个 IDEA 插件再试试!

Java 中注解与反射的使用方法及场景分析,有必要解释一下!

终于来了,IDEA 2021.1 正式版本发布,一起看看又有哪些神奇功能!

你还在用 Logback ?Log4j2 功能与异步性能已经无敌了,还不快试试?

Spring Boot 项目不同环境打包配置与Shell脚本部署实践,太实用了!

Spring boot 项目中如何优雅停止服务的五种方法,值得收藏!

Java 中什么是 IO 流,字节流、字符流两者区别,缓冲流原理代码剖析

你可能忽视的 MyBatis 3.5.X 在 JDK8 中存在的性能问题

复盘 Spring boot 中定时任务如何启用异步线程池

Spring Boot 框架中使用自定义注解 + 拦截器实现身份证等敏感数据加解密

Java 中处理 Exception 的 9 种实践,曾被很多团队认可采纳,值得收藏!

点个赞,就知道你“在看”!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存