学习SpringCloud 的第一天

102 阅读2分钟
  • Ribbon负载均衡

    • 在类上加上注解:@LoadBalanced 标记以后此类发出的请求会被Ribbon进行拦截处理
    • @LoadBalanced 实现原理:通过spring-cloud 中的 LoadBalancerInterceptor类实现ClientHttpRequestInterceptor接口(客户端HTTP请求拦截器)--->调用RibbonLoadBalancerClient接口中的execute()(通过服务名称获取服务列表)得到服务列表,然后根据Ribbon的负载均衡规则进行返回
  • 单体架构特点?

    • 简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统
  • 分布式架构特点?

    • 松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝
    • 微服务:一种良好的分布式架构方案
    • 优点:拆分粒度更小、服务更独立、耦合度更低
    • 缺点:架构非常复杂,运维、监控、部署难度提高
  • 微服务演变

  • 微服务拆分注意事项:

    • 单一职责:不同微服务,不要重复开发相同业务
    • 数据独立:不要访问其它微服务的数据库
    • 面向服务:将自己的业务暴露为接口,供其它微服务调用
  • 微服务远程调用

    • 微服务调用方式:

      • 基于RestTemplate发起的http请求实现远程调用
      • http请求做远程调用是与语言无关的调用,只要知道对方的ip、端口、接口路径、请求参数即可
      • 例子:
  • 服务调用关系

    • 服务提供者:暴露接口给其它微服务调用
    • 服务消费者:调用其它微服务提供的接口
    • 提供者与消费者角色其实是相对的
    • 一个服务可以同时是服务提供者和服务消费者
  • Nacos 启动步骤:

    • 启动非常简单,首先进入bin目录,然后进入cmd命令行输入: startup.cmd -m standalone 然后在浏览器输入地址:http://127.0.0.1:8848/nacos即可
  • 微服务会从nacos读取的配置文件:

    • [服务名]-[spring.profile.active].yaml,环境配置

    • [服务名].yaml,默认配置,多环境共享

    • 优先级:

      • [服务名]-[环境].yaml >[服务名].yaml > 本地配置