Spring Cloud,Docker书籍资源、优秀博文等记录

Spring Cloud,Docker书籍资源、优秀博文等记录

一、书籍

周立 Docker 开源书

使用Spring Cloud与Docker实战微服务

二、博文地址

系列教程:

  1. Docker系列教程
  2. Spring Cloud系列教程
  3. 博客园:雪雁:Docker最全教程

搭建教程:

  1. Centos7下安装Docker(详细安装教程)
  2. docker安装常用组件(mysql,redis,postgres,rancher,Portainer,蝉道,JIRA,sonarqube,Confluence,pgadmin4)

学习教程:

  1. CSDN:数据架构师:docker教程,dockerfile教程
  2. CSDN:Docker通过容器生成镜像(通过容器提交(docker commit)成镜像)
  3. CSDN:查看Docker容器使用资源情况–docker stats
  4. 博客园:SpringCloud系列教程

三、思维导图Or图片

3.1一张图总结 Docker 的命令

在这里插入图片描述

Spring Cloud


部分内容原文地址:
博客园:程序开发者社区:Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览


Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,领导选举,分布式会话,集群状态)。分布式系统的协调导致了样板模式,使用Spring Cloud开发人员可以快速站起来实现这些模式的服务和应用程序。它们适用于任何分布式环境,包括开发人员自己的笔记本电脑,裸机数据中心和Cloud Foundry等托管平台。

1、Spring Cloud组件

Spring Cloud构建微服务是基于SpringBoot开发的,服务之间通过基于HTTP的RESTFUL API进行通信协作的。

Spring Cloud组件由20多个组件组成的,常用的组件有如下:
主要:

  • Eureka:服务注册中心,特性有失效剔除、服务保护
  • Dashboard,Hystrix仪表盘:监控集群模式和单点模式,其中集群模式需要收集器Turbine配合
  • Zuul:API服务网关,功能有路由分发和过滤
  • Config:分布式配置中心,支持本地仓库、SVN、Git、Jar包内配置等模式

融合:
融合在每个微服务中、依赖其它组件并为其提供服务。

  • Ribbon:客户端负载均衡,特性有区域亲和、重试机制
  • Hystrix:客户端容错保护,特性有服务降级、服务熔断、请求缓存、请求合并、依赖隔离
  • Feign:声明式服务调用,本质上就是Ribbon+Hystrix,类似于Dubbo的调用
  • Stream:消息驱动,有Sink、Source、Processor三种通道,特性有订阅发布、消费组、消息分区
  • Bus:消息总线,配合Config仓库修改的一种Stream实现
  • Sleuth:分布式服务追踪,需要搞清楚TraceID和SpanID以及抽样,并且与ZipKin整合
  • SpringBoot的SpringBoot Admin(一个管理和监控 Spring Boot 应用程序的开源项目)

每个组件都不是平白无故的产生的,是为了解决某一特定的问题而存在:

  • Eureka:分为客户端和服务端,客户端是一个java客户端,用来连接Eureka服务端(说白了服务端就是Eureka注册中心),与服务端进行交互,负载均衡,服务的故障切换等。。。作用类似于zookeeper

  • Ribbon:是一个基于HTTP和TCP的客户端负载均衡器,当使用Ribbon对服务进行访问的时候,他会扩展Eureka客户端的服务发现功能,实现从Eureka注册中心获取服务端列表,并通过Eureka客户端来确定服务端是否已经启动。Ribbon在Eureka客户端服务发现的基础上,实现对服务实例的选择策略,从而实现对服务的负载均衡消费。
    Eureka和Ribbon,是最基础的组件,一个注册服务,一个负载均衡消费服务。

  • Hystrix(断路器/熔断器):为了优化Ribbon、防止整个微服务架构因为某个服务节点的问题导致崩溃,是个保险丝的作用,防止服务雪崩。

  • Dashboard:给Hystrix统计和展示用的,而且监控服务节点的整体压力和健康情况。

  • Turbine:是集群收集器,服务于Dashboard的。

  • Feign:是Netflix公司开发的一个声明式的REST调用客户端,Ribbon负载均衡,Hystrix服务熔断是Spring Cloud中进行微服务开发的最基础的组件,在使用过程中我一般发现他们都是一起存在的,而且配置也相似,每次开发都有相同的代码,因此Spring Cloud基于Netflix Feign整合了Ribbon和Hystrix两个组件,让开发更简单

  • Zuul:是加在整个微服务最前沿的防火墙和代理器,隐藏微服务结点IP端口信息,加强安全保护的。

  • Config:是为了解决所有微服务各自维护各自的配置,设置一个统一的配置中心,方便修改配置的。

  • Bus:是因为config修改完配置后各个结点都要refresh才能生效实在太麻烦,所以交给bus来通知服务节点刷新配置的。

  • Stream:是为了简化研发人员对MQ使用的复杂度,弱化MQ的差异性,达到程序和MQ松耦合。目前只支持RabbitMQ和Kafka

  • Sleuth:是因为单次请求在微服务节点中跳转无法追溯,解决任务链日志追踪问题的

2、SpringCloud架构图

在这里插入图片描述

原文地址:https://www.cnblogs.com/aixing/p/13327260.html