ERP微服务学习系列一:微服务接口核心框架/组件介绍

摘要

通过阅读本文,你应该了解到ERP微服务接口所用到的核心框架/组件,这些框架/组件分别的什么用,解决什么问题的。
另外,通过了解ERP微服务接口框架,衍生出对如何学习Java微服务框架,有一个大体的了解。
最后,对目前主流的Java Spring Cloud体系也有一个总体的了解。
本文只是起一个抛砖引玉,穿针引线的作用,根据里面涉及到的内容,你们可以自行百度或者咨询我,从而可以快速学习Java微服务框架的开发。

正文

如果想了解ERP接口微服务总体架构,可以阅读本文。
看完之后,建议回想一下,看能否回答这个问题:ERP微服务架构有用到哪些核心的开源框架/组件,还有其作用是什么。
如果能大概想通,可以大体回答出来,说明你对ERP的Spring Cloud微服务架构已经有一定的入门了解。

一、ERP接口的微服务架构有用到了哪些核心开源框架/组件。

这些框架/组件分别的什么用,解决什么问题的。
可以从几大块来说明:
1)核心用的Spring Cloud微服务框架/组件:
Eureka注册中心,Zuul统一网关管理微服务的API服务地址,Spring Security访问安全(例如Token处理)框架
上面说的是最基础的微服务组件,接着还有Feign服务间调用,Ribbon负载均衡,Hystrix服务熔断,都有各自的应用场景。尤其是Feign服务间调用,真正解决了微服务的服务间调用的问题。
需要注意的是,所有的Spring cloud项目都是基于Spring boot框架开发的。
2)微服务运行环境框架/组件:
Docker容器化部署,解决多个微服务部署管理的问题;Redis快速存储缓存(主要是用于缓存token);nginx反向代理服务,统一对外开放访问服务。
3)微服务自动化构建框架/组件:
Jenkins自动化构建工具,解决微服务代码的自动化构建的问题。
4)微服务接口文档管理框架/组件:
Swagger接口文档管理,接口接口文档的管理的问题。
5)支撑微服务的开发的框架/组件:
Alibaba druid数据库连接池,MyBatis-ORM关系型数据库映射框架(持久化框架),XXL-JOB调度中心(轻量级分布式任务调度平台)等。
6)微服务代码项目管理工具:
Maven项目管理工具,快速打包,自动依赖管理等。有效处理java的jar包的蜘蛛网关系。

下图是ERP微服务框架的总体架构图:

ERP微服务学习系列一:微服务接口核心框架/组件介绍_第1张图片

 更多的信息请看文档:https://segmentfault.com/a/1190000014451475

二、Java微服务的体系目前有哪些?

Java微服务都是以Spring Cloud作为基础。
最先,Spring Cloud的核心组件最先是由netflix开源的,例如eureka、ribbon、hystrix。
所以可以说,Java微服务的第一个体系是:Spring Cloud Netflix
但是,由于诸多因素,例如商业和开源的维护成本等,Netflix开源的组件有些已经不再维护,不添加新功能了(但是会继续修复bug)。
基于这个情况,国内的Java大佬公司阿里巴巴,针对Spring Cloud自己搭建了一个体系:Spring Cloud Alibaba
难得的是,Spring Cloud Alibaba体系的组件一直有更新迭代,也扩展了一些更好用的功能。所以,目前Java微服务开发是以Spring Cloud Alibaba作为主流。
目前Spring Cloud Alibaba这个生态中,已经有相对成熟的体系:
Nacos 服务注册发现、配置管理、服务管理
Dubbo 用于实现高性能Java RPC 通信
Open Feign 用于微服务的服务间调用
Sentinel 流量控制、熔断降级、系统负载保护
RocketMQ 分布式消息系统,提供低延时的、高可靠的消息发布与订阅服务
Seata 高性能微服务分布式事务解决方案
Alibaba Cloud OSS 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。
Alibaba Cloud SchedulerX 阿里中间件团队开发的一款分布式任务调度产品,支持周期性的任务与固定时间点触发任务。
Alibaba Cloud SMS 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。
等等。
总结来说:
ERP微服务框架用的是Spring Cloud Netflix体系。
信义迅开发平台用的是Spring Cloud Alibaba体系。

三、应该如何学习ERP微服务开发?

总体来说,正确的学习顺序应该是:
1、学习maven项目管理工具。
说白了就是解决java的错综复杂的jar包的依赖和管理的问题。要学会安装配置和使用。
2、学习Spring boot。
简化结构的Java项目开发,用约定大于配置的严则,可以进行快速的项目开发。
上面2点是最最最基础的,搭建好基础环境之后,最好自己先做一个简单的Hello World,先熟悉一下这种目前主流的java项目的开发模式。
特别是POM文件依赖是啥用途的,还有Spring boot的项目的基础结构之类的,都是要了解的。
这个如果学不好,下面的Spring Cloud是没办法看下去的。
3、学习Spring Cloud微服务框架。
建议先学习Spring Cloud Netflix体系,也可以直接学习Spring Cloud Alibaba体系。
见下面内容。目前ERP微服务接口核心用到的只是服务注册发现,和统一路由这2个。别的可以自行研究。
4、学习MyBatis持久化框架
最终我们还是得操作数据库。这里用的核心是MyBatis框架。所以必须要学习。
具体可以看附件文档,也可以多百度一下。
官网说明:https://mybatis.org/mybatis-3/zh/index.html
5、Swagger接口文档自动产生学习
百度关键字:swagger配置
或者直接看:https://www.cnblogs.com/zxf330301/p/7758454.html
6、学习了上面基础的,再继续学习如何用docker容器化部署,Jenkins自动化构建,Spring Security(token处理)访问安全等等。需要一步一步来。
7、需要注意的是,一定要具备java开发基础,这个开发语言是第一个要学会的。语言学会了再来学框架。

------我是分割线

最后,本文讲解完了ERP微服务接口框架的基础框架,ERP微服务学习系列会继续介绍ERP微服务的相关知识。后面的系列会抽时间整理并分享出来。

ERP微服务学习系列教程:

ERP微服务学习系列一:微服务接口核心框架/组件介绍
内容:主要是介绍ERP微服务接口所用到的核心框架/组件,这些框架/组件分别的什么用,解决什么问题的。

ERP微服务学习系列二:微服务接口系统功能服务介绍
内容:主要是介绍ERP微服务的硬件环境信息,docker部署这块(包括有几个docker,每个微服务的业务作用),微服务的地址,有哪几个测试环境,怎么匹配EPR数据库,如何使用swagger在线调试接口等。通过本文能对微服务的基本使用和硬件环境有大体的了解。

ERP微服务学习系列三:微服务接口开发流程以及上线流程介绍
内容:主要是介绍ERP微服务开发流程,开发的规范(尤其是命名规范),还有上线流程,包括gitlab的使用,Jenkins的使用等。通过本文能对ERP微服务的开发有基础了解。

ERP微服务学习系列四:微服务接口框架要点介绍
内容:针对ERP微服务接口框架的一些重点逻辑介绍。例如ERP微服务如何和EBS系统用户登录结合,如何记录日志访问,如何解决session共享带来的用户环境的问题,数据库的事务处理的一致性如何保证,数据库Type类型变量如何传参,如何开发一个新的ERP微服务模块,还有这套系统用的过程中碰到的一些疑难杂症的处理介绍等等。

你可能感兴趣的:(spring-cloud,Java-web开发,微服务,java,microservices)