Spring Cloud学习:01服务注册及发现(Eureka)
2017-09-06 00:00
351 查看
摘要: 服务发现模块:Eureka
Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
对于服务注册和发现会用到Spring Cloud Netflix,该项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的Netflix OSS整合。通过一些简单的注解,开发者就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix),智能路有(Zuul),客户端负载均衡(Ribbon)等。
先来学习下它的核心模块服务发现模块:Eureka,尝试搭建Eureka Server(服务注册中心)及Eureka Client(服务提供方)。
1.2 工程右键创建Module,选择Spring Initializr。
选择Cloud Discovery->Eureka Server,一直下一步就可以了。
创建完成后的pom.xml:
1.3 使用@EnableEurekaServer注解启用服务注册中心。
1.4 同时还必须添加Eureka Server的配置信息,这里可以参考Spring Cloud参考文档中的配置。
Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
对于服务注册和发现会用到Spring Cloud Netflix,该项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的Netflix OSS整合。通过一些简单的注解,开发者就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix),智能路有(Zuul),客户端负载均衡(Ribbon)等。
先来学习下它的核心模块服务发现模块:Eureka,尝试搭建Eureka Server(服务注册中心)及Eureka Client(服务提供方)。
1.创建服务注册中心(Eureka Server)
1.1 首先创建一个空的maven工程。1.2 工程右键创建Module,选择Spring Initializr。
选择Cloud Discovery->Eureka Server,一直下一步就可以了。
创建完成后的pom.xml:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.laravelshao.springcloud</groupId> <artifactId>eureka-server</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>eureka-server</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Dalston.SR3</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
1.3 使用@EnableEurekaServer注解启用服务注册中心。
@EnableEurekaServer @SpringBootApplication public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
1.4 同时还必须添加Eureka Server的配置信息,这里可以参考Spring Cloud参考文档中的配置。
server: port: 8761 # eureka默认端口:8761 eureka: instance: hostname: localhost client: register-with-eureka: false # 是否注册到eureka fetch-registry: false # 是否从eureka获取注册信息 serviceUrl: # eureka服务器地址(注意:地址最后面的 /eureka/ 是固定值) defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/[/code] 1.5 访问Eureka Server,还没有发现服务,因为还没注册服务。2 创建服务提供方(Eureka Client)
2.1 创建服务提供方类似创建Server,选择Spring Initializr->Cloud Discovery->Eureka Discovery。
创建之后pom.xml如下:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.laravelshao.springcloud</groupId> <artifactId>one-service</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>one-service</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Dalston.SR3</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
2.2 使用@EnableEurekaClient注解表明是一个Eureka Client。@EnableEurekaClient @SpringBootApplication public class OneServiceApplication { public static void main(String[] args) { SpringApplication.run(OneServiceApplication.class, args); } }
2.3 添加Eureka Client配置信息。server: port: 8762 eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ spring: application: name: one-service #指明应用名称(服务与服务相互调用根据name属性)
2.4 启动工程,打开注册服务中心,发现已经存在一个服务。
可以使用浏览器访问 http://localhost:8762/one,返回测试信息。
本文源码下载地址:
https://github.com/laravelshao/spring-cloud-learning/tree/master/setion01-eureka
相关文章推荐
- Spring Cloud学习---服务注册与发现(Eureka)
- Spring Cloud(一)服务的注册与发现(Eureka)
- 从0开始学习SpringCould(9)--Eureka 服务注册发现
- Spring Cloud 服务注册发现服务器 Eureka
- [spring cloud学习3]spring cloud服务注册与发现
- SpringCloud学习教程一( 服务的注册与发现 Eureka)
- springCloud学习01之eureka服务发现-提供者-消费者ribbon/feign-负载均衡
- Spring Cloud-Eureka注册发现高可用(学习实践)
- Spring Cloud 服务的注册与发现(Eureka)
- springcloud学习笔记一:eureka服务注册与发现
- SpringCloud | Docker 学习系列 | Kubernetes 学习 将SpringCloud Eureka 服务注册与发现部署到docker中并放入到Kubernetes中管理
- eclipse springcloud服务发现服务注册(Eureka) 学习日志
- Spring Cloud架构教程 (九)服务注册与发现(Eureka、Consul)
- [Spring Cloud-01] eureka server 服务注册与发现
- 服务注册与发现-spring cloud之eureka
- Spring Cloud(一)服务的注册与发现(Eureka)
- Spring Cloud 服务注册与发现 [ eureka ]
- Spring Cloud学习-服务注册与发现
- Spring Cloud学习--服务发现(Eureka)
- 干货实操:微服务Spring Cloud 系列(二) Eureka服务发现与服务注册(strand alone)