spring cloud基础

一、基本概念:

单块架构: 如springmvc传统的三层系统架构,虽然逻辑上分为三层,但仍放在一个服务器中一起运行,不解耦

微服务:    一种架构风格,一个大型的应用由一个或多个微服务组成,独立部署,低耦合(spring,springboot,mybatis开发的项目都是一个微服务,独立存在,不依赖于微服务架构)

微服务架构:

1、springcloud:一种基于springboot的一整套实现微服务的架构(又称为"一站式全家桶")

2、dubbo:高性能、轻量级的RPC(远程过程调用)

二、springcloud优缺点:

优点: 1. 每个服务足够内聚,足够小,代码易于理解

            2. 开发简单,开发效率高,一个微服务可能只敢一件事,能够被小团队单独开发

            3. 低耦合,无论是在开发还是部署阶段都是独立的

            4. 可以使用不同的语言

            5. 易于和第三方集成

            6. 每个微服务都有自己的存储能力,可以有自己的数据库也可以有统一的数据库

缺点: 1. 耗性能

            2. 数据的一致性难以保障

            3. 通讯成本高

            4. 系统集成测试复杂

            5. 随着服务的增多,维护成本和压力越来越大

三、dubbo的优缺点

优点: 1. 透明化的远程调用方法(只需简单配置,像调用本地方法一样调用远程方法,没有任何api 侵入)

            2. 软负载均衡及容错机制

            3. 使用zookeeper自动注册或配置管理

            4. 服务接口管理与监控(dubbo- admin管理,dubbo-monitor监控)

缺点:只能使用java语言

四、springcloud和dubbo的区别

dubbo没有springcloud提供那么多的组件,需自己找第三方组件

spring cloud基础_第1张图片
图片发自App

五、技术栈

1.eureka(服务的注册与发现)

所有微服务都需要注册到eureka中进行统一管理(管理微服务的)

服务的注册:

eureka是基于cs的架构模式,即客户端与服务端的架构

(1)服务端的配置server

        1.pom.xml引入eureka依赖

        2.application.yml中配置eureka

                    instance

                            hostname:eureka的名字

                    client

                            register-with-eureka:不向注 册中心注册自己

                            fetch-registry:表名自己就是注册中心

                            defaultZone:eureka服务端的访问路径,用来验证eureka是否配置成功的

          3. 将@EnableEurekaServe注解加到eureka服务的主启动器上,告诉eureka我是一个服务端

(2)将微服务模块注入到服务中,相当于客户端发送请求

          1. pom.xml引入spring-cloud-starter-eureka依赖

          2. application.yml中配置eureka

                        defaultZone:告诉我要注册到哪个服务里

                          instance-id:名字

                          prefer-ip-address:访问地址ip

          3. 将@EnableEurekaClient注解加到想要注册到eureka的微服务上

服务的发现:

(作用:调用接口与前看是否存在)

编写测试类,注入@AutoWrite

private Discovery Client

Listlist=client.getServices()

获得所有注册到服务的名字,即instance-id

拓展:

1.eureka的自我保护机制(保存服务的信息)

2.集群:  1.  当面临请求过大时需要配置eureka集群

                2.  若一个集群宕掉可以用其他的集群

              配置:主要修改客户端和服务端的yml配置文件(添加defaultZone:所有集群的访问路径)

2.zookeeper(dubbo的服务注册)

ACID:

Atomicity原子性 Consistency一致性             

Isolation 隔离性    Durability  持久性

CAP : 一致性、可用性、分区容错性(必须有)

eureka和zookeeper的区别:

1.eureka遵循AP原则

2.zookeeper遵循CP原则

3.zookeeper有主从的设计理念:

若主zookeeper宕掉,从属的zookeeper服务器会选出新的主zookeeper

大约十几秒到几分钟,zookeeper在此期间不可用,不接受外部请求

你可能感兴趣的:(spring cloud基础)