Spring cloud笔记
来源:互联网 发布:首届全球程序员节嘉宾 编辑:程序博客网 时间:2024/06/01 08:05
仅限于学习用途的转载,转载请注明出处http://eumji025.com/article/details/251169
euraka介绍
Eureka是一种基于REST的服务,主要用于AWS云中,用于定位服务,以实现中间层服务器的负载平衡和故障转移。
Netflix,Eureka除了在中层负载平衡中扮演重要角色之外,还被用于以下领域。
- 帮助Netflix Asgard - 一个使云部署更容易的开源服务
- 在出现问题的情况下快速回滚版本,避免重新启动100个可能需要很长时间的实例。
- 在滚动推动时,为避免在发生问题时将新版本传播到所有实例。
- 对于我们的Cassandra部署,为了维护而将实例移出流量。
- 对于我们的memcached缓存服务来识别环中的节点列表。
- 为了携带其他额外的应用程序特定的有关服务的元数据,其他原因
上述为eureka在github中的描述.
Eureka是Netflix服务发现的一种服务和客户端。这种服务是可以被高可用性配置的和部署,并且在注册的服务当中,每个服务的状态可以互相复制给彼此。
一个客户端注册到Eureka,它提供关于自己的元数据(诸如主机和端口,健康指标URL,首页等)Eureka通过一个服务从各个实例接收心跳信息。如果心跳接收失败超过配置的时间,实例将会正常从注册里面移除。
eureka案例
eureka server
首先需要引入eureka相关的依赖
pom.xml
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.3.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.RELEASE</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>
application.yml
在配置文件中,我们需要指明server的端口和server的url
server: port: 8761eureka: client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://localhost:${server.port}/eureka/ server: waitTimeInMsWhenSyncEmpty: 0
SpringCloudDiscoveryEurekaServerApplication.java
@SpringBootApplication@EnableEurekaServerpublic class SpringCloudDiscoveryEurekaServerApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudDiscoveryEurekaServerApplication.class, args); }}
@EnableEurekaServer用来开启euraka的服务,
配置完成后我们允许服务,并在浏览器中访问 http://localhost:8761
通过上图我们可以看到,在只开启server的时候,是没有注册的客户端的,接下来我们开始配置服务端.
eureka client
客户端需要配置一些链接到服务的参数,如主机端口等.
pom.xml
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.3.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.RELEASE</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>
application.yml
指定服务中心的url
eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/
#### SpringCloudDiscoveryEurekaClientApplication.java
@Configuration@EnableAutoConfiguration@EnableEurekaClient@RestControllerpublic class SpringCloudDiscoveryEurekaClientApplication { @RequestMapping("/") public String home() { return "Hello World"; } public static void main(String[] args) { new SpringApplicationBuilder(SpringCloudDiscoveryEurekaClientApplication.class).web(true).run(args); }}
@EnableEurekaClient注解声明这是eureka的客户端.
配置完客户端我们运行客户端,然后刷新eureka server页面,会出现如下结果.已经有一个服务UP了.
结语
eureka服务注册与发现的示例到此结束,更多深入的内容和细节部分需要再细读eureka的官方文档.
与君共勉!!!
参考文档
service-discovery-eureka
案例代码
discovery-eureka-client
discovery-eureka-server
- spring Cloud笔记
- spring cloud学习笔记
- Spring cloud笔记
- Spring cloud笔记
- Spring Cloud笔记
- spring cloud笔记
- spring cloud笔记
- spring cloud笔记
- spring cloud笔记
- Spring Cloud学习笔记
- Spring Cloud 学习笔记
- spring cloud 学习笔记
- Spring Cloud学习笔记
- spring cloud 学习笔记-Eureka
- spring cloud学习笔记-断路器
- Spring Cloud入门demo笔记
- Spring Cloud 笔记实战之 Spring Cloud Config
- Spring Cloud Netflix中文文档翻译笔记
- jsp a标签如何传值,如何接受
- MAC上搭建Jenkins实现Android自动打包
- 静态库,动态库,以及Framework
- Altium Designer 09简易教程(一)
- jfina使用velocity模板引擎
- Spring cloud笔记
- 解决context.lookup报错问题
- mac上定制应用或替身的图标
- ProgressBar进度条
- 成功把pulltorefresh集成进我的studio项目中
- eclipse安装tomcat插件
- Java基础
- ARM汇编基础-存储和加载指令
- Leetcode 2 第一次做 Python