微服务架构之spring cloud (二)服务注册与发现
2017-05-05 11:29
597 查看
spring cloud的服务注册与发现是分布式架构中核心的一部分,由服务注册中心,服务提供者,服务消费者构成。
创建服务注册中心
1.1:创建cloud_eureka_server(服务注册中心)maven项目,pom.xml配置:加入eureka的依赖
其它通用配置请查看前言通用配置
1.2:application.properties配置:
server.port=10003
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
1.3:创建启动类:
通过@EnableEurekaServer注解启动一个服务注册中心提供给其他应用进行对话
在默认设置下,该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为。
2. 创建服务提供者
2.1:创建cloud_eureka_service1项目,pom.xml配置如下:
其它通用配置请查看前言通用配置
2.2:application.properties配置:
eureka.client.serviceUrl.defaultZone属性对应服务注册中心的配置内容,指定服务注册中心的位置。
2.3主启动类:
@EnableDiscoveryClient能激活Eureka中的DiscoveryClient实现,才能实现Controller中对服务信息的输出。
2.4创建计算服务API:
3 创建服务消费者
3.1创建服务cloud_eureka_ribbon 项目,pom配置如下:
其它通用配置请查看前言通用配置
3.2:application.properties配置:
spring.application.name=ribbon-consumer
server.port=10006
eureka.client.serviceUrl.defaultZone=http://localhost:10003/eureka/
3.3:创建主启动类:
3.4创建计算API,调用服务提供者对外暴露接口:
4:主要工作都已完成。然后依次启动服务注册中心,服务提供者,服务消费者。
访问:http://localhost:10003 可以看到服务已经被注册。
访问:http://localhost:10006/add 返回30,同时控制台将打印出调用日志。
创建服务注册中心
1.1:创建cloud_eureka_server(服务注册中心)maven项目,pom.xml配置:加入eureka的依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency>
其它通用配置请查看前言通用配置
1.2:application.properties配置:
server.port=10003
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
1.3:创建启动类:
通过@EnableEurekaServer注解启动一个服务注册中心提供给其他应用进行对话
@EnableEurekaServer @SpringBootApplication public class CloudEurekaServerApplication { public static void main(String[] args) { SpringApplication.run(CloudEurekaServerApplication.class, args); } }
在默认设置下,该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为。
2. 创建服务提供者
2.1:创建cloud_eureka_service1项目,pom.xml配置如下:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency>
其它通用配置请查看前言通用配置
2.2:application.properties配置:
spring.application.name=compute-service server.port=10004 eureka.client.serviceUrl.defaultZone=http://localhost:10003/eureka/
eureka.client.serviceUrl.defaultZone属性对应服务注册中心的配置内容,指定服务注册中心的位置。
2.3主启动类:
@EnableDiscoveryClient @SpringBootApplication public class CloudEurekaService1Application { public static void main(String[] args) { SpringApplication.run(CloudEurekaService1Application.class, args); } }
@EnableDiscoveryClient能激活Eureka中的DiscoveryClient实现,才能实现Controller中对服务信息的输出。
2.4创建计算服务API:
@RestController public class CalculateWeb { private final Logger logger = Logger.getLogger(getClass()); @Autowired private DiscoveryClient client; @RequestMapping("add") public String add(@RequestParam Integer a, @RequestParam Integer b) { ServiceInstance instance = client.getLocalServiceInstance(); Integer r = a + b; logger.info("/add, host:" + instance.getHost() + ", service_id:" + instance.getServiceId() + ", result:" + r); return r.toString(); } }
3 创建服务消费者
3.1创建服务cloud_eureka_ribbon 项目,pom配置如下:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency>
其它通用配置请查看前言通用配置
3.2:application.properties配置:
spring.application.name=ribbon-consumer
server.port=10006
eureka.client.serviceUrl.defaultZone=http://localhost:10003/eureka/
3.3:创建主启动类:
@SpringBootApplication @EnableDiscoveryClient public class CloudEurekaRibbonApplication { @Bean @LoadBalanced RestTemplate restTemplate() { return new RestTemplate(); } publ aa22 ic static void main(String[] args) { SpringApplication.run(CloudEurekaRibbonApplication.class, args); } }
3.4创建计算API,调用服务提供者对外暴露接口:
@RestController public class ConsumerController { @Autowired RestTemplate restTemplate; @RequestMapping(value = "/add", method = RequestMethod.GET) public String add() { return restTemplate.getForEntity("http://COMPUTE-SERVICE/add?a=10&b=20", String.class).getBody(); } }
4:主要工作都已完成。然后依次启动服务注册中心,服务提供者,服务消费者。
访问:http://localhost:10003 可以看到服务已经被注册。
访问:http://localhost:10006/add 返回30,同时控制台将打印出调用日志。
相关文章推荐
- Spring Cloud构建微服务架构:服务注册与发现(Eureka、Consul)【Dalston版】
- Spring Cloud构建微服务架构(一)服务注册与发现
- Spring Cloud构建微服务架构:Consul服务注册与发现
- 【微服务架构】SpringCloud之Eureka(服务注册和服务发现基础篇)(二)
- Spring Cloud构建微服务架构(一)服务注册与发现
- 【微服务架构】SpringCloud之Eureka(服务注册和服务发现基础篇)(二)
- SpringCloud学习笔记001-SpringCloud_001_SpringCloud简介_单体架构_微服务架构_服务注册与发现_微服务调用关系
- Spring Cloud构建微服务架构服务注册与发现
- Spring Cloud构建微服务架构服务注册与发现
- Spring Cloud构建微服务架构:服务注册与发现(Eureka、Consul)【Dalston版】
- Spring Cloud构建微服务架构(一)服务注册与发现
- Spring Cloud微服务架构—服务注册与发现
- Spring Cloud构建微服务架构:服务注册与发现(Eureka、Consul)【Dalston版】
- SpringCloud构建微服务入门架构(二)服务注册与发现Eureka集群搭建
- SpringCloud微服务架构搭建(一):注册与发现
- Spring Cloud构建微服务架构(一)服务注册与发现
- Spring Cloud搭建微服务架构----服务注册与发现
- Spring Cloud构建微服务架构(一)服务注册与发现
- Spring Cloud构建微服务架构(一)服务注册与发现
- Spring Cloud构建微服务架构:服务注册与发现(Eureka、Consul)【Dalston版】