本文系《Spring Cloud微服务实战》作者:翟永超,一书的阅读笔记。

一:基础知识
 
1:什么是微服务架构
    是一种架构设计风格,主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的RESTful API进行通信协作。
    被拆分的每一个小型服务都围绕系统中的一项或者一些耦合度较高的业务功能进行构建,每个服务维护着自身的数据存储,业务开发,自动化测试以及独立部署。
    
 
2:实施微服务带来的问题:
  • 运维的新挑战;
  • 接口的一致性;
  • 分布式的复杂性;
 
3:微服务9大特性:
  1. 服务组件化;
  2. 按业务组织团队;
  3. 做“产品”的态度;
  4. 智能端点与哑管道;
  5. 去中心化治理;
  6. 去中心化管理数据;
  7. 基础设施自动化;
  8. 容错设计;
  9. 演进式设计;
 
4:为什么选择Spring Cloud
目前微服务架构中针对不同场景出现的不同问题的各种解决方案和开源框架概览:
服务治理
阿里巴巴Dobbo,当当网DubboX,Netflix的Eureka,Apache的Consul等
分布式配置管理
百度的Disconf,Netflix的Archaius,360的QConf,Spring Cloud的Config,淘宝网的Diamond等
批量任务
当当网的Elastic-Job,LinkedIn的Azkaban,Spring Cloud的Task等
服务跟踪
京东的Hydra,Spring Cloud的Sleuth,Twitter的Zipkin等
    在实施微服务框架时,我们必须在这些关键场景的技术选型上进行抉择,而这需要我们针对每种开源框架花费大量时间和经历进行调研,分析,比较等。
    而Spring Cloud,它不像上面介绍的框架是为了解决微服务实践过程中的某一项问题,而是一个解决微服务架构实施的综合性解决框架。它整合了诸多被广泛实践和证明过的框架作为实施的基础部件,又在该基础上创建了一些非常优秀的边缘组件。
    
 
5:Spring Cloud简介
    Spring Cloud是一个基于Spring Boot实现的微服务框架,它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一个简单的开发方式。
    Spring Cloud下主要的子项目有:
  • Spring Cloud Config:配置管理工具,支持使用Git存储配置内容,可以使用它实现应用配置的外部化存储,支持客户端配置信息刷新,加密/解密配置内容等。
  • Spring Cloud Netflix:核心组件,对多个Netflix开源套件进行整合。
    • Eureka:服务治理组件,包括服务注册中心、服务注册与发现机制的实现。
    • Hystrix:容错管理组件,实现断路器模式,为服务依赖中出现的延迟和故障提供容错能力;
    • Ribbon:客户端负载均衡;
    • Feign:基于Hystrix和Ribbon的声明式服务调用组件;
    • Zuul:网关组件,提供只能路由、访问过滤等功能;
    • Archaius:外部化配置组件;
  • Spring Cloud Bus:消息总线,用于传播集群中的状态变化或者事件,以触发后续处理,比如用来动态刷新配置等。
  • Spring Cloud Cluster:针对Zookeeper、Redis、Hazelcast、Consul的选举算法和通用状态模式的实现。
  • Spring Cloud Cloudfoundry:与Pivotal Cloudfoundry的整合支持;
  • Spring Cloud Stream:通过Redis、Rabbit或者Kafka实现的消费微服务,可以通过简单的声明式模型来发送和接收消息;
  • Spring Cloud Security:安全工具包,提供在zuul代理中对OAuth2客户端请求的中继器;
 
6:Spring Cloud版本说明
    当我们查找到一些Spring Cloud的文章或者示例时,往往可以在依赖中看见很多不同版本的名字,比如Angel.SR6、Brixton.SR5等,为什么Spring Cloud没有想其他Spring项目使用1.X.X的版本命名规则呢?
    因为Spring Cloud下有很多子项目,他们各自维护着自己的版本更新,也就是说每一个Spring Cloud的版本下的不同子项目有不同的版本号,为了区别于子项目的版本号,因此使用命名的方式标识版本。
    其中大版本命名使用伦敦地铁站的名字,按照字母顺序排列,如Angel,Brixton......
    当一个版本的Spring Cloud项目的发布内容累积到一定程度或者修复了一个严重的Bug,就会发布一个Release版本,简称SRX版本,其中X是一个递增的数字,Brixton SR5表示Brixton的第五个Release版本。
 
