一、注册中心(使用eureka)
1.依赖:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
2.配置:
server: port: 8761 spring: application: name: register eureka: instance: hostname: imooc:123456@localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ security: basic: enabled: true user: name: imooc password: 123456
3.启动注解: 在启动类添加
@EnableEurekaServer
4.访问: http://localhost:8761
二、 网关
(zuul,默认是Hystrix 客户端,不需要再注入Hystrix,并且能对所有的请求进行监控) 1.依赖:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId> </dependency>
2.配置:
server: port: 8888 spring: application: name: proxy eureka: client: service-url: defaultZone: http://imooc:123456@localhost:8761/eureka zuul: #定义路由规则,默认路由是网关地址+应用名+应用原来的接口requestMapping routes: userApi: path: /user/** serviceId: user # 是否去掉**前缀,默认是 stripPrefix: true
3.启动注解:
在启动类添加@EnableEurekaClient @EnableZuulProxy
三、服务
1.依赖:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency>
2.配置:
server: port: 8081 spring: application: name: user eureka: client: service-url: defaultZone: http://imooc:123456@localhost:8761/eureka
3.启动注解: 在启动类添加
@EnableEurekaClient
四、监控(Hystrix 分服务端和客户端)
1.依赖:<!-- 服务端 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId> </dependency> <!-- hystrix 客户端 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency> <!-- 能够收集应用中的性能监控信息及开放一些管理端的接口 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
2、配置: 3、启动注解: 在启动类添加(服务端)
@EnableHystrixDashboard
在启动类添加(客户端)
@EnableHystrix
在接口处添加(客户端)
@HystrixCommand(fallbackMethod = "fallbackGetOrder")
*fallbackMethod = "fallbackGetOrder"是指定如果报错了,就调用该方法,要求方法的入参及出参要与原方法一样
4、服务端访问:ip:端口/hystrix 在服务页文本框里输入客户端的ip:端口/hystrix.stream 进行查看监控五、服务间调用(Feign)
1、依赖:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> </dependency>
2、配置:0 3、启动注解: 在启动类添加
@EnableFeignClients
4、代码编写: 调用端编写接口:
@FeignClient(value = "order",path = "/") public interface OrderClient { /** * 获取订单信息 * @return java.lang.String * @author wangquanqing * @date 2018/11/27 15:21 */ @GetMapping("/{id}") String getMyOrderId(@PathVariable(name = "id") Long id); }
被调用端编写接口实现:
@RestController @RequestMapping("/") public class OrderResource { @GetMapping("/{id}") public Long getMyOrder(@PathVariable(name="id") Long id){ return id; } }
标签:1.5,17,spring,springframework,eureka,starter,demo,org,cloud From: https://www.cnblogs.com/anquing/p/17626566.html