工作流程:
1. 服务提供者注册服务到服务注册中心。
2. 服务消费者到注册中心获取提供者列表。
3. 服务消费者使用提供者提供的服务。
首先新建maven项目,添加dependency 在 pom.xml
<parent> <artifactId>spring-boot-starter-parent</artifactId> <groupId>org.springframework.boot</groupId> <version>1.5.2.RELEASE</version> <relativePath /> </parent> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> <version>1.3.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> <version>1.3.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency> </dependencies>
在这个简单的例子中,注册中心,服务提供者和服务消费者,在一个项目中,所以这里通过profile 来区分不同的设置。
启动Eureka 注册服务器
@SpringBootApplication @EnableEurekaServer public class EurekaServerApplication { public static void main(String[] args) { System.setProperty("spring.profiles.active", "server"); SpringApplication.run(EurekaServerApplication.class, args); } }
对应的application-server.properties
spring.application.name=eurekaserver server.port=1001 eureka.instance.hostname=localhost eureka.client.fetch-registry=false eureka.client.register-with-eureka=false eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
访问 http://localhost:1001/ 可以查看 Eureka 注册中心的运行状态。
启动 Service provider:
@SpringBootApplication @EnableDiscoveryClient public class EurekaApplication { public static void main(String[] args) { System.setProperty("spring.profiles.active", "provider"); SpringApplication.run(EurekaApplication.class, args); } }
另外在Service Provider 上提供一个REST的服务:
@RestController public class HelloController { @RequestMapping("/hello") public String index() { System.out.println("index is called"); return "Hello World"; } }
Service provider 对应的application-provider.properties
spring.application.name=hello server.port=1201 eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
这样会注册自己的服务到Eureka 的注册中心。
最后启动服务的消费者:
@EnableDiscoveryClient @SpringBootApplication public class ConsumerApplication { @Bean @LoadBalanced public RestTemplate restTemplate () { return new RestTemplate (); } public static void main(String[] args) { System.setProperty("spring.profiles.active", "consumer"); SpringApplication.run(ConsumerApplication.class, args); } }
以及服务消费者提供的一个REST Controller,他会调用Provider 的REST 服务。
@RestController public class ConsumerCotroller { @Autowired private RestTemplate template; @RequestMapping("/consumer") public String index() { return template.getForEntity("http://HELLO/hello", String.class).getBody(); } }
服务消费者对应的 application-consumer.properties
server.port=9000 spring.application.name=hello-consumer eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
整个project的结构如图:
访问 http://localhost:9000/consumer 会看到 Hello World。
源码可以从这里下载 https://github.com/21ca/eureka-demo。
在这个源码的例子中,启动了两个服务注册中心,构成一个注册中心集群。然后启动两个服务提供者,分别注册到不同的服务注册中心。服务消费者从注册中心拿到提供者的列表,然后分别调用(客户端负载均衡)服务提供者的服务。
相关推荐
Spring Cloud Eureka是Spring Cloud框架中的一个核心组件,主要用于实现微服务之间的服务发现和服务治理。在微服务架构中,每个服务可能都会独立部署和扩展,Eureka作为一个服务注册中心,帮助各个服务实例进行注册...
SpringCloud Eureka是微服务架构中的关键组件,它作为一个服务注册与发现的工具,使得服务之间的调用变得简单。在最新版本2.x.x中,Eureka提供了更稳定、高效的特性来支持大规模分布式系统的构建。 首先,让我们...
Spring Cloud Eureka Server是Spring Cloud框架中的一个关键组件,它主要负责服务的注册与发现,是微服务架构中实现服务治理的重要工具。Eureka Server作为服务注册中心,为其他微服务提供服务注册和发现的能力,...
项目中包含的SpringCloud中文文档将为开发者提供详细的指导,帮助他们理解和使用这些组件。文档通常会涵盖安装配置、基本使用、高级特性以及最佳实践等内容,是学习和实施微服务架构的重要参考资料。 总之,Spring ...
在本文中,我们将深入探讨Spring Cloud Eureka,这是一个在分布式系统中实现服务发现的重要组件。通过结合提供的"spring cloud eureka示例代码",我们可以更好地理解如何在实践中使用Eureka。首先,让我们来了解一下...
Spring Cloud提供了Ribbon和Feign这两个客户端负载均衡器,它们与Eureka结合使用,可以自动选择服务实例进行请求。Ribbon是低级库,适用于自定义客户端,而Feign是基于Ribbon的声明式HTTP客户端,使得服务调用更加...
本项目是一个SpringCloud Eureka集群的示例,旨在帮助开发者了解如何设置和运行一个包含双节点的Eureka集群,以实现高可用的服务注册中心。 首先,我们来理解Eureka的基本工作原理。Eureka服务器作为服务注册中心,...
SpringCloud Eureka是Spring Cloud生态系统中的一个关键组件,主要用于实现服务发现。Eureka是一个基于REST的服务,用于定位运行在分布式系统中的服务,以达到高可用和容错的目的。本篇文章将深入Eureka的源码,帮助...
《Spring Cloud Eureka源码分析》 Spring Cloud Eureka是Netflix公司开源的一个服务发现组件,它是基于REST的服务,用于在分布式系统中定位服务,以实现负载均衡和中间层服务器的故障转移。Eureka的设计目标是提供...
### Spring Cloud Eureka源码解析 #### 一、Eureka客户端源码解析 Spring Cloud Eureka客户端主要通过`org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration`类来完成大部分的初始化工作,...
Spring Cloud Eureka是Spring Cloud框架中的一个组件,主要用于实现服务发现功能。Eureka是一个基于REST的服务,用于定位服务,使得分布式系统中的应用能发现彼此并进行通信。在微服务架构中,Eureka作为服务注册与...
《SpringCloud Eureka Server深度解析与实践指南》 在分布式微服务架构中,服务治理扮演着至关重要的角色,而SpringCloud Eureka Server正是这样一款专为解决服务注册与发现问题而设计的组件。本文将围绕"spring...
通过这个简单的实例,你可以了解到Spring Cloud Eureka在微服务架构中的核心功能,并能动手实践,加深对服务注册发现和服务消费的理解。对于初学者来说,这是一个很好的起点,有助于进一步探索Spring Cloud的其他...
在这个示例中,我们有 `springcloud-eureka` 和 `springcloud-eureka2` 两个 Eureka 服务器实例,它们共同构成了 Eureka 集群。这样做的目的是提高服务注册中心的高可用性,避免单点故障。配置时,每个 Eureka ...
Spring Cloud Eureka是Netflix开发的服务发现组件,它在微服务架构中扮演着核心角色,用于管理服务实例的注册与发现。Eureka客户端是Eureka生态系统的一部分,它允许微服务应用注册到Eureka服务器并获取其他服务的...
**CloudZuul** 是Spring Cloud中的API网关组件,它可以与Eureka结合使用,通过路由规则将请求转发到相应的微服务实例,同时提供过滤器功能,用于身份验证、限流、熔断等。 在实际开发中,为了构建高可用和弹性的...
在给定的标题和描述中,我们看到了几个关键组件:Eureka、Zuul、Ribbon、Hystrix 和 Feign,这些都是Spring Cloud生态中的重要组成部分。下面将详细阐述这些组件及其在实际应用中的作用。 1. **Eureka**:它是...
在SpringCloud框架中,Eureka是作为服务发现和注册中心的核心组件,而配置中心则用于集中管理和分发应用的配置,使得微服务架构中的各个服务能够动态地获取和更新配置。下面将详细介绍这两个核心概念以及如何在一个...
**SpringCloud Eureka 服务注册中心** 在微服务架构中,服务发现是核心组件之一,它使得服务之间能够互相找到并进行通信。Spring Cloud Eureka 就是这样的一个服务注册与发现工具,它是 Netflix 提供的开源项目,是...
通常,我们会创建一个简单的 Spring Boot 应用来启动 Eureka Server,并配置相应的启动类和配置文件。 2. **cloudservice1** 和 **cloudservice2**: 这两个模块代表了不同的服务提供者。每个服务提供者都是一个独立...