SpringCloud学习:Eureka、Feign(含示例代码)

一、Spring Cloud Netflix简介
SpringCloud是一个基于SpringBoot实现的云应用开发工具,它为基于JVM的云应用开发中的配置故那里、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了简单的开发方式。
SpringCloud下包含了多个工程,其中的Spring Cloud Netflix提供了一系列搭建微服务基础架构的功能组件。
Netflix的部分组件及功能特性如下:
Eureka(服务注册与发现框架):一个基于REST风格的服务组件,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移
Hystrix(服务容错组件):容错管理工具,旨在通过控制服务和第三方库的节点,从而对延迟和故障提供强大的容村能力
Zuul(服务网关):边缘服务工具,提供动态路由、监控、贪心、安全等边缘服务
Ribbon(客户端负载均衡器):提供客户端负载均衡算法,将Netflix的中间层服务连接起来
Feign(声明式HTTP客户端):可以创建声明式、模板化的HTTP客户端,进行微服务调用

二、Eureka(服务注册与发现框架)

1、服务注册与发现
在进行普通架构的应用开发时,如果服务端提供了一个REST API或者Thrift API的服务,客户端为了能完成一次服务请求,需要知道服务实例的网络位置(IP:Port)。传统架构的应用都是运行在物理硬件之上,服务实例的网络位置时相对固定的。
但是在微服务架构之下,一个微服务可能会在某一时刻进行销毁重建,或是伸缩漂移,这样一来服务实例的网络位置就变得不可预知。为了解决这一问题,我们需要在微服务架构中引入了服务注册与发现功能。
服务发现有如下两种模式:
a、客户端服务发现(Client-Side Discovery)

客户端负责决定可用的服务实例的网络地址,以及围绕他们的负载均衡。客户端向服务注册表发送一个请求,服务注册表是一个可用服务实例的数据库。客户端使用一个负载均衡算法,去选择一个可用的服务实例,来响应这个请求。
一个服务实例被启动,他的网络地址会被写到注册表上,当服务实例终止,会从注册表中删除。这个服务实例的注册表通过心跳机制动态刷新。

b、服务端服务发现(Server-Side Discovery)

客户端通过负载均衡器向某个服务提出请求,负载均衡器向服务注册表发出请求,将每个请求转发往可用的服务实例。和客户端发现一样&
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值