Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。Spring Cloud将它集成在其他子项目spring-cloud-netflix中,以实现spring cloud服务发现功能。
注册中心
注册中心地址
1 | http://admin:pwd123@node1.test.com:8001/eureka/,http://admin:pwd123@node1.test.com:8002/eureka/,http://admin:pwd123@node3.test.com:8003/eureka/ |
服务注册
工程结构
1 | eureka-provider |
Maven配置
1 | <dependencies> |
主类示例
@EnableDiscoveryClient
开始实例自动发现并注册到注册中心
1 |
|
配置示例
1 | spring.application.name=server-provider |
服务接口
1 |
|
服务启动
1 | [root@localhost target ]$ java -jar eureka-provider-1.0-SNAPSHOT.jar --server.port=7001 & |
注册查看
访问注册中心:http://admin:pwd123@node1.test.com:8001
服务消费(Ribbon)
工程结构
1 | eureka-consumer-ribbon |
Maven依赖
1 | <dependencies> |
消费示例
主类示例
@EnableDiscoveryClient
注解让改应用注册为Eureka客户端应用,在主类中创建RestTemplate的实例,并通过@LoadBalanced
开启客户端负载均衡.
1 |
|
Api服务
这里访问的PROVIDER.TEST.SIMPLESERVER
是服务提供方的服务名(服务名不区分大小写)
1 |
|
配置示例
1 | server.port=8080 |
启动访问
注册中心面板
访问请求查看
1 | [root@localhost target ]$ curl -XGET http://172.30.12.197:8080/api/invoke/select/7 |
服务消费(Feign)
工程结构
1 | eureka-consumer-feign |
Maven依赖
1 | <dependencies> |
消费示例
主类示例
@EnableDiscoveryClient
注解让改应用注册为Eureka客户端应用,@EnableFeignClients
开启Spring Cloud Feign支持
1 |
|
接口调用
定义调用接口,通过@FeignClient
注解指定服务名来绑定服务,这里配置的SERVER-PROVIDER
是服务提供方的服务名(服务名不区分大小写)
1 | "SERVER-PROVIDER") (name= |
Api服务
1 |
|
配置示例
1 | server.port=9090 |
启动访问
注册中心面板
访问请求查看
1 | [root@localhost target ]$ curl -XGET http://172.30.12.197:9090/api/invoke/select/5 |