zoukankan      html  css  js  c++  java
  • Spring Cloud笔记

    前言

    过去,一个网站只部署在一个服务器上,这是传统架构;把一个项目拆解成子项目,这些子项目之间相互通信,这是分布式架构;

    SOA架构:面向服务架构,把共同的业务逻辑抽取/抽离出来形成一个服务(这即是微服务),提供给其它服务接口进行调用,服务与服务之间调用使用rpc远程技术;

    rpc远程:以xml方式进行通讯,传递的数据封装在xml里;

    微服务架构:是SOA架构演变而来,服务之间不影响,服务独立部署;

    微服务架构的特征:http协议传输数据,而不是rpc;restful风格API形式来进行通讯;json格式数据传输,而不是xml数据格式,数据采用二进制;

    微服务把每一个职责单一功能存放在独立的服务中,即独立的部署,每个服务运行在单独的进程中;

    每个服务有自己独立的数据库存储、实际上有自己独立的缓存、数据库、消息队列等资源;

    一个项目,按功能划分成子项目,这些子项目可以在相同服务器上,也可以在不同服务器上,子项目之间相互通信;

    Spring Cloud概述

    spring cloud是云服务领域的技术的集合,spring cloud提供了很多种服务;

    Spring Cloud是基于Spring Boot基础之上开发的微服务框架;微服务:将服务肢解;微服务一般都是分布式的,而分布式服务不一定是微服务;

    Spring Cloud提供了一套完整的微服务解决方案,其内容包含服务治理、注册中心、配置管理、断路器、智能路由、微代理、控制总线、全局锁、分布式会话等,微服务所有东西都包含了;

    一般结合着阿里巴巴出品的Dubbo分布式服务框架,基本上就全OK了;

    Spring Cloud包含众多的子项目:

    1.Spring Cloud config:分布式配置中心

    2.Spring Cloud netflix:核心组件:

      Eureka:服务治理 注册中心

      Hystrix:服务保护框架

      Ribbon:客户负载均衡器

      Feign:基于ribbon和hystrix的声明式服务调用组件

      Zuul:网关组件,提供智能路由、访问过滤等功能

    服务治理 Spring Cloud Eureka(闭源):

    什么是服务治理?在传统rpc远程调用中,服务与服务依赖关系,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册; 

    服务的发现与注册

    在服务注册与发现中,有一个服务注册中心,当服务器启动的时候,会把当前自己服务器的信息比如:服务地址、通讯地址等以别名方式注册到服务注册中心上,这样服务注册中心就能找到这个服务了;

    另一方(服务消费者[即使用某个服务的,使用接口的]或服务提供者[即被使用这个服务,对外提供/暴露接口]),以该别名的方式去服务注册中心上获取到实际的服务通讯地址,让后者实现本地rpc调用远程; 

    搭建服务注册中心(见son6[Spring Cloud Eureka Server],maven项目) 

    微服务架构son6-son8

    注册中心,服务提供者,服务消费者;

    缺点:注册中心挂了,则其子节点服务提供者、服务消费者都不能用了,所以给注册中心做高可用,替换注册中心;

    而Spring Cloud采用节点间相互注册,即都可以作为注册中心,都可以作为服务节点,一个挂了,用另一个,方式:注册中心的register-with-eureka: false改成true;

    与springboot版本兼容:https://blog.csdn.net/qq_38584262/article/details/85336641

  • 相关阅读:
    [iOS Animation]-CALayer 图像IO
    weblogic集群
    mysql相关函数及用法
    mysql导出导入数据库
    java多线程实现复制功能并统计进度
    java多线程模拟实现12306售票
    Oracle中的常用数据类型
    jdbc连接mysql和oracle数据库-java
    将字符串插入到光标指定位置-js
    二维数组模拟实现酒店管理系统-java
  • 原文地址:https://www.cnblogs.com/yyjh/p/11961977.html
Copyright © 2011-2022 走看看