Spring-Cloud系列第2篇:spring-cloud-eureka
来源:互联网 发布:淘宝退货率在哪里查 编辑:程序博客网 时间:2024/06/04 19:53
自学spring-cloud系列,越来越感觉spring-cloud很强大!
主要分为以下几篇:
- spring-cloud-config: 分布式配置管理
- spring-cloud-eureka: 服务注册与发现
- spring-cloud-eureka-consumer: 远程服务调用和及其负载均衡
- spring-cloud-Hystrix: 熔断器保证服务高可用
- spring-cloud-config-eureka-ribbon: 分布式配置管理的高可用
- spring-cloud-bus: 配置信息的实时更新
- spring-cloud-zuul: 网关基础服务
介绍
spring-cloud-eureka,被动式的服务发现,统一监控和管理你的服务列表。
什么是服务发现?
服务发现就像聊天室一个,每个用户来的时候去服务器上注册,这样他的好友们就能看到你,你同时也将获取好友的上线列表. 在微服务中,服务就相当于聊天室的用户,而服务注册中心就像聊天室服务器一样,目前服务发现的解决方案有Eureka,Consul,Etcd,Zookeeper,SmartStack,等等.
如何使用
- 创建server端
创建client端
1. 创建server端
1.1 单机版
pom.xml:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId></dependency>
当然了,我已经在全局加入了一些其他配置文件,因为我使用了模块式的开发,所以这里很简单。
配置文件:
server: port: 8761spring: application: name: eureka-servereureka: instance: lease-expiration-duration-in-seconds: 6 lease-renewal-interval-in-seconds: 2 client: service-url: defaultZone: http://localhost:${server.port}/eureka/
一般端口都是8761,可以随意设置。
开发的时候,一般要设置以下两点
lease-expiration-duration-in-seconds
: 6 意思是6秒不发送心跳检查,就删除该实例,默认90秒
lease-renewal-interval-in-seconds
: 2 心跳检查的时间,默认30秒
这里报一个 bug
:我设置6秒还是不管用,依然是90秒才能剔除。可能是我时间设置的太短吗?大家可以留言告诉我为什么。
启动:
@SpringBootApplication@EnableConfigServerpublic class SpringCloudConfigServerApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudConfigServerApplication.class, args); }}
在启动文件里,加入这样一句话就好啦。
1.2 多节点版本
在系统的hosts里写入:
127.0.0.1 peer1127.0.0.1 peer2
节点1配置文件 application-peer1.yml
:
server: port: 8761spring: application: name: eureka-servereureka: instance: hostname: peer1# lease-expiration-duration-in-seconds: 6# lease-renewal-interval-in-seconds: 2 client: service-url: defaultZone: http://peer2:8762/eureka/
节点2配置文件 application-peer2.yml
:
server: port: 8762spring: application: name: eureka-servereureka: instance:# lease-expiration-duration-in-seconds: 6# lease-renewal-interval-in-seconds: 2 hostname: peer2 client: service-url: defaultZone: http://peer1:8761/eureka/
如果有更多个节点,更改端口号即可,并在 defaultZone:
后面用逗号隔开,增加更多的就好了。
启动方法:
采用不同的配置文件启动:
java -jar eureka-server-1.0.0.jar --spring.profiles.active=peer1 java -jar eureka-server-1.0.0.jar --spring.profiles.active=peer2
如果是用IDEA环境下运行,直接新配置一个运行环境就好了,如下图:
然后在 dashboard 里查看,可以看到:
这里有好多坑,只有你踩过了才能发现真理。其中最主要的是不能用一样的hostname,注册时间有点慢和剔除时间有点慢。
2. 创建client端
当然了,也很简单。
pom.xml:
<!--监控--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency><!--服务注册--><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId></dependency>
pom需要监控和服务注册,同样,推荐使用模块化开发,直接在顶层配置这两个,所有的文件都不需要额外配置。
配置文件:
server.port=8083spring.application.name=eureka-client-1eureka.client.service-url.defaultZone= http://peer1:8761/eureka/,http://peer2:8761/eureka/
这里配置也很简单,告诉我在哪里就好了。如果有多个service-url,直接增加就行了,如上所示。
示例源码
所有源码在我的github仓库里,传送门:https://github.com/xjtushilei/spring-cloud-simples.git
支持
如果你喜欢~ 给个星
- Spring-Cloud系列第2篇:spring-cloud-eureka
- Spring-Cloud系列第3篇:spring-cloud-eureka-consumer
- spring-cloud系列-Eureka
- Spring-Cloud系列第5篇:spring-cloud-config-eureka-ribbon
- spring cloud放弃系列之--2-eureka
- Spring-Cloud 系列第 1 篇:spring-cloud-config
- Spring-Cloud系列第4篇:spring-cloud-Hystrix
- Spring-Cloud系列第6篇:spring-cloud-bus
- Spring-Cloud系列第7篇:spring-cloud-zuul
- spring cloud-eureka
- Spring-cloud Eureka 集群
- spring cloud eureka
- Spring Cloud Eureka
- Spring Cloud Netflix Eureka
- Spring Cloud Eureka详解
- Spring Cloud Eureka
- Spring Cloud Eureka
- spring cloud eureka
- 湖南长沙房卡麻将学习 一,免费下载、环境搭建和编译
- 精通CSS(4.3投影)&黑客与画家(序&书呆子)
- android 模糊查找,并标红关键字实现
- Can't start Git:git.exe
- 判断是Android/IOS/微信或者其他浏览器
- Spring-Cloud系列第2篇:spring-cloud-eureka
- 1068. 万绿丛中一点红(20) PAT
- 数组注意事项
- 信息增益,信息增益率,Gini
- bzoj 2081 [Poi2010]Beads
- 记负均正II
- Spring-Cloud 系列第 1 篇:spring-cloud-config
- Spring Boot中的缓存支持(一)注解配置与EhCache使用
- IE独有语法