1springcloud 原理见图
2 实现微服务管理机
核心代码
1 @EnableEurekaServer
2 修改端口 1001
3 服务名
spring.application.name=eureka-server
#主机名
eureka.instance.hostname=localhost
#关闭自我注册
eureka.client.register-with-eureka=false
#表示是否从Eureka Server获取注册信息这是一个单点的 Eureka Server,不需要同步其他节点的数据
eureka.client.fetch-registry=false
3 实现客户机(微服务)
核心代码
1 @EnableEurekaClient //专用版/@EnableDiscoveryClient//通用版
2 实例名 主机名 端口统统改好
3 eureka.client.serviceUrl.defaultZone=http://127.0.0.1:1001/eureka/
注意可以配置多个地址 http://127.0.0.1:1001/eureka/,http://127.0.0.1:1002/eureka/
使用较高的可以复制项目( 修改client02.iml 修改pom 导入项目)
4 负载均衡路由机
0 需要zuul依赖 spring-cloud-starter-netflix-zuul
1 @EnableZuulProxy
@EnableEurekaClient //开启zuul的功能:
2 api-a 也是模块名随便起
zuul:
routes:
api-a:
path: /模块名/**
serviceId: client01
zuul:
routes:
模块1
api-a:
# 定义一个路径 只要在地址栏里面 输入 user开头/controller的名称
#就会到 serviceId: user 里面去找对应的controller
path: /user/**
#服务的名称
serviceId: user
/------例子---------
zuul:
routes:
user:
path: /user/**
serviceId: client
spring:
application:
name: zuul
server:
port: 8080
eureka:
client:
serviceUrl:
defaultZone: http://127.0.0.1:1001/eureka/
instance:
hostname: localhost
/----------------------
feign
1 org.springframework.cloud
spring-cloud-starter-openfeign
2 @EnableFeignClients
3 接口
@FeignClient(value = “服务名”,fallback = UserControllerImpl.class)
public interface UserController {
@GetMapping("/服务的controller") //方法
public String getUserById(@RequestParam(“id”) int id);
//当服务不可以用时的默认操作
4 hystrix 断路器
feign:
hystrix:
enabled: true
4.1 zuul配置中加入 #设置ribbon的超时时间小于zuul的超时时间
ribbon:
ReadTimeout: 10000
ConnectTimeout: 10000