SpringBoot-01-SpringBoot介绍及官方文档/微服务/分布式/云原生

文章目录

        • SpringBoot特点
        • SpringBoot优点
        • SpringBoot缺点
        • SpringBoot2两套解决方案:
        • SpringBoot文档介绍
        • 什么是微服务
        • 分布式
          • 分布式的困难
          • 分布式的解决
        • 云原生 CloudNative

SpringBoot的底层就是Spring.

SpringBoot特点
  • Microservice:微服务
  • Reactive:响应式编程,采用异步非阻塞的方式,应用之间构建异步数据流方式(占用少量资源),构建高吞吐应用
  • Cloud:未来拆成微小服务,SpringCloud 分布式
  • Web apps:web开发
  • Servless:无服务开发 Faas 函数即服务上云平台 ,按量计费。
  • Event Driven:让系统模块分布式构建出实时的数据流 通过响应式方式,完成高吞吐的业务。
  • Batch:批处理业务。
SpringBoot优点
  • Create stand-alone Spring applications : 创建独立Spring应用

  • Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files) : 内嵌web服务器。以前是打成war包运行在Tomcat服务器上,现在是内置Tomcat直接运行

  • Provide opinionated ‘starter’ dependencies to simplify your build configuration : 自动starter依赖,简化构建配置。以前是要弄一堆jar包,现在只需要导入web场景,场景下的这一堆json等包都会帮我们导入,而且会控制版本,保证不会出现问题。

  • Automatically configure Spring and 3rd party libraries whenever possible : 自动配置Spring以及第三方功能。mybatis,springmvc等这些配置项自动配好,专注于业务。

  • Provide production-ready features such as metrics, health checks, and externalized configuration : 提供生产级别的监控、健康检查及外部化配置。运维,监控应用指标和健康。运维在外部修改配置,无需源代码修改。

  • Absolutely no code generation and no requirement for XML configuration : 无代码生成、无需编写XML。自动配置无需其他代码

SpringBoot缺点
  • 封装很深,内部原理复杂,不易精通
  • 迭代快 双面剑
SpringBoot2两套解决方案:
  • 响应式 构建异步数据流进行响应式开发
  • Servlet 老的
SpringBoot文档介绍

SpringBoot文档:进入Spring官网 顶部菜单Project->SpringBoot

SpringBoot-01-SpringBoot介绍及官方文档/微服务/分布式/云原生_第1张图片

官方文档模块分类解释:

  • Getting Started : 介绍SpringBoot,快速体验SpringBoot
  • Using Spring Boot : 自动配置原理,配置怎么写,依赖
  • Spring Boot Features(高级特性) : 多环境配置,日志,安全,缓存,测试
  • Spring Boot Actuator(监控)
  • Deyloying Spring Boot Applications : 平台部署
  • Spring Boot CLI : 命令行初始化SpringBoot 没啥用
  • Build Tool Plugins : SpringBoot构建期间使用的插件,Maven,Gradle
  • “How-to” Guides : 特别推荐,小技巧 , 应用开发技巧,配置技巧,嵌入式服务器,数据存取

附录内容

  • Application Properties 说明SpringBoot到底能配置哪些东西:缓存,邮件开发,Json,数据库访问,事务等等
  • Configuration Metadata:IDE关注的,代码自动提示功能
  • Auto-configuration Classes:SpringBoot有哪些自动化的配置。
  • Test Auto-configuration Annotations : 测试注解
  • Dependency Versions : 依赖的版本号

版本更新内容:https://github.com/spring-projects/spring-boot/wiki#release-notes

什么是微服务

微服务原文翻译:https://blog.csdn.net/u013970991/article/details/53333921

James Lewis and Martin Fowler (2014) 提出微服务完整概念。https://martinfowler.com/microservices/

In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.-- James Lewis and Martin Fowler (2014)

  • 微服务是一种架构风格
  • 一个应用拆分为一组小型服务
  • 每个服务运行在自己的进程内,也就是可独立部署和升级
  • 服务之间使用轻量级HTTP交互
  • 服务围绕业务功能拆分
  • 可以由全自动部署机制独立部署
  • 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术

微服务(设计)->分布式(部署)

微服务是架构设计方式,分布式是系统部署方式.(通俗来说,假设去大饭店吃饭就是一个完整的业务的话, 饭店的厨师、洗碗阿姨、服务员就是分布式; 厨师、洗碗阿姨和服务员都不止一个人,这就是集群; 分布式就是微服务的一种表现形式,分布式是部署层面,微服务是设计层面。)

分布式

SpringBoot-01-SpringBoot介绍及官方文档/微服务/分布式/云原生_第2张图片

分布式的困难
  • 远程调用 HTTP在各个服务器之间交流
  • 服务发现 可能会有服务器出现故障,在一组处理相同服务的服务器里需要寻找服务没问题的服务器
  • 负载均衡 一组处理相同服务的服务器中该选择哪一个,涉及负载均衡
  • 服务容错 有在代码指定的处理请求的服务器出现问题后的后续步骤,比如选择的服务器出现网络问题,选择其他服务器或是出错后返回一个数据之类的
  • 配置管理 服务的配置放在配置中心中,不需要改源代码,改配置中心,然后服务器去同步配置中心的配置
  • 服务监控
  • 链路追踪 服务器A调用B,B调用C,整个链路出现问题后需要知道是链路中的哪一块出现了问题。
  • 日志管理
  • 任务调度 触发定时任务,是以串行方式还是并行方式
分布式的解决

SpringBoot(快速部署应用)+SpringCloud(连接微服务,互连互调)

img

云原生 CloudNative

概念解释:https://www.jianshu.com/p/a37baa7c3eff

​ https://zhuanlan.zhihu.com/p/150190166

Pivotal最新官网对云原生概括为4个要点:DevOps+持续交付+微服务+容器符合云原生架构的应用程序应该是:采用开源堆栈(K8S+Docker)进行容器化,基于微服务架构提高灵活性和可维护性,借助敏捷方法、DevOps支持持续迭代和运维自动化,利用云平台设施实现弹性伸缩、动态调度、优化资源利用率。

SpringBoot-01-SpringBoot介绍及官方文档/微服务/分布式/云原生_第3张图片

应用上云

  • 服务自愈 如果相关服务器挂了,能不能再拉另一个服务器来工作
  • 弹性伸缩 在流量高峰期自动调用更多服务器 低的时候再释放
  • 服务隔离 服务器内服务故障后不会影响其他服务器内的服务
  • 自动化部署
  • 灰度发布 A调B,B全部要更换成2.0版本,可能会出现故障,A的链路就断了,在一组B中替换一个为2.0版本,因为是负载均衡,如果调用没有问题,再逐步将1.0版本全部更换为2.0版本。
  • 流量治理 限制进入服务器流量,动态扩缩等

上云解决方案
SpringBoot-01-SpringBoot介绍及官方文档/微服务/分布式/云原生_第4张图片

你可能感兴趣的:(SpringBoot,spring,boot)