一、SpringCloud简介
SpringCloud是一个分布式的整体解决方案。Spring Cloud为开发者提供了在分布式系统(配置管理、服务发现、熔断、路由、微代理、控制总线、一次性token、全局锁、leader选举、分布式session、集群状态)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。
二、SpringCloud分布式开发五大常用组件
- 服务发现——Netflix Eureka
- 客服端负载均衡——Netflix Ribbon
- 断路器——Netflix Hystrix
- 服务网关——Netflix Zuul
- 分布式配置——Spring Cloud Config
三、搭建
1.新增项目euraka-server,在Spring Cloud Discovery中选择Eureka Server,并在启动项添加@EnableEurekaServer
#yml注册中心Eureka配置
server:
port: 8761
eureka:
instance:
hostname: eureka-server #eureka实例主机名
client:
register-with-eureka: false #不把自己注册到eureka
fetch-registry: false #不从eureka上来获取服务的注册信息
service-url:
defaultZone: http://localhost:8761/eureka/
2.新增provider-ticket服务提供者,在Spring Cloud Discovery中选择Eureka discovery Client,
#yml服务提供配置
server:
port: 8001
spring:
application:
name: provider-ticket
eureka:
instance:
prefer-ip-address: true #注册服务的时候使用服务的IP地址
client:
service-url:
defaultZone: http://localhost:8761/eureka/
3.新增consumer-user,在Spring Cloud Discovery中选择Eureka discovery Client,并且在启动项中加上@EnableDicoveryClient开启服务发现功能,并在启动项加入如下方法:
@LoadBalanced//负载均衡
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
spring:
application:
name: consumer-user
server:
port: 8200
eureka:
instance:
prefer-ip-address: true
client:
service-url:
defaultZone: http://localhost:8761/eureka/