前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springcloud之注册中心eureka

springcloud之注册中心eureka

作者头像
一笠风雨任生平
发布2019-09-12 11:56:18
4630
发布2019-09-12 11:56:18
举报
文章被收录于专栏:服务化进程

简介

Spring Cloud是目前用于开发微服务的主流框架之一,我们都知道在微服务架构中最为基础、核心的模块,就是服务注册与发现。

在Spring Cloud里我们可以使用它的Eureka模块来实现服务注册与发现,Spring Cloud Eureka是基于Netflix Eureka做了二次封装,它主要负责完成各个微服务实例的自动化注册和发现功能。

Eureka包含两个组件:Eureka Server和Eureka Client

Eureka Server提供服务注册服务,各个节点启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到

EurekaClient是一个Java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除(默认90秒)

在这里插入图片描述
在这里插入图片描述

构建与部署

eureka server

1、单点部署 如果是idea,可以直接直接new project >> springinitializr >> cloud discovery

在这里插入图片描述
在这里插入图片描述

按着步骤操作,就可以搭建一个单点eureka server

2、集群部署 一般生产环境都是三个或以上节点,集群中的每个节点也是把自己当一个提供者相互注册

在这里插入图片描述
在这里插入图片描述

application.yml配置如下

代码语言:javascript
复制
server:
  port: 8761

spring:
  application:
    name: eureka
  profiles:
    active: dev
  security:
    basic:
      enabled: false # 启用身份认证
    user:
      name: lipeng # 定义用户名
      password: lipeng. # 定义密码

---
spring:
  profiles: prd-1

eureka:
  instance:
    hostname: register1
  client:
    fetch-registry: true
    register-with-eureka: true
    serviceUrl:
      defaultZone: http://lipeng:lipeng.@200.200.0.166:8761/eureka/,http://lipeng:lipeng.@200.200.0.167:8761/eureka/,http://lipeng:lipeng.@200.200.0.171:8761/eureka/
  instance:
    prefer-ip-address: true
    ip-address: 200.200.0.166
  server:  #配置属性,但由于 Eureka 自我保护模式以及心跳周期长的原因,经常会遇到 Eureka Server 不剔除已关停的节点的问题
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 5000

---
spring:
  profiles: prd-2

eureka:
  instance:
    hostname: register2
  client:
    fetch-registry: true
    register-with-eureka: true
    serviceUrl:
      defaultZone: http://lipeng:lipeng.@200.200.0.166:8761/eureka/,http://lipeng:lipeng.@200.200.0.167:8761/eureka/,http://lipeng:lipeng.@200.200.0.171:8761/eureka/
  instance:
    prefer-ip-address: true
    ip-address: 200.200.0.171
  server:  #配置属性,但由于 Eureka 自我保护模式以及心跳周期长的原因,经常会遇到 Eureka Server 不剔除已关停的节点的问题
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 5000

---
spring:
  profiles: prd-3

eureka:
  instance:
    hostname: register3
  client:
    fetch-registry: true
    register-with-eureka: true
    serviceUrl:
      defaultZone: http://lipeng:lipeng.@200.200.0.166:8761/eureka/,http://lipeng:lipeng.@200.200.0.167:8761/eureka/,http://lipeng:lipeng.@200.200.0.171:8761/eureka/
  instance:
    prefer-ip-address: true
    ip-address: 200.200.0.167
  server:  #配置属性,但由于 Eureka 自我保护模式以及心跳周期长的原因,经常会遇到 Eureka Server 不剔除已关停的节点的问题
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 5000

打包后部署时在启动命令中增加 --spring.profile.active=prd-1/prd-2/prd-3 启动后如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这样才算部署成功,如果上面两个节点是在unavailable-replicas中则是没有成功的。

k8s中集成eureka

一般是不建议在k8s中使用eureka,不过有时候如果需要的话,则部署时最好填写域名。设置该变量就行

在这里插入图片描述
在这里插入图片描述
eureka client

这个就比较简单了,网上有很多例子 pom依赖

代码语言:javascript
复制
<!--注册中心-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>

增加注解

在这里插入图片描述
在这里插入图片描述

yml配置

代码语言:javascript
复制
spring:
  profiles: dev
eureka:
  instance:
    prefer-ip-address: true
    lease-renewal-interval-in-seconds: 5
    lease-expiration-duration-in-seconds: 20
    hostname: ${spring.application.name}
  client:
    serviceUrl:
      defaultZone: http://lipeng:lipeng.@200.200.0.166:8761/eureka/,http://lipeng:lipeng.@200.200.0.167:8761/eureka/,http://lipeng:lipeng.@200.200.0.171:8761/eureka/
    registry-fetch-interval-seconds: 10

实际上defaultZone只需要配置一个节点,其他节点也会自动同步。 启动服务就可以看到

在这里插入图片描述
在这里插入图片描述

详细代码见:https://gitee.com/lpxs/lp-springcloud.git,上面的是配置中心的部署demo。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 构建与部署
    • eureka server
      • k8s中集成eureka
    • eureka client
    相关产品与服务
    负载均衡
    负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档