最新版本区别:
Component
Edgware.SR1
Finchley.M5
Finchley.BUILD-SNAPSHOT
spring-cloud-aws
1.2.2.RELEASE
2.0.0.M2
2.0.0.BUILD-SNAPSHOT
spring-cloud-bus
1.3.2.RELEASE
2.0.0.M4
2.0.0.BUILD-SNAPSHOT
spring-cloud-cli
1.4.1.RELEASE
2.0.0.M1
2.0.0.BUILD-SNAPSHOT
spring-cloud-commons
1.3.1.RELEASE
2.0.0.M5
2.0.0.BUILD-SNAPSHOT
spring-cloud-contract
1.2.2.RELEASE
2.0.0.M5
2.0.0.BUILD-SNAPSHOT
spring-cloud-config
1.4.1.RELEASE
2.0.0.M5
2.0.0.BUILD-SNAPSHOT
spring-cloud-netflix
1.4.2.RELEASE
2.0.0.M5
2.0.0.BUILD-SNAPSHOT
spring-cloud-security
1.2.2.RELEASE
2.0.0.M1
2.0.0.BUILD-SNAPSHOT
spring-cloud-cloudfoundry
1.1.1.RELEASE
2.0.0.M2
2.0.0.BUILD-SNAPSHOT
spring-cloud-consul
1.3.1.RELEASE
2.0.0.M4
2.0.0.BUILD-SNAPSHOT
spring-cloud-sleuth
1.3.1.RELEASE
2.0.0.M5
2.0.0.BUILD-SNAPSHOT
spring-cloud-stream
Ditmars.SR3
Elmhurst.M3
Elmhurst.BUILD-SNAPSHOT
spring-cloud-zookeeper
1.2.0.RELEASE
2.0.0.M4
2.0.0.BUILD-SNAPSHOT
spring-boot
1.5.9.RELEASE
2.0.0.M7
2.0.0.BUILD-SNAPSHOT
spring-cloud-task
1.2.2.RELEASE
2.0.0.M2
2.0.0.RELEASE
spring-cloud-vault
1.1.0.RELEASE
2.0.0.M4
2.0.0.BUILD-SNAPSHOT
spring-cloud-gateway
1.0.1.RELEASE
2.0.0.M5
2.0.0.BUILD-SNAPSHOT
    
 

Spring Cloud微服务实战阅读笔记(一) 基础知识的更多相关文章

  1. Spring Cloud 微服务实战笔记

    Spring Cloud 微服务实战笔记 微服务知识 传统开发所有业务逻辑都在一个应用中, 开发,测试,部署随着需求增加会不断为单个项目增加不同业务模块:前端展现也不局限于html视图模板的形式,后端 ...

  2. spring cloud微服务实战教程/pdf/视频/百度云资源

    资源站:http://www.supan.vip 点击进入直接查找资源: http://www.supan.vip/spring%20cloud微服务实战 <Spring Cloud微服务实战& ...

  3. Spring Cloud 微服务实战——nacos 服务注册中心搭建(附源码)

    作为微服务的基础功能之一的注册中心担任重要的角色.微服务将单体的服务拆分成不同的模块下的服务,而不同的模块的服务如果进行通信调用呢?这就需要服务注册与发现.本文将使用阿里开源项目 nacos 搭建服务 ...

  4. Spring cloud微服务实战——基于OAUTH2.0统一认证授权的微服务基础架构

    https://blog.csdn.net/w1054993544/article/details/78932614

  5. spring cloud系列教程第四篇-Eureka基础知识

    通过前三篇文章学习,我们搭建好了两个微服务工程.即:order80和payment8001这两个服务.有了这两个基础的框架之后,我们将要开始往里面添加东西了.还记得分布式架构的几个维度吗?我们要通过一 ...

  6. Spring Cloud系列之Commons - 1. 背景与基础知识准备

    本文基于 Spring Cloud 2020.0 发布版的依赖 本系列会深入分析 Spring Cloud 的每一个组件,从Spring Cloud Commons这个 Spring Cloud 所有 ...

  7. 阅读笔记:基础知识(Java篇)

    1. GC机制(垃圾回收机制) 找到垃圾的方法:引用计数法.可达性分析法 回收垃圾的方法:标记清除算法.复制算法.标记整理法.分代算法 2. JVM内存划分 线程私有:程序计数器.JVM虚拟机栈.本地 ...

  8. Spring Cloud 微服务架构学习笔记与示例

    本文示例基于Spring Boot 1.5.x实现,如对Spring Boot不熟悉,可以先学习我的这一篇:<Spring Boot 1.5.x 基础学习示例>.关于微服务基本概念不了解的 ...

  9. springcloud微服务实战--笔记

    目前对Springcloud对了解仅限于:“用[注册服务.配置服务]来统一管理其他微服务” 这个水平.有待提高 Springcloud微服务实战这本书是翟永超2017年5月写的,时间已经过去了两年,略 ...

