• Spring Cloud的常规组件和简单实战(一)


           最近一段时间在学习Spring Cloud,从Eureka到Hystrix,常用的配置和方法都有涉及一些,以此笔记来记录一下学习到的东西,也分享一下。内容以实战为起点,主要以介绍常规用法为主,最后也会列出遇到的几个问题和解决方法,希望能对初学者有一些帮助。

    1、 微服务介绍(是一种架构风格)
      1)微服务特点
         一系列微小的服务共同组成
        跑在自己的进程里
        每个服务为独立的业务开发
        独立部署
        分布式的管理

      2)架构演变
        单一应用架构/ORM --> 垂直应用架构/MVC --> 分布式服务架构/RPC --> 流动计算架构/SOA

      3)分布式定义
        旨在支持应用程序和服务的开发,可以利用物理架构,由多个自治的处理元素,不共享主内存,但通过网络发送消息合作。

      4)微服务架构的基础框架/组件
        服务注册发现:服务的注册和发现,服务内部通讯
        服务网关(Service Gateway):服务对外暴露,对外屏蔽服务细节、路由外部请求至具体微服务、限流容错、请求监控(用户校验、反爬虫机制等)
        后端通用服务(也称中间层服务Middle Tier Service):注册至服务注册表,供前端服务调用
        前端服务(也称边缘服务Edge Service): 对后端服务进行裁剪和聚合

      5)微服务实现两种方式
        阿里系:
          -Dubbo:服务治理
          -Zookeeper:服务注册中心
          -SpringMVC or SpringBoot:底层实现
          -...
        Spring Cloud:
          -Spring Cloud Netflix Eureka
          -SpringBoot
          -...

    2、 Spring Cloud简介
      1)Spring Cloud是一个开发工具集,含了多个子项目
        -利用Spring Boot的开发便利
        -主要是基于对Netflix开源组件的进一步封装

      2)Spring Cloud简化了分布式开发(掌握如何使用,更要理解分布式、架构的特点)

    3、 Spring Cloud Eureka
      1)基于Netflix Eureka做了二次封装

      2)两个组件组成
        -Eureka Server 注册中心(维持心跳连接、检测服务)
        -Eureka Client 服务注册(简化与服务器的交互、轮询负载均衡器、提供服务故障切换)

      3)EurekaServer
        注解:EnableEurekaServer(注册服务注解)
        依赖:spring-cloud-starter-netflix-eureka-server
        高可用:EurekaServer相互注册、EurekaClient多方注册
        主要配置:

    eureka:    
      client:
        service-url:
          # 配置Eureka Server地址,Eureka本身也是服务,也需要进行注册,若多个Server,地址用逗号隔开(启动Server服务后,访问服务ip:port可找到注册地址)
          defaultZone: http://127.0.0.1:8681/eureka
        # 是否在Eureka服务注册中心可见     
        register-with-eureka: false

    4)EurekaClient
      注解:EnabelDiscoveryClient(服务提供者注解)
      依赖:spring-cloud-starter-netflix-eureka-client(spring-boot-starter-web)
      主要配置:  

    spring:
      application:
        # 服务名,在注册中心为服务id
        name: demo
    eureka:
      client:
        service-url:
          # Eureka Server的注册地址,若有多个,可只注册一个
          defaultZone: http://localhost:8681/eureka/
  • 相关阅读:
    编程及应用中的一些快捷键(持续更新中)
    html5入门(head部分的基本认识)
    html5入门(j简单了解html)
    动态规划 ship
    js 解决两值交换
    styled-components解决全局样式'injectGlobal' 废除的问题
    mysql sql更新密码失败
    window nginx 基础命令
    MySQL 8.0
    "unexpected console statement” in Node.js
  • 原文地址:https://www.cnblogs.com/effortn/p/10890335.html
Copyright © 2020-2023  润新知