目录

微服务架构与springcloud

spring cloud官网

Spring Cloud 中文网

微服务介绍

微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间胡亮协调、互相配合,为用户提供最终价值。在微服务架构中,服务与服务之间通信时,通常是通过轻量级的通信机制,实现彼此间的互通互联、互相协作。所谓轻量级通信机制,通常是指与语言无关、与平台无关的这类协议。通过轻量级通信机制,使服务与服务之间的协作变得简单、标准化。

每个服务都围绕着本业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免同一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建。

微服务是一种设计思想,分布式是开发方案。

springcloud介绍

品牌机 vs 组装机

95后互联网时代下的数字化生活,雷布斯小米,华为、苹果、小米

基于分布式的微服务架构实现可以是品牌机springcloud,或者是dubbo、zk、rabbitmq等等,兼容性考虑肯定是品牌机好。

OVERVIEW

Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.

Spring Cloud为开发者提供了快速构建相同模式微服务系统的工具(eg,配置中心,服务发现,熔断、智能路由,微代理,控制总线,一次性token,全局锁,选主,会话,集群状态)。分布式系统间的协作产生了一些锅炉板模式(可以理解为样板模式,套路模式),开发者使用Spring Cloud可以快速地构建基于这些模式的服务和应用。它们可以在任何分布式环境中很好地工作,包括开发人员自己的笔记本电脑,裸机数据中心以及Cloud Foundry等托管平台。

Features

Spring Cloud focuses on providing good out of box experience for typical use cases and extensibility mechanism to cover others.

Spring Cloud专注于为典型的用例和可扩展性机制(包括其他用例)提供良好的现成体验。

  • Distributed/versioned configuration 分布式/版本 控制
  • Service registration and discovery 服务注册与发现
  • Routing 路由
  • Service-to-service calls 服务间调用 RIBBON
  • Load balancing 负载均衡
  • Circuit Breakers 熔断 HYSTRIX
  • Global locks 全局锁
  • Leadership election and cluster state 选主和集群状态
  • Distributed messaging 分布式消息 rocket mq

此外还包括

  • 服务降级
  • 配置中心管理
  • 服务网关
  • 服务监控
  • 全链路追踪
  • 自动化构建部署 docker jekeins
  • 服务定时任务调度操作

一言以蔽之,spring cloud是分布式微服务架构的一站式整套解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶。

spring cloud集成相关优质项目推荐

http://img.cana.space/picStore/20201106110301.png

springcloud俨然已成为微服务开发的主流技术栈,在国内开发者社区非常火爆。

“微”力十足,互联网大厂微服务架构案例

京东的促销架构

http://img.cana.space/picStore/20201106110505.png

阿里

http://img.cana.space/picStore/20201106110647.png

京东物流架构

http://img.cana.space/picStore/20201106110741.png

基础服务

http://img.cana.space/picStore/20201106110858.png

SpringCloud技术栈

技术栈架构

http://img.cana.space/picStore/20201106111200.png

这是2020年以前的微服务方案

http://img.cana.space/picStore/20201106111259.png

随着技术的发展,一些解决方案也有了新的替换产品

版本选型

SpringBoot2.X版 和 SpringCloud H版

  • 旧版 1.5.9.REALEASE,Dalston.SR1,
  • 新版 boot 2.X版,cloud H版

SpringBoot官方已经强烈推荐 2.X版

SpringCloud采用英国伦敦地铁站的名称来命名,并由地铁站名称字母A-Z一次类推的形式发布迭代版本

SpringCloud是由许多子项目组成的综合项目,各子项目有不同的发布节奏,为了管理SpringCloud与各子项目的版本依赖关系,发布了一个清单,其中包括了某个SpringCloud版对应的子项目版本,为了避免SpringCloud版本号与子项目版本号混淆,SpringCloud版采用了名称而非版本号命名。例如Angel是第一个版本,Brixton是第二个版本。

当SpringCloud的发布内容积累到临界点或者一个重大BUG被解决后,会发布一个Service releases版本,俗称SRX版本,比如 Greenwich.SR2就是SpringCloud发布的Greenwich版本的第二个SRX版本

Adding Spring Cloud To An Existing Spring Boot Application

If you an existing Spring Boot app you want to add Spring Cloud to that app, the first step is to determine the version of Spring Cloud you should use. The version you use in your app will depend on the version of Spring Boot you are using.

The table below outlines which version of Spring Cloud maps to which version of Spring Boot.

Release Train Boot Version
Hoxton 2.2.x, 2.3.x (Starting with SR5)
Greenwich 2.1.x
Finchley 2.0.x
Edgware 1.5.x
Dalston 1.5.x

Spring Cloud Dalston, Edgware, and Finchley have all reached end of life status and are no longer supported.

更详细的版本对应选择请参考:https://start.spring.io/actuator/info

小结:

  • cloud:Hoxton.SR1
  • boot:2.2.2.RELEASE
  • cloud alibaba:2.1.0.RELEASE
  • java:java8
  • Maven 3.5以上
  • Mysql:5.7以上

停更引发的升级惨案

http://img.cana.space/picStore/20201106120955.png

重中之重 Nacos