微服务?

本文探讨了微服务架构的特点,如服务独立性、轻量级通信、技术栈多样性,以及SpringCloud如何简化分布式系统开发。介绍了服务注册与发现、负载均衡、断路器等关键概念,同时详细解析了Eureka、Ribbon、Feign等核心组件的工作原理和使用场景。
  1. 每个服务可独立运行在自己的进程里
  2. 一系列独立运行的微服务共同构建起整个系统
  3. 每个服务为独立的业务开发,一个微服务值关注某个特定的功能,例订单管理,用户管理
  4. 为服务之间通过一些轻量的通信机制进行通信,例Restful API进行调用
  5. 可以使用不同的语言与数据存储技术开发
SpringCloud的出现简化了分布式架构的开发
  1. 他是对Netflix开源组件的封装
  2. 整合了分布式开发需要用到的一套技术
  3. 使用SpringBoot作为底层,通过SpringBoot的自动配置见花分布式开发
    特点:
    1. 服务注册和发现
    2. 路由
    3. service - to - service调用
    4. 负载均衡
    5. 断路器(雪崩效应)
常用组件

Eureka组件 实现服务的注册和发现
服务注册 :当为服务client启动时,想Eureka Server发起注册,并上报该节点的相关信息
服务发现 : 通过注册中心获取提供者的地址

Ribbon简介

是一个基于HTTP和TCP的客户端负载均衡工具

ribbon提供了很多的负载均衡算法

RoundRobinRule(轮询算法)
RandomRule(随机算法)
AvailabilityFilteringRule(过滤失效服务 再轮询):会先过滤由于多次访问故障而处于断路器跳闸状态的服务,还有并发的连接数量超过阈值的服务,然后对剩余的服务列表按照轮询策略进行访问
WeightedResponseTimeRule(权重):根据平均响应的时间计算所有服务的权重,响应时间越快服务权重越大被选中的概率越高,刚启动时如果统计信息不足,则使用RoundRobinRule策略,等统计信息足够会切换到WeightedResponseTimeRule
RetryRule(先轮询 调用失败 使用重试机制):先按照RoundRobinRule的策略获取服务,如果获取失败则在制定时间内进行重试,获取可用的服务
BestAviableRule(过滤失效服务 再请求并发量最小的服务):会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务

Feign

Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔(添加jar即可使用)的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器(对象的序列化 和 反序列化)。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果并且springcloud为feign添加了springmvc注解的支持。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值