SpringCloud

本文深入探讨微服务,从单体架构、分布式架构到微服务的优缺点。重点讲解SpringCloud,涵盖Eureka和Nacos注册中心的使用,包括服务注册、发现、负载均衡策略。还介绍了Nacos配置管理和Feign客户端的实现,最后讨论了统一网关Gateway的配置与过滤器应用。
摘要由CSDN通过智能技术生成

一、认识微服务

1.1单体架构

优点

架构简单

部署成本低

缺点

耦合度高

1.2分布式架构

优点

降低服务耦合

有利于服务升级拓展

分布式架构的要考虑的问题

  1. 服务拆分粒度如何?
  2. 服务集群地址如何维护?
  3. 服务之间如何实现远程调用?
  4. 服务健康状态如何感知?

1.3 微服务

微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:

单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发

面向服务:微服务对外暴露业务接口

自治:团队独立、技术独立、数据独立、部署独立

隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

1.4 微服务技术对比

Dubbo

SpringCloud

SpringCloudAlibaba

注册中心

zookeeper、Redis

Eureka、Consul

Nacos、Eureka

服务远程调用

Dubbo协议

Feign(http协议)

Dubbo、Feign

配置中心

SpringCloudConfig

SpringCloudConfig、Nacos

服务网关

SpringCloudGateway、Zuul

SpringCloudGateway、Zuul

服务监控和保护

dubbo-admin,功能弱

Hystix

Sentinel

二、SpringCloud

服务调用关系:

  1. 服务提供者:暴露接口给其它微服务调用
  2. 服务消费者:调用其它微服务提供的接口
  3. 提供者与消费者角色其实是相对的
  4. 一个服务可以同时是服务提供者和服务消费者

2.1 Eureka注册中心

服务调用出现的问题:

  1. 服务消费者该如何获取服务提供者的地址信息?
  2. 如果有多个服务提供者,消费者该如何选择?
  3. 消费者如何得知服务提供者的健康状态?

2.1.1 Eureka的作用

消费者该如何获取服务提供者具体信息?

  1. 服务提供者启动时向eureka注册自己的信息
  2. eureka保存这些信息
  3. 消费者根据服务名称向eureka拉取提供者信息

如果有多个服务提供者,消费者该如何选择?

  1. 服务消费者利用负载均衡算法,从服务列表中挑选一个

消费者如何感知服务提供者健康状态?

  1. 服务提供者会每隔30秒向EurekaServer发送心跳请求,报告健康状态
  2. eureka会更新记录服务列表信息,心跳不正常会被剔除
  3. 消费者就可以拉取到最新的信息

2.1.2 eureka注册中心开发

2.1.2.1 引入依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
2.1.2.2 启动类加注解

@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class,args);
    }
}
2.1.2.3 书写配置文件

server:
  port: 10086 #服务端口
spring:
  application:
    name: eurekaserver #eureka服务名称
eureka:
  client:
    service-url: #eureka地址信息
      defaultZone: http://localhost:10086/eureka/
Spring Cloud是一个用于构建分布式系统的开发工具集合。它提供了一些常用的组件和框架,包括服务注册和发现、负载均衡、断路器、分布式配置等等。在使用Spring Cloud时,有一些常见的错误和注意事项需要注意。 首先,关于Spring Boot和Spring Cloud版本对应错误。在使用Spring Cloud时,需要确保Spring Boot和Spring Cloud的版本兼容。不同版本之间可能存在依赖冲突或不兼容的情况,因此需要根据官方文档或者相关文档来选择合适的版本。 另外,Spring Cloud Config是一个用于集中管理和动态获取配置的工具。它支持从Git、SVN或本地文件系统中获取配置文件,并提供了服务器和客户端支持。你可以通过官方使用说明文档了解更多关于Spring Cloud Config的详细信息。 此外,关于选择使用Nacos还是Eureka作为服务注册和发现组件的问题。Nacos是一个功能更强大的服务注册和发现组件,它整合了Spring Cloud Eureka、Spring Cloud Config和Spring Cloud Bus的功能。使用Nacos可以实现配置的中心动态刷新,而不需要为配置中心新增集群或使用消息队列。另一方面,Eureka是Spring Cloud原生全家桶的一部分,相对来说更加稳定一些。选择使用哪个组件需要根据具体的需求和项目特点来决定。 综上所述,Spring Cloud是一个用于构建分布式系统的开发工具集合,它提供了一些常用的组件和框架。在使用Spring Cloud时,需要注意Spring Boot和Spring Cloud版本的兼容性,并可以使用Spring Cloud Config来动态获取配置。同时,可以选择使用Nacos或Eureka作为服务注册和发现组件,具体选择需要根据项目需求来决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值