SpringCloud是基于SpringBoot的一整套实现微服务的框架。他提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。最重要的是,跟spring boot框架一起使用的话,会让你开发微服务架构的云服务非常好的方便。
我们是用maven来创建项目,创建项目所用的module都应该一样,其他的工程应该继承这个父工程;故只需要写一个pom文件即可。
创建一个maven工程以此工程为父工程其他的工程继承此工程;写破门文件。
1、pom文件
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.1.5.RELEASE
com.zhiyou100
server-parent
0.0.1-SNAPSHOT
server-parent
父工程用来定义版本号
UTF-8
UTF-8
1.8
Greenwich.RELEASE
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
org.springframework.boot
spring-boot-maven-plugin
创建服务注册中心,他的作用是对创建的所有子系统进行管理
4.0.0
com.zhiyou100
server-parent
0.0.1-SNAPSHOT
com.zhiyou100
server-erueka
0.0.1-SNAPSHOT
server-erueka
Demo project for Spring Boot
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
在主类上添加注解@EnableEurekaServer
再然后就是书写配置文件
#端口
server.port=8000
#应用在服务注册中心的名字
spring.application.name=eureka-server
#将该服务安装到本地--》localhost代表本机
eureka.instance.hostname=localhost
#r是否将自己注册到服务注册中心
eureka.client.register-with-eureka=false
#fetchRegistry表示是否从eureka服务器获取注册信息。
eureka.client.fetch-registry=false
#其他服务访问该服务的路径,服务注册到服务注册中心使用的路径http://localhost:8000/eureka/
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
启动服务配置中心输入主机与端口号验证http://localhost:8000/;在运行之前删除
测试test文件夹,如果不删除就导入test的依赖;此工程未导入依赖。
创建服务的提供者:创建一个maven注册到服务中心中,在配置文件中的spring.application.name配置就是为了方便消费者通过服务中心调用。
创建maven导入pom文件
4.0.0
com.zhiyou100
server-parent
0.0.1-SNAPSHOT
com.zhiyou100
server-hello
0.0.1-SNAPSHOT
server-hello
服务的提供者,返回hello你好
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.boot
spring-boot-starter-web
导入配置文件
#端口
server.port=8001
#在服务注册中心中的名字,就是通过这个名字调用服务
spring.application.name=server-hello
#提交到这个注册中心
eureka.client.service-url.defaultZone=http://localhost:8000/eureka/
在主类上添加注解@EnableEurekaClient
写返回数据服务
服务的消费者:他调用服务层
消费层有两种书写方法分别为rebbion和feign
导入pom文件
4.0.0
com.zhiyou100
server-parent
0.0.1-SNAPSHOT
com.zhiyou100
server-rebbion
0.0.1-SNAPSHOT
server-rebbion
Demo project for Spring Boot
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-starter-netflix-ribbon
导入配置文件
#端口
server.port=8010
#spring.application.name非常重要,服务直接的调用是根据这个name值来相互调用的
spring.application.name=server-ribbon
#提交到这个注册中心
eureka.client.service-url.defaultZone=http://localhost:8000/eureka/
书写配置类
创建RestTemplate对象
主类
写@EnableEurekaClient注解
创建service
使用RestTemplate调用server-hello服务,不写接口,直接写实现类
创建Controller调用service即可
在启动时注意先后顺序
先启动服务注册中心,启动服务提供者,消费者。