spring cloud Eureka是基于Netflix Eureka服务发现注册产品的二次封装,它提供了服务注册功能(Service Registry)和服务发现功能(Service Discovery)。它是spring cloud中最核心的组件。

一、Eureka的服务注册

  1.注册中心Eurek server

    注册中心Eurek server搭建起来非常简单,

      1.引入maven:spring-cloud-starter,spring-cloud-starter-eureka-server

      2.在启动类上添加注解:@EnableEurekaServer,表示这是一个服务注册中心

      3.编写application配置文件信息

    需要注意的是:

      a.从@EnableEurekaServer注解的源码中可以看出,EnableEurekaServer本身也是个客户端,所以需要将他自己注册或者在application文件上添加配置:register-with-eureka:false,表示自己不注册

      b.Eurek server有自我保护功能,这个功能的机制是:宁可信其有,不可信其无。意思是:当一个服务注册后,如果这个服务被删除或者服务名字修改后,注册中心不会立即删除这个服务,他会根据这个服务离线的时间来判断,是否是一个无效服务。一般来说推荐把这个功能打开,如果想关掉可以在application文件上添加:enable-self-preservation: false

  Eurek server的创建本身不复杂,只是application文件的配置需要注意。

server:
port: 8761 eureka:
instance:
hostname: localhost
server:
enable-self-preservation: false # 关闭自我保护模式
eviction-interval-timer-in-ms: 5000 # 续期时间,即扫描失效服务的间隔时间(缺省为60*1000ms)
client:
register-with-eureka: false #自己不用注册
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

  2.服务中心的集群

    我们知道在任何的分布式架构中,不管是AP还是CP架构都必须满足P,所谓的P是指即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。简单的来说就是当某个服务器宕机后,任然有其他服务器能够使用。所以Eurek server为我们提供了一套集群方案:将两个服务中心互相注册。

    服务注册中的相互注册非常简单,就和client注册一样,在eureka.client.serviceUrl.defaultZone中配置需要集群的注册中心地址就行,用逗号隔开表示可以多个集群

    

---
spring:
application:
name: spring-cloud-eureka
profiles: peer1
server:
port: 8000
eureka:
instance:
hostname: peer1
client:
serviceUrl:
defaultZone: http://peer2:8001/eureka/,http://peer3:8002/eureka/
---
spring:
application:
name: spring-cloud-eureka
profiles: peer2
server:
port: 8001
eureka:
instance:
hostname: peer2
client:
serviceUrl:
defaultZone: http://peer1:8000/eureka/,http://peer3:8002/eureka/
---
spring:
application:
name: spring-cloud-eureka
profiles: peer3
server:
port: 8002
eureka:
instance:
hostname: peer3
client:
serviceUrl:
defaultZone: http://peer1:8000/eureka/,http://peer2:8001/eureka/

  3.服务的注册Eurek client

    与Eurek server一样,服务注册不需要太多配置:

    1.引入maven:spring-cloud-starter-eureka

    2.启动类中添加:@EnableDiscoveryClient,表示这是一个客户端

    3.编写application配置文件信息     

spring.application.name=spring-cloud-producer
server.port=9000
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/

    

    

最新文章

  1. OPENGGL深度测试
  2. Qt ini配置文件读写
  3. SmartDoc(YUIDoc) 注释编写
  4. 使用git提交github代码
  5. IOS之表视图添加索引
  6. [转载+原创]Emgu CV on C# (二) —— Emgu CV on 灰度化
  7. wave文件(*.wav)格式、PCM数据格式
  8. asp.net字符串分割函数用法
  9. struts2笔记09-动态方法调用
  10. 网络1712--c语言字符数组作业总结..
  11. 认识JQuery,JQuery的优势、语法、多库冲突、JS原生对象和JQuery对象之间相互转换和DOM操作,常用的方法
  12. HBase数据字典
  13. mybatis:SQL拦截器
  14. Apache服务器中设置端口映射和反向代理的方法
  15. useradd和groupadd(Linux创建用户\用户组\设置\分配用户权限\多用户远程登录权限)的使用
  16. 潭州课堂25班:Ph201805201 django 项目 第二十二课 文章主页 新闻列表页面滚动加载,轮播图后台实现 (课堂笔记)
  17. PHP单例模式 demo
  18. amazeui+canvas绘制二维码
  19. HTTP请求header信息讲解
  20. 微信小程序如何玩转分销

热门文章

  1. with上下文管理协议
  2. luogu P1047 校门外的树 x
  3. window.frames[iframe].document 在ie可以用,在360、火狐中都不兼容?
  4. 高级Javascript代码
  5. flask中获取request的参数的方法
  6. videojs实践--兼容ie7,8
  7. R python在无图形用户界面时保存图片
  8. TimeInOfficePresent
  9. (\w+)\s*, \s*(\w+)
  10. elasticsearch安装分词插件