详情看 http://blog.didispace.com/springcloud1/
对几个注解标注下作用
1.@EnableEurekaServer
作用: 启动一个服务注册中心提供给其他应用进行注册
2.@EnableDiscoveryClient
作用: 让注册中心发现我这个服务
3.@EnableEurekaClient
作用:让Eureka注册中心发现我这个服务
2跟3的区别在于,3表示这个服务只能被Eureka注册中心发现,并注册在eureka里,2是不单可以被eureka发现,也可以被其它注册中心发现,比如说zookeer
4.DiscoveryClient对象
作用:服务发现客户端,可以通过调用它的方法获取服务的服务实例
前提:要引用注解@EnableDiscoveryClient,这个对象才起作用
@Autowired
private DiscoveryClient client;
@RequestMapping(value = "/add" ,method = RequestMethod.GET)
public Integer add(@RequestParam Integer a, @RequestParam Integer b) {
//getLocalServiceInstance获取本地服务实例
ServiceInstance instance = client.getLocalServiceInstance();
//client.getInstances(String serviceId); 通过服务id,获取当前服务的服务实例
//client.getServices(); 获取所有服务 ID 列表
Integer r = a + b;
logger.info("/add, host:" + instance.getHost() + ", service_id:" + instance.getServiceId() + ", result:" + r);
return r;
}
详情请看http://blog.didispace.com/springcloud2/
5.RestTemplate对象
作用:服务消费者去调用服务时,可以用这个对象发起请求,并接收返回内容
6.@LoadBalanced
作用: 方便我们对RestTemplate添加一个LoadBalancerClient,以实现客户端负载均衡
7.@EnableCircuitBreaker
作用:开启断路器功能,写在Application上
8.@HystrixCommand
作用:指定回调方法,写在方法上
demo
@HystrixCommand(fallbackMethod = "addServiceFallback")
public String addService() {
return restTemplate.getForEntity("http://COMPUTE-SERVICE/add?a=10&b=20", String.class).getBody();
}
public String addServiceFallback() {
return "error";
}
9.@springCloudApplication
作用:合了@SpringBootApplication
,@EnableDiscoveryClient,
@EnableCircuitBreaker
,是简化配置
10.@EnableZuulProxy
作用:开启Zuul