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:
/------例子--------- 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