Spring Cloud Netflix是Spring Cloud集成Netflix开源分布式组件所给出的一套微服务方案。包括注册中心(Eureka),Hystrix(熔断器)、Zuul(网关路由)、Archaius(配置管理)、Ribbon(负载均衡)、Turbine(监控)、Feign(声明式调用)等组件。本篇我们介绍Spring Cloud Netflix组件中的Eureka组件。

Eureka是Netflix开源的服务发现组件,本身是一个基于REST的服务。它包含Server和Client两部分。Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中或者调用其提供的API直观的看到。简而言之,Eureka就是用于提供服务注册服务,并且维护注册到Eureka Server的服务列表,比如:服务下线,上线,故障等。Eureka Client则可以从Eureka Server中获取服务列表,并且在本地维护一个服务列表,并且可以将服务注册到注册中心,由注册中心维护。

Eureka Server 案例

使用Spring Cloud引入Eureka Server非常简单,因为Spring Cloud已经做了集成,并且提供了很多starter包。只需要引入一个group ID为org.springframework.cloud并且artifact ID为spring-cloud-starter-netflix-eureka-server的starter即可:

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId><version>2.1.0.RELEASE</version>
</dependency>

要编写Eureka Server更为简单,只需要一个简单的Spring Boot应用,然后再主类上添加@EnableEurekaServer注解即可,如下代码我们完成了最简单的Eureka Server注册中心服务器。

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

一般我们需要为Eureka Server配置端口与路径,端口为Eureka Server的端口,而路径则是其他服务需要通过该URL注册到服务中心,因为Eureka Server为使用freemaker我们提供了网页面板,因此我们也需要在配置中配置freemaker。如下为Eureka Server的简单配置:

server:port: 8671
eureka:client:register-with-eureka: falsefetch-registry: false
spring:freemarker:template-loader-path: classpath:/templates/prefer-file-system-access: false

上面的配置中,register-with-eureka表示是否将该服务注册到Eureka服务,fetch-register表示是否从Eureka服务器拉取服务列表。因为Eureka Server提供了面板可以查看注册到Eureka中的实例,我们在浏览器输入http://127.0.0.1:8671/可以看到实例面板如下:

Eureka Client 案例

在Spring Cloud 中使用Eureka Client非常简单,要在项目中引用Eureka客户端,请使用group ID为org.springframework.cloud和artifact ID为spring-cloud-starter-netflix-eureka-client的starter。

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

当作为客户端的服务注册到Eureka Server时,它提供有关自身的元数据,例如主机、端口、健康指示器URL、主页和其他详细信息。Eureka Server从属于被注册的服务的每个实例接收心跳消息。如果心跳在可配置的时间表上失败,则该失败实例通常会从注册表中删除。以下示例是一个简单的Eureka客户端应用程序:

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

配置与Eureka Server类似我们需要将该服务注册到Eureka Server,因此fetch-register为true,appname为在Eureka Server面板中显示的名字,service-url为注册中心的地址。运行main程序会将该服务注册到注册中心。

server:port: 9090
eureka:instance:appname: eureka-clientclient:fetch-registry: trueregister-with-eureka: trueservice-url:defaultZone: http://localhost:8671/eureka

运行程序之后我们可以在Eureka Server 面板中看到该服务实例的详细信息,如下图红色矩形内的实例:

本篇只是简单的介绍如何将服务注册到Eureka Server,交给Eureka Server管理,后续会详细介绍Eureka Server的配置与原理。

