一、Eureka简介

  spring Cloud Netflix技术栈中,Eureka作为服务注册中心对整个微服务架构起着最核心的整合作用。有了服务发现与注册,你就不需要整天改服务调用的配置文件了,你只需要使用服务的标识符,就可以访问到服务。他的功能类似于dubbo的注册中心(register)。

  服务发现:服务发现是微服务基础架构的关键原则之一。试图着手配置每个客户端或某种格式的约定可以说是非常困难的和非常脆弱的。Eureka是Netflix服务发现的一种服务和客户端。这种服务是可以被高可用性配置的和部署,并且在注册的服务当中,每个服务的状态可以互相复制给彼此。

  服务注册:当一个客户端注册到Eureka,它提供关于自己的元数据(诸如主机和端口,健康指标URL,首页等)Eureka通过一个服务从各个实例接收心跳信息。如果心跳接收失败超过配置的时间,实例将会正常从注册里面移除。

  Eureka服务流程图:

Eureka的流程说明:

1、服务提供者会向Eureka Server做Register(服务注册)、Renew(服务续约)、Cancel(服务下线)等操作。

2、Eureka Server之间会做注册服务的Replicate(复制),从而保证状态一致。

3、服务消费者会向Eureka Server获取Registry(注册服务列表),并Make Remote Call(远程调用)消费服务

二、Eureka服务实现

1.创建一个基础的Spring Boot工程,并在pom.xml中引入需要的依赖,如下:

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>

2.在启动类中加入@EnableEurekaServer注解

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main( String[] args ) {
SpringApplication.run(EurekaApplication.class, args);
}
}

  只需要使用@EnableEurekaServer注解就可以让应用变为Eureka服务器,这是因为spring boot封装了Eureka Server,让你可以嵌入到应用中直接使用。至于真正的EurekaServer是Netflix公司的开源项目,也是可以单独下载使用的。

3.添加Eureka相关配置,application.yml中配置如下(也可用properties文件)

server:
port: 8761 eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://localhost:8761/eureka

4.启动项目,访问http://127.0.0.1:8761/ 可以看到如下图说明Eureka服务搭建成功。

三、Eureka注册中心加入权限

1.在pom.xml引入安全权限相关依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>

2.修改application.yml配置文件,添加security相关配置:

security:
basic:
enabled: true
user:
name: user
password: pass
server:
port: 8761 eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://user:pass@localhost:8761/eureka

  配置完成后重新启动服务,继续访问http://127.0.0.1:8761/发现需要输入用户名密码才能进入。

四、将微服务注册到Eureka Service

1.创建一个基础的Spring Boot工程,并在pom.xml中引入需要的依赖,如下:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
  </dependency>

2.在main方法所在的Application类中,添加@EnableEurekaClient注解,此注解只针对Eureka可用;也可以使用@EnableDiscoveryClient注解

@SpringBootApplication
@EnableEurekaClient
public class MovieApplication { public static void main(String[] args) {
SpringApplication.run(MovieApplication.class, args);
}
}

3.修改微服务配置文件,添加Eureka相关配置(这里要注意Eureka注册中心是否加入了权限,我这里是加入了权限)

eureka:
client:
healthcheck:
enabled: true
serviceUrl:
defaultZone: http://user:pass@localhost:8761/eureka

完成以上相关配置后可以启动项目,访问http://127.0.0.1:8761/,发现已经有服务注册到Eureka了。

最新文章

  1. hihoCoder 1425 : What a Beautiful Lake(美丽滴湖)
  2. 使用onclick跳转到其他页面/跳转到指定url
  3. Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]
  4. iOS中的#ifdef DEBUG为什么会在didFinishLaunchingWithOptions之前执行
  5. iOS程序启动的过程及原理
  6. uva-----11292 The Dragon of Loowater
  7. 下拉列表autocomplete各种实现方式比较
  8. 你所不知道的Html5那些事(一)
  9. 关于开发板不能ping通外网IP
  10. android4.0 USB Camera示例(五个辅助)jpg压缩
  11. Windows在结构objective C开发环境
  12. 如何用dumpbin.exe检查编译器生成的托管模块所嵌入的信息
  13. loj6270
  14. urllib 报错 IOError: [Errno socket error] TLS/SSL connection has been closed (EOF) (_ssl.c:590)
  15. RabbitMq入门详解
  16. 【转】网络安全——一图看懂HTTPS建立过程
  17. 备份VMware虚拟磁盘文件 移植到其他虚拟机
  18. 《深入应用C++11:代码优化与工程级应用》开始发售
  19. Autoloading Classes
  20. Learn Rails5.2- Scaffolding and REST,flash.now, flash.keep; Access via JSON

热门文章

  1. php 多种输入参数完整性检查
  2. Qgis 里的Python脚本介绍
  3. JavaSE注释
  4. 【转】优秀的Java程序员必须了解GC的工作原理
  5. win8开发
  6. Web—06-JavaScript
  7. activemq整合springboot使用(个人微信小程序用)
  8. echarts 点击方法总结,点任意一点获取点击数据,举例说明:在多图联动中点击绘制标线
  9. JSP工作流程
  10. git 项目常用