随机推荐

  1. JAVA第一次实验 ——凯撒密码

    课程:Java程序设计 班级:1352 姓名:黄伟业 学号:20135215 成绩:            指导教师:娄嘉鹏  实验日期:2015.4.15 实验密级: 预习程度:  实验时间:19: ...

  2. 超级迷宫之NABCD

    模式之一:双人模式 N:基于双人之间的竞争与协作,朋友之间可以有一个竞争比赛,一决高下,男女朋友之间适合双人协作模式,共同完成游戏. A:双人竞争模式为双人同起点或不同起点来进行游戏,在竞争的紧张压力 ...

  3. AttributeError: module ‘tensorflow.python.ops.nn’ has no attribute ‘leaky_relu’

    #AttributeError: module 'tensorflow.python.ops.nn' has no attribute 'leaky_relu' 的原因主要是版本的问题 解决方法是更新 ...

  4. Unity3D游戏开发——收集当前关卡游戏中分散的物件

    运用场景 许多游戏中会有一些供玩家拾起的物件,例如装备.血包.道具等.当玩家与物件进行碰撞后,则会进入仓库. 本篇介绍了简单的碰撞过程. 原理 基本的碰撞机制,用到OnTriggerEnter()碰撞 ...

  5. Swift-懒加载使用

    //    懒加载 lazy var tableView : UITableView = {         let tempTableView = UITableView()         ret ...

  6. [转帖]高通推出八核笔电处理器骁龙8cx 能超英特尔吗?

    高通推出八核笔电处理器骁龙8cx 能超英特尔吗? https://baijiahao.baidu.com/s?id=1619154699684981202&wfr=spider&for ...

  7. vSphere下安装Hyper-V

    在vSphere 5.5中默认是无法嵌套安装Hyper-V的,必须在vSphere中稍作修改. 1. 勾选这两个选项,如果是灰色,请升级虚拟机版本至最新: 2. 在配置文件中手动加入这一行参数: 3. ...

  8. [转帖]七牛云对HTTPS 的解释

     感觉对RTT 还有 建立连接的说明挺好的 转帖一下 学习   https://www.cnblogs.com/qiniu/p/6856012.html   序•魔戒再现   几天前,OpenSSL  ...

  9. (很难啊)如何实时获取DBGrid 中当前单元格输入的内容? [问题点数:100分,结帖人yifawu100]

    如何获取DBGrid 中当前单元格输入的内容? 还没输入完成,我想实时获取 Cell中的内容,以便作其他处理,用什么事件呢? 所以Field的Onchange事件是没用的. DBGrid1.Selec ...

  10. BZOJ3243 NOI2013向量内积(随机化)

    考虑奇技淫巧. 首先是k=2.对向量维护一个前缀和,每次将当前向量与前缀和点乘.如果点乘结果不等于i-1&1,说明当前向量至少和之前的某个向量的数量积是2的倍数,暴力找就可以了.当然等于i-1 ...