# springcloud **Repository Path**: NuLiJinBu/springcloud ## Basic Information - **Project Name**: springcloud - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 4 - **Created**: 2019-01-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 微服务是什么? 它提倡将单一应用划分成一组小的服务 每个服务运行其独立的进程中 dubbo 用rpc调用 springcloud用restful api 调用 微服务与微服务架构? 微服务: 强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题/提供落地对应服务的一个服务应用,侠义的看可以看出一个个微服务工程或者module 微服务架构: 强调的是整体,吧一个一个的微服务拼接起来对外暴露业务 微服务的优缺点: 优点: 每个服务足够内聚,足够小,代码容易理解 开发简单,开发效率提高,一个服务可能就是专一的只干一件事 微服务能被小团队独立开发, 这个小团队是2到5人的开发人员组成 微服务是松耦合,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的 每个微服务可以有自己的数据库 缺点: 开发人员要处理分布式系统的复杂性 多服务运维难度,随着服务的增加,运维的压力也在增大 系统部署依赖 服务间通讯成本 数据一致性 系统集成测试 性本监控 ...... Eureka:主管服务的注册和发现 是什么?Netflix在设计Eureka时遵守的就是AP原则 只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了,功能类似dubbo的注册中心,比如Zookeeper Eureka 采用了C-S的设计架构 Eureka Server作为服务注册功能的服务器,它是服务注册中心 而系统中的其他微服务,使用Eureka的客户端连接到Eureka Server并维持心跳连接.这样系统的维护人员就可以通过Eureka Server来监控系统中各个微服务是否正常运行.SpringCloud的一些其他模块(比如Zuul)就通过EureKa Server来发现系统中的其他微服务,并执行相关的逻辑 Eureka 包含连个组件: Eureka Server和Eureka Client Eureka Server提供服务注册服务 各个节点启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用的服务节点的信息,服务节点的信息可以在界面直观的看到 自我保护机制: 好死不如赖活着 传统的ACID分别的:一致性隔离线持久性原子性 CAP:强一致性,可用性,分区容错性 CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需要求 CA:单一集群,满足一致性,可用性的系统通常在可扩展性上不太强 CP:满足一致性,分区容忍性的系统,通常性能不是特别高(Redis,MongoDb,HBase) AP:满足可用性,分区容忍性的系统,通常可能对一致性要求低一些 Zookeeper保证的是CP Eureka则是AP Ribbon 负载均衡: 基于Netflix Ribbon实现的一套客户端 负载均衡工具 Hystrix能保证一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性 服务熔断是应对血崩效应的一种微服务链路保护机制 熔断该节点微服务的调用,快速返回"错误"的响应信息 @HystrixCommand 像调用方返回一个符合预期的,可处理的备选响应(FallBack),而不是长时间的等待或者抛出调用方无法处理的异常会进行服务的降级,进而熔断该节点微服务的调用,快速返回"错误"的响应信息 服务熔断是整体资源快不够了,忍痛将某些服务先关掉,待渡过难关,再开启回来 Hystrix Dashboard 提供了准实时的调用监控 http://127.0.0.1:9001/hystrix 输入 http://127.0.0.1:8001/hystrix.stream 要监控的实例 实心圆可以在大量实例中快速的发现故障实例和高压力实例 Zuul服务最终还是会注册进Eureka 提供=代理+路由+过滤三大功能 SpringCloud Config 为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心话的外部配置 SpringCloud Config 分为服务端和客户端两部分 服务端也成为分布式配置中心,它是一个独立的微服务应用