一、Spring Boot 升级Spring Cloud
1、导入Spring Cloud相关jar包,修改pom.xml文件
备注:可能不同的Spring Boot版本会对应不同的Spring Cloud版本号,以下配置的Spring Boot版本号:
2.1.5.RELEASE
- 在标签下,加入spring-cloud和eureka版本号
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
<spring-cloud-eureka.version>2.1.0.RELEASE</spring-cloud-eureka.version>
- 导入Spring Cloud相关jar包,修改pom.xml文件
<!-- springCloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Eureka客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>${spring-cloud-eureka.version}</version>
</dependency>
<!-- feign远程调用,包含了ribbon负载均衡 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>${spring-cloud-eureka.version}</version>
</dependency>
2、在Spring Boot启动类上加上如下注解:
@EnableDiscoveryClient // 注册服务
@EnableFeignClients // 开启远程调用(发现服务)
3、在yml配置文件中,添加eureka相关配置(如果没有应用名,还需要配置应用名)
eureka:
client:
service-url:
defaultZone: http://172.16.18.72:9000/eureka
instance:
prefer-ip-address: true # 当其它服务获取地址时提供ip而不是hostname
ip-address: 172.16.18.72 # 指定自己的ip信息,不指定的话会自己寻找
lease-renewal-interval-in-seconds: 30 # 30秒检测一次心跳
lease-expiration-duration-in-seconds: 90 # 最小过期时长,间隔90秒就准备剔除,之后60秒后执行
spring:
application:
name: xxxxxxxx-demo
二、案例
1、服务注册简单案例
- 主函数添加注解
@SpringBootApplication
@EnableDiscoveryClient
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
- yml配置
server:
port: 9002
spring:
application:
name: spring-cloud-boot-provide
eureka:
client:
service-url:
defaultZone: http://172.16.18.72:9000/eureka
instance:
prefer-ip-address: true # 当其它服务获取地址时提供ip而不是hostname
ip-address: 172.16.18.72 # 指定自己的ip信息,不指定的话会自己寻找
lease-renewal-interval-in-seconds: 30 # 30秒检测一次心跳
lease-expiration-duration-in-seconds: 90 # 最小过期时长,间隔90秒就准备剔除,之后60秒后执行
- 编写测试接口
@RestController
public class DemoController {
@GetMapping("/demo/{name}")
public String demo(@PathVariable String name){
return "Hello World!" + name;
}
}
- 启动主程序,并查看注册中心是否有该应用(生产者)

- 访问http://127.0.0.1:9002/demo/java

2、服务发现简单案例
- 主函数添加注解
@SpringBootApplication
@EnableDiscoveryClient // 注册服务
@EnableFeignClients // 开启远程调用
public class DemoConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(DemoConsumerApplication.class, args);
}
}
- yml配置
server:
port: 9003
spring:
application:
name: spring-cloud-boot-consumer
eureka:
client:
service-url:
defaultZone: http://172.16.18.72:9000/eureka
instance:
prefer-ip-address: true # 当其它服务获取地址时提供ip而不是hostname
ip-address: 172.16.18.72 # 指定自己的ip信息,不指定的话会自己寻找
lease-renewal-interval-in-seconds: 30 # 30秒检测一次心跳
lease-expiration-duration-in-seconds: 90 # 最小过期时长,间隔90秒就准备剔除,之后60秒后执行
- 创建服务调用接口
@FeignClient(name = "spring-cloud-boot-provide" )
public interface ServiceFeignClient {
//这里接口要与被生产者demo一致
@GetMapping("/demo/{name}")
String demo(@PathVariable("name") String name);
}
- 编写测试接口,消费已经注册好的接口
@RestController
public class ConsumerController {
@Autowired
ServiceFeignClient serviceFeignClient;
@GetMapping("/demo/{name}")
public String index(@PathVariable("name") String name) {
return serviceFeignClient.demo(name);
}
}
- 启动主程序,并查看注册中心是否有该应用(消费者)

- 访问http://127.0.0.1:9003/demo/java


本文详细介绍如何在SpringBoot项目中引入SpringCloud进行微服务架构搭建。从导入依赖到配置服务注册与发现,再到实现远程调用,手把手教你完成微服务集群部署。

被折叠的 条评论
为什么被折叠?



