SpringCloud学习笔记

1、什么是微服务

  • 微服务是一种架构风格
  • 一个应用拆分为一组小型服务
  • 每个服务运行在自己的进程内,也就是可独立部署和升级
  • 服务之间使用轻量级HTTP交互
  • 服务围绕业务功能拆分
  • 可以由全自动部署机制独立部署
  • 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术

1.2 与SOA的区别

  • SOA关注的是服务的重用性及解决信息孤岛问题。
  • 微服务关注的是解耦,虽然解耦和可重用性从特定的⻆度来看是⼀样的,但本质上是有区别的,解耦是降低业务之间的耦合度,而重用性关注的是服务的复用。
  • 微服务会更多地关注在DevOps的持续交付上,因为服务粒度细化之后使得开发运维变得更加重要,因此微服务与容器化技术的结合更加紧密。

1.3 微服务框架功能

  • ·注册中心:服务提供者和消费者,能够从注册中心注册和得到服务信息。配置中心在微服务架构中设计服务较多需要对于配置文件统一管理。
  • ·服务链路追踪︰对于服务之间的负载调用,要能通过链路追踪,得到具体参与者,调用链路出现问题能够快速定位。
  • ·负载均衡:服务调用服务会采用一定的负载均衡策略,来保证服务的高可用。
  • ·服务容错∶通过熔断、降级服务容错策略,对系统进行有效的保护,降级是在服务或依赖的服务异常时,返回保底数据,熔断是指依赖服务多次失效,则熔断器打开,不再尝试调用,直接返回降级信息。熔断后,定期探测依赖服务可用性,若恢复则恢复调用。
  • 服务网关︰用户请求过载时进行限流、排队、过载保护、黑白名单、异常用户过滤拦截等都可以通过服务网关实现。
  • ·服务发布与回滚︰蓝绿部署、灰度、AB Test等发布策略,可快速回滚应用。
  • ·服务动态伸缩、容器化︰根据服务负载情况,可快速手动或自动进行节点增加和减少。

2、Eureka--服务注册和发现

    注册中心可以说是微服务架构中的“通讯录”,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。

    Eureka主要涉及到三大⻆色:

  • Eureka Server:提供服务的注册与发现
  • Service Provider:服务生产方,将自身服务注册到Eureka中,从而使服务消费方能狗找到
  • Service Consumer:服务消费方,从Eureka中获取注册服务列表,从而找到消费服务

1、 构建Eureka Server时要记得在启动类上加上注解@EnableEurekaServer

2、构建Eureka Client

       1)导入Eureca依赖

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

      2)application中新增Eureca配置

# Eureka配置:配置服务注册中心地址
eureka:
  client:
    service-url:
      defaultZone: http://localhost:9001/eureka

     3)在启动类上加上注解@EnableEurekaClient :开启Eureka客户端注解,在服务启动后自动向注册中心注册服务

3. EureKa自我保护机制

       默认情况下,当eureka server在一定时间内没有收到实例的心跳,便会把该实例从注册表中删除(默认是90秒)。该保护机制的目的是避免网络连接故障,在发生网络故障时,微服务和注册中心之间无法正常通信,但服务本身是健康的,不应该注销该服务。自我保护模式可以让集群更加健壮。

3、LoadBalancer负载均衡

   负载均衡是指将负载分摊到多个执个单元上,常⻅的负载均衡有两种方式。一种独立进程单元,通 过负载均衡策略,将请求转发到不同的执行单元上,例如Nginx。另一种是将负载均衡逻辑以代码的形 式封装到服务消费者的客户端上,服务消费者客户端维护了一份服务提供者的信息列表,有了信息表, 通过负载均衡策略将请求分摊给多个服务提供者,从而达到负载均衡的目的。

在产生RestTemplate实例时,使用@LoadBalanced注解,开启负载均衡。

@Bean 
@LoadBalanced 
public RestTemplate restTemplate() { 
    return new RestTemplate(); 
}
  当时使用有@LoadBalanced注解的RestTemplate时,设计的类的调用关系如图所示

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值