springcloud学习

Spring Cloud
Spring cloud是一个基于Spring Boot实现的服务治理工具包,在微服务架构中用于管理和协调服务的。

为什么需要SpringCloud?

在单体应用架构中:在项目很小的情况下这种单体应用比较简单,但在单体应用架构(项目较大时)存在缺点:

编译难,部署难,测试难;

技术选择难(技术不兼容);

扩展难(单体应用中多个模块的负载不均衡,我们扩容高负载的时候,也把低负载的模块也扩容,极大浪费了资源)

使用微服务架构就可以解决单体项目缺点

MicroService(微服务)架构:微服务就是把一个单体项目,拆分为多个微服务,每个微服务可以独立技术选型,独立开发,独立部署,独立运维.并且多个服务相互协调,相互配合,最终完成用户价值。具有一定优势:

复杂度可控:每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。

独立部署:当某个微服务发生变更时无需编译、部署整个应用。

技术选型灵活:由于每个微服务相对简单,故需要对技术栈进行升级时所面临的风险就较低,甚至完全重构一个微服务也是可行的。

容错:在微服务架构下,故障会被隔离在单个服务中。

扩展:每个服务可以根据实际需求独立进行扩展。

使用场景

单体应用架构:中小型项目(功能相对较少) crm 物流 库存管理等

微服务架构:大型项目(功能比较多) 商城 erp等

微服务spring的解决方案:

①单个服务:springboot

②服务间协调:springcloud

Spring Cloud & dubbo对比

Dubbo:中国各互联网公司在用。

Spring cloud:dubbo曾经确实很牛逼,但是Spring Cloud是站在近些年技术发展之上进行开发,因此更具技术代表性。

Spring cloud是微服务架构中服务治理工具集,有很多产品组成。核心为五大神兽。相较于dubbo更加靠谱。

SpringCloud的组成

服务发现——Netflix Eureka

客服端负载均衡——Netflix Ribbon/Feign

服务网关——Netflix Zuul

断路器——Netflix Hystrix

分布式配置——Spring Cloud Config

等19个框架。

Eureka注册中心

Eureka是netflix的一个子模块,也是核心模块之一 。

使用eureka的客户端连接到eureka server并维持心跳连接,通过eureka server来监控系统各个微服务是否正常运行。

三大角色

Eureka server提供服务注册和发现:Eureka Server提供服务注册服务。

Service Provider服务提供方 :将自身服务注册到Eureka,从而使服务消费方能够找到。

Service Consumer服务消费方:从Eureka获取注册服务列表,从而能够消费服务。

单机注册中心搭建

1.创建项目

2.导入jar,pom.xml

3.yml配置

4.主类

5.测试

为什么需要负载均衡?

为了提供并发量,有时同一个服务提供者可以部署多个。这个客户端在调用时要根据一定的负责均衡策略完成负载调用。

Ribbon负载均衡:

提供客户端负载均衡算法

集成原理

内置负载均衡规则类规则描述

RoundRobinRule(默认) 简单轮询服务列表来选择服务器。它是Ribbon默认的负载均衡规则。AvailabilityFilteringRule 对以下两种服务器进行忽略:(1)在默认情况下,这台服务器如果3次连接失败,这台服务器就会被设置为“短路”状态。短路状态将持续30秒,如果再次连接失败,短路的持续时间就会几何级地增加。(2)并发数过高的服务器。

Feign负载均衡(常用):

Feign是一个声明式的Web Service客户端,它的目的就是让Web Service调用更加简单

Feign具有如下特性:

可插拔的注解支持,包括Feign注解和JAX-RS注解;

支持可插拔的HTTP编码器和解码器;

支持Hystrix和它的Fallback;

支持Ribbon的负载均衡;

支持HTTP请求和响应的压缩。

Feign是以接口方式进行调用,而不是通过RestTemplate来调用,feign底层还是ribbo,它进行封装,让我们调用起来更加容易。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值