# cloud2020 **Repository Path**: shihaodeng/cloud2020 ## Basic Information - **Project Name**: cloud2020 - **Description**: springcloud - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-08-08 - **Last Updated**: 2022-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # cloud2020 #### 介绍 springcloud微服务 Eureka zookeeper Consul服务注册异同 Eureka(可用性 分区容错性) Eureka选择了保证可用性,Eureka 的各个节点都是平等的,某些节点挂掉不会对正常工作产生很大的影响,剩余的节点依旧可以提供注册和查询服务。在客户端向注册中心注册服务时发现连接失败,会自动切换其他节点,只要还有一台注册中心在,就能保证服务的可用性,只不过查询到的信息可能不是最新的 Eureka 还有一种自我保护机制:如果在 15分钟 内超过 85% 的节点都没有正常的心跳,就认为客户端与注册中心出现了网络故障,此时会出现以下情况: Eureka 不再从注册列表中移除因为长时间没收到心跳而过期的服务 Eureka 仍然能够接收新服务的注册和查询请求,但是不会被同步到其他节点上,即保证当前节点依然可用 当网络稳定时,当前实例新的注册信息会被同步到其他节点中 zookeeper Consul(强一致性、分区容错性) 当注册中心查询服务列表时,可以容忍注册中心返回的是几分钟以前的注册信息,但不能接收服务直接挂掉。 当主节点(master)因为某些原因与其他节点失去连接时,剩余节点会重新进行领导者(leader)的选举。问题在于选举的时间太长——30s~120s,且选举期间整个ZookKeeper 集群不可用,就导致了服务的瘫痪。在云部署的环境下,因为网络是的ZK集群失去master是较大概率的事情,也就会导致服务短暂瘫痪是较大概率的,是不可取的。 每次当配置文件进行改动的时候,都需要重启服务十分麻烦,这个时候可以通过springcloud Bus服务总线在不启动服务的情况下使配置文件生效。其中使用rabbitmq实现一个客户端文件生效,处处生效。 springcloud Stream 可以与中间件进行交互,在在消息者读取消息生产者信息的时候,可以通过分组避免消息重复消费和持久化。 Stream中处于同一个group中的多个消费者是竞争关系,就能够保证消息只会被其中一个应用消费一次。不同组是可以全面消费的(重复消费) springcloud sleuth 微服务框架中 客户端发个请求过来会经过后端多个服务节点进行协调 ,其中一个环节有个问题会导致整个链路失败。那么就可以使用sleuth对整个链路进行追踪 #### 软件架构 热部署Devtools,Eureka服务注册与发现 zookeeper服务注册与发现 Consul 服务注册与发现 Ribbon负载均衡服务调用 OpenFeign负载均衡服务调用 Hystrix断路器 Gatway服务网关 SpringcloudBus 服务总线 springcloud stream 消息驱动 springcloud sleuth 请求链路追踪 nacos #### 安装教程 springcloud sleuth 下载 zipkin 在本地java文件下的文件中 进入该目录 cmd进去使用 java -jar zipkin-server-2.12.9-exec.jar 命令 就可以登录 http://localhost:9411/zipkin 查看 springcloud bus和stream中使用的mq都是在docker中自己pull下来的 #### 使用说明 eureka服务注册与发现(集群) cloud-provider-payment-8001 cloud-provider-payment-8002 cloud-eureka-server7001 cloud-eureka-server7002 cloud-consumer-order-80 zookpeer(单机)服务注册与发现 cloud-provider-payment-8004 cloud-consumer-order80 consul(服务注册与发现) cloud-provider-payment-consul-8006 cloud-consumer-order-consul-80 ribbon负载均衡服务调用 cloud-consumner-order-80 cloud-provider-payment-8001 cloud-provider-payment-8002 在cloud-consumner-order-80创建了lib包 其中手写一个关于本地轮询规则的配置 OpenFeign负载均衡服务调用 cloud-consumer-order-Feign-80 Hystrix断路器 cloud-consumer-feign-hystrix-order-80 cloud-consumer-hystrix-dashboard-9001 cloud-provider-payment-Hystrix-8001 Gatway服务网关 cloud-gatway9527 SpringcloudBus cloud-config-center-3344 cloud-config-client-3355 cloud-config-client-3366 springcloud stream cloud-stream-rabbitmq-provider-8801 cloud-stream-rabbitmq-consumer-8802 cloud-stream-rabbitmq-consumer-8803 springcloud sleuth cloud-consumer-order-80 cloud-provider-payment-8002 nacos alibaba-consumer-nacos-order-83 alibaba-nacos-config-client-3377 alibaba-provider-payment-9001 alibaba-provider-payment-9002 #### 参与贡献