`

Spring cloud eureka 简单例子

 
阅读更多

工作流程:

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

 

在这个源码的例子中,启动了两个服务注册中心,构成一个注册中心集群。然后启动两个服务提供者,分别注册到不同的服务注册中心。服务消费者从注册中心拿到提供者的列表,然后分别调用(客户端负载均衡)服务提供者的服务。

 

  • 大小: 13.8 KB
分享到:
评论

相关推荐

    spring cloud eureka(免费下载)

    Spring Cloud Eureka是Spring Cloud框架中的一个核心组件,主要用于实现微服务之间的服务发现和服务治理。在微服务架构中,每个服务可能都会独立部署和扩展,Eureka作为一个服务注册中心,帮助各个服务实例进行注册...

    springcloud eureka服务注册中心 最新版本2.x.x

    SpringCloud Eureka是微服务架构中的关键组件,它作为一个服务注册与发现的工具,使得服务之间的调用变得简单。在最新版本2.x.x中,Eureka提供了更稳定、高效的特性来支持大规模分布式系统的构建。 首先,让我们...

    Spring Cloud Eureka Server

    Spring Cloud Eureka Server是Spring Cloud框架中的一个关键组件,它主要负责服务的注册与发现,是微服务架构中实现服务治理的重要工具。Eureka Server作为服务注册中心,为其他微服务提供服务注册和发现的能力,...

    Spring Cloud Eureka + Spring Cloud Gateway + Spring Cloud Zipkin

    项目中包含的SpringCloud中文文档将为开发者提供详细的指导,帮助他们理解和使用这些组件。文档通常会涵盖安装配置、基本使用、高级特性以及最佳实践等内容,是学习和实施微服务架构的重要参考资料。 总之,Spring ...

    spring cloud eureka示例代码

    在本文中,我们将深入探讨Spring Cloud Eureka,这是一个在分布式系统中实现服务发现的重要组件。通过结合提供的"spring cloud eureka示例代码",我们可以更好地理解如何在实践中使用Eureka。首先,让我们来了解一下...

    Spring Cloud eureka服务注册DEMO

    Spring Cloud提供了Ribbon和Feign这两个客户端负载均衡器,它们与Eureka结合使用,可以自动选择服务实例进行请求。Ribbon是低级库,适用于自定义客户端,而Feign是基于Ribbon的声明式HTTP客户端,使得服务调用更加...

    SpringCloud Eureka集群项目

    本项目是一个SpringCloud Eureka集群的示例,旨在帮助开发者了解如何设置和运行一个包含双节点的Eureka集群,以实现高可用的服务注册中心。 首先,我们来理解Eureka的基本工作原理。Eureka服务器作为服务注册中心,...

    springcloud Eureka源码解读

    SpringCloud Eureka是Spring Cloud生态系统中的一个关键组件,主要用于实现服务发现。Eureka是一个基于REST的服务,用于定位运行在分布式系统中的服务,以达到高可用和容错的目的。本篇文章将深入Eureka的源码,帮助...

    Spring Cloud Eureka源码分析

    《Spring Cloud Eureka源码分析》 Spring Cloud Eureka是Netflix公司开源的一个服务发现组件,它是基于REST的服务,用于在分布式系统中定位服务,以实现负载均衡和中间层服务器的故障转移。Eureka的设计目标是提供...

    springcloud Eureka源码解读.docx

    ### Spring Cloud Eureka源码解析 #### 一、Eureka客户端源码解析 Spring Cloud Eureka客户端主要通过`org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration`类来完成大部分的初始化工作,...

    springcloud-eureka.zip

    Spring Cloud Eureka是Spring Cloud框架中的一个组件,主要用于实现服务发现功能。Eureka是一个基于REST的服务,用于定位服务,使得分布式系统中的应用能发现彼此并进行通信。在微服务架构中,Eureka作为服务注册与...

    springcloud-eureka-server.zip

    《SpringCloud Eureka Server深度解析与实践指南》 在分布式微服务架构中,服务治理扮演着至关重要的角色,而SpringCloud Eureka Server正是这样一款专为解决服务注册与发现问题而设计的组件。本文将围绕"spring...

    spring cloud eureka微服务之——服务注册发现、服务消费者,服务提供者简单实例

    通过这个简单的实例,你可以了解到Spring Cloud Eureka在微服务架构中的核心功能,并能动手实践,加深对服务注册发现和服务消费的理解。对于初学者来说,这是一个很好的起点,有助于进一步探索Spring Cloud的其他...

    springcloud注册中心Eureka集群示例代码.zip

    在这个示例中,我们有 `springcloud-eureka` 和 `springcloud-eureka2` 两个 Eureka 服务器实例,它们共同构成了 Eureka 集群。这样做的目的是提高服务注册中心的高可用性,避免单点故障。配置时,每个 Eureka ...

    spring cloud eureka 注册中心客户端

    Spring Cloud Eureka是Netflix开发的服务发现组件,它在微服务架构中扮演着核心角色,用于管理服务实例的注册与发现。Eureka客户端是Eureka生态系统的一部分,它允许微服务应用注册到Eureka服务器并获取其他服务的...

    spring cloud eureka

    **CloudZuul** 是Spring Cloud中的API网关组件,它可以与Eureka结合使用,通过路由规则将请求转发到相应的微服务实例,同时提供过滤器功能,用于身份验证、限流、熔断等。 在实际开发中,为了构建高可用和弹性的...

    spring cloud eureka zuul ribbon hystrix feign config 示例

    在给定的标题和描述中,我们看到了几个关键组件:Eureka、Zuul、Ribbon、Hystrix 和 Feign,这些都是Spring Cloud生态中的重要组成部分。下面将详细阐述这些组件及其在实际应用中的作用。 1. **Eureka**:它是...

    springcloud+注册中心eureka+配置中心demo

    在SpringCloud框架中,Eureka是作为服务发现和注册中心的核心组件,而配置中心则用于集中管理和分发应用的配置,使得微服务架构中的各个服务能够动态地获取和更新配置。下面将详细介绍这两个核心概念以及如何在一个...

    springcloud eureka 服务注册中心

    **SpringCloud Eureka 服务注册中心** 在微服务架构中,服务发现是核心组件之一,它使得服务之间能够互相找到并进行通信。Spring Cloud Eureka 就是这样的一个服务注册与发现工具,它是 Netflix 提供的开源项目,是...

    spring cloud eureka demo菜鸟入门

    通常,我们会创建一个简单的 Spring Boot 应用来启动 Eureka Server,并配置相应的启动类和配置文件。 2. **cloudservice1** 和 **cloudservice2**: 这两个模块代表了不同的服务提供者。每个服务提供者都是一个独立...

Global site tag (gtag.js) - Google Analytics