Spring Cloud Netflix 服务注册与发现 — Eureka 入门案例相关推荐

  1. Spring cloud实现服务注册及发现

    为什么80%的码农都做不了架构师?>>>    服务注册与发现对于微服务系统来说非常重要.有了服务发现与注册,你就不需要整天改服务调用的配置文件了,你只需要使用服务的标识符,就可以访 ...

  2. Spring Cloud之服务注册与发现机制

    一.复杂与简单并存 1.背景: 到底是复杂好还是简单好,这是一个没有答案的问题,也是一个哲学问题.见仁见智啦.事物整体肯定是向复杂化方向发展,但是向人们呈现时应尽量简单化.用一句话来说就是:功能复杂化 ...

  3. 用ZooKeeper做为注册中心搭建基于Spring Cloud实现服务注册与发现

    前提: 先安装好ZooKeeper的环境,搭建参考:http://www.cnblogs.com/EasonJim/p/7482961.html 说明: 可以再简单的理解为有两方协作,一个是服务提供这 ...

  4. .NET Core + Spring Cloud:服务注册与发现

    毫无疑问,微服务架构是目前的主流,在微服务架构下,服务治理.负载均衡.服务熔断.配置中心.API网关 等都是需要关注的问题,当然不是非要全部完善后才能进行微服务开发,在很多项目团队中,初期可能会将某个 ...

  5. 【Spring Cloud Alibaba】Spring Cloud Alibaba 服务注册与发现实践

    1. 简介 服务注册与发现是微服务架构体系中最关键的组件之一.如果尝试着用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于服务的动态扩缩容.Nacos Disc ...

  6. 《深入理解 Spring Cloud 与微服务构建》第六章 服务注册和发现 Eureka

    <深入理解 Spring Cloud 与微服务构建>第六章 服务注册和发现 Eureka 文章目录 <深入理解 Spring Cloud 与微服务构建>第六章 服务注册和发现 ...

  7. spring cloud 学习之 服务注册和发现(Eureka)

    一:服务注册和发现(Eureka) 1:采用Eureka作为服务注册和发现组件 2:Eureka 项目中 主要在启动类加上 注解@EnableEurekaServer @SpringBootAppli ...

  8. 微服务之服务注册与发现--Eureka(附代码)

    微服务之服务注册与发现--Eureka(附代码) 该贴为入门贴,看完可快速知道服务注册与发现是什么?怎么用?至于深入的内容不在此篇文章所述之内,请自行百度. 内容来自:https://blog.csd ...

  9. 如何优化Spring Cloud微服务注册中心架构?

    作者: 石杉的架构笔记 1.再回顾:什么是服务注册中心? 先回顾一下什么叫做服务注册中心? 顾名思义,假设你有一个分布式系统,里面包含了多个服务,部署在不同的机器上,然后这些不同机器上的服务之间要互相 ...

  10. Spring Cloud第一篇:服务注册与发现Eureka

    一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运 ...

最新文章

  1. 设置CodeRush Xpress的线条颜色
  2. 2017年计算机应用题库,2017年自学考试管理系统中计算机应用题库精选试题6
  3. 常考数据结构与算法:排序
  4. pythoncharm快捷键_Pycharm最常用的快捷键及使用技巧
  5. mysql测试表格的年龄的语句是_MySQL查询语句练习题
  6. pydebugger
  7. (C语言版)链表(二)——实现单向循环链表创建、插入、删除、释放内存等简单操作
  8. Using JSON for data transfer
  9. jdbc版本低MySQL版本高_Mysql JDBC驱动版本与Mysql版本的对应问题解决
  10. 少走弯路:Mac+python+opencv
  11. Ubuntu 默认 root 密码修改
  12. 计算机标准化管理制度,计算机中心标准化管理.doc
  13. 算法学习:最小生成树
  14. 多开分身苹果版_【教程】苹果手机居然可以微信分身?全套教程,进来领取
  15. springboot 对接海康设备
  16. systrace学习笔记
  17. 大学四年的最后一篇日志,致敬2012-2016那些似水流年
  18. java-画出二维码
  19. Newline —— CRLF、LF、CR回车和换行
  20. C语言中数据类型的相关定义与用法

热门文章

  1. 【转】上大数学系博士点
  2. Unexpected EOF read on the socket
  3. 城镇化进程中的粮食生产问题
  4. . NET多线程编程
  5. 查询-非等值连接,外连接,子查询
  6. 计算机强制关机代码bat,自制bat文件搞定定时关机、重启、强制关机、注销等
  7. iPad mini 6 评测:多功能升级,一手掌握的极佳手感,适合娱乐休闲
  8. 怎么修改html后缀名,在win7系统下如何修改文件后缀名?win7修改文件后缀名html方法...
  9. 从小学4年级的数学课开始解释线性回归
  10. JAVA费罗切后拨只能调节5档,越野怪兽JAVA摆渡人(ANIMA)山地车