Spring Cloud笔记

前言

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

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

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

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

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

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

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

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

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

猜你喜欢

转载自www.cnblogs.com/yyjh/p/11961977.html