1.开篇
我们都知道,之前有一套微服务叫做Dubbo+Zookeeper,Dubbo是一个RPC框架,是阿里巴巴的,但是后来阿里停止了对Dubbo的维护,并把Dubbo共享给了Apache,在这个节骨眼上,SpringCloud趁虚而入,于是,在微服务的领域火了起来。
SpringCloud官网:Spring Cloud
SpringCloud的版本关系:Spring Cloud 采用了英国伦敦地铁站的名称来命名,并由地铁站名称字母A-Z依次类推的形式来发布迭代版本。
SpringCloud是一个由许多子项目组成的综合项目,各子项目有不同的发布节奏。为了管理SpringCloud与各子项目的版本依赖关系,发布了一个清单,其中包括了某个SpringCloud版本对应的子项目版本。为了避免SpringCloud版本号与子项目版本号混淆,SpringCloud版本采用了名称而非版本号的命名,这些版本的名字采用了伦敦地铁站的名字,根据字母表的顺序来对应版本时间顺序。例如Angel是第一个版本, Brixton是第二个版本。当SpringCloud的发布内容积累到临界点或者一个重大BUG被解决后,会发布一个"service releases"版本,简称SRX版本,比如Greenwich.SR2就是SpringCloud发布的Greenwich版本的第2个SRX版本。
下面这张图是SpringCloud和SpringBoot之间的版本关系。
这里,我跟随尚硅谷的教学视频,学习的是SpringCloud Hoxton和SpringCloud alibaba。
项目中的版本约定如下:
SpringCloud Hoxton:SR1
SpringCloud alibaba:2.1.0.RELEASE
SpringBoot:2.2.2.RELEASE
Java:jdk1.8
Maven:3.5及以上
MySQL:5.7及以上
2.项目源码构建
github源码地址:https://github.com/2656307671/SpringCloud-Hoxton-Eureka-
gitee源码地址:汉卿/SpringCloud Hoxton-Eureka服务注册与发现
这个微服务支付模块下面一共搭建了6个子模块。(Eureka集群的服务注册与发现)
- 公共实体类子模块cloud-api-commons
- Eureka Server端服务注册中心cloud-eureka-server7001(类似于教育部)
- Eureka Server端服务注册中心cloud-eureka-server7002(同7001)
- Eureka Client端服务提供者cloud-provider-payment8001(类似于北京大学,需要在教育部注册即可教学,注册完成即可对外提供招生等服务)
- Eureka Client端服务提供者cloud-provider-payment8002(类似于清华大学,需要在教育部注册即可教学,注册完成即可对外提供招生等服务)
- Eureka Client端服务消费者cloud-consumer-order80(类似于清华北大的学生,可以在服务提供者各大学中进行消费)
这6个子模块的构建步骤无非就是这几步:建module、改pom、写yml、主启动类、业务类、测试。
创建完一个模块之后,最好使用maven中的install命令,将该工程发布到仓库,以便其他工程使用。
测试的时候,一定要实现热部署。6个子模块的启动顺序:2、3、4、5、6
测试结果如下:(分别是7001、7002两个注册中心的首页,以及服务消费者的访问)