前面我们介绍了Springboot,就不得不说他所处的大环境背景,微服务,什么是微服务呢,我们在这介绍一下,微服务其实在2014年的时候,有一个人,叫martin fowler,但是他不是微服务的创始人,只是他发布了一个关于微服务的博客,然后非常形象生动的,介绍了整个微服务的设计思想,然后微服务才慢慢的被熟知,就在他的个人主页里边https://martinfowler.com这里有一篇关于微服务的文章,https://martinfowler.com/microservices/也就是这篇文章"Microservices" became the hot term in 2014, attracting lots of attention as a new way to think about structuring applications. I'd come across this style several years earlier, talking with my contacts both in ThoughtWorks and beyond. It's a style that many good people find is an effective way to work with a significant class of systems. But to gain any benefit from microservice thinking, you have to understand what it is, how to do it, and why you should usually do something else.大家可以慢慢来阅读,通过整片文章的介绍,我们就能知道,什么是微服务,当然我们就不详细的来读这个了,What are 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微服务他其实是一个架构风格,比如14年的时候,martin fowler他来告诉我们,微服务他其实是一个架构风格,那么这种架构风格,有什么不同呢,他在我们开发一个应用的时候,应该是小服务的组合,一个应用应该是一组小型服务,而这些小型服务呢,每个服务都运行在自己的进程内,小型服务可以通过HTTP的方式,来进行沟通,轻量级的沟通方式,那么说起这个微服务,就得说一下之前的架构,单体应用,就是大名鼎鼎的All in one,所有的东西都写在一个引用里边,比如就像我们这个样子,我们要开发一个应用,不管是OA,CRM,ERP系统,我们以前都是来创建一个应用,将所有的页面,也放到这儿,包括代码也写在应用里面,然后把整个应用打包,war包部署到tomcat里边,我们这个应用访问数据库,提供前端访问的页面,那么这应用就跑起来,这是我们传统的WEB应用架构模式,而这种模式呢,也有非常多的优点,比如开发测试简单,由于都是一个应用,不牵涉到多个应用的互联互调,所以我们开发和测试都非常简单,而我们这个部署也简单,我们想要把应用部署上去,只需要把一个应用打成一个war包,就行了,然后把war包放到服务器上,不会给运维造成很大的困难,包括水平扩展,也是比较简单的,当我们应用的负载能力,不行的时候,我们把相同的应用,我来复制上十几份,放在10几个服务器里边,那么我们十几个服务器,都来跑我们这个程序,我们通过负载均衡机制,就可以来提高我们的并发能力,这个是我们以前单体应用,所有都在一个里面,他所带来的问题呢,这个是牵一发而动全身的问题

有可能因为我们一个小小的修改,整个应用都得重新部署,都得重新运行,当然更大的挑战,是我们日益增长的软件需求,我们现在随便一个应用,都有可能成为一个大型应用,而大型应用呢,不可能就一个应用,我们把它Allin one全写在里边,那这个应用有多大,该怎么维护,该怎么分工合作,这完全都是一些问题,所以接下来介绍微服务,所谓的微服务,就是打破以前的传统方式,我们以前将所有的功能单元,放在一个应用里边,然后我们把整个应用,部署到服务器上,如果负载能力不行,通过应用的水平复制,我把它扩展扩展,把同一份应用,复制过来,来进行访问,但是我们微服务提倡的是什么呢,把每一个功能元素,应该独立出来,这独立出来以后呢,我们可以通过功能元素的动态组合,比如我们这个功能元素,需要多一点,那我们在这个服务器里边,多放一点,这个少一点我们就少放一点,通过这些元素的动态组合,包括某一些功能,只有在有需要的时候,才进行复制,我们只是功能元素级别的问题,没有复制到整个应用,这样的话呢,一也是节省了我们的调用资源,我们把服务微化起来呢,每一个服务,都是一个可替换的,可独立升级的

我们在这再说一下,每一个功能元素,最终都是一个可独立替换,和独立升级的软件代码,这就是我们说的,这个微服务

服务到底有多微,Matin fowler在整个文章里面,也有谈及,他在这里与SOA进行了一个对比https://martinfowler.com/articles/microservices.html#MicroservicesAndSoa从微服务的起源介绍,整个对比,对比介绍,包括服务我们要微化成什么样,这一块都会有提及,那我们详细就不阅读了,包括这里也有一个中文的文档,大家来参照来阅读,服务微化其实是业内一直有争论的一个问题,详细参照微服务文档,微服务最终架构起来的应用,应该向这个样子

微服务之间的组件该怎么工作呢,我们将每一个功能单元都独立出来,每一个功能单元,比如这是结账,这是购物,这是用户模块,独立出来以后呢,接下来单元跟单元之间的互调,通过HTTP方式,进行互联互调,这样我们整个功能单元,不断的微化,就形成了我们整个应用网,那么这个应用网呢,功能单元和功能单元之间通过HTTP方式,进行轻量级通信,那么其实看到这个东西,就感觉跟我们,大脑的神经元工作一样的,每一个神经元和神经元,连接起来,如果是这么一张连接网,那我们后来可能会有一些问题,什么问题呢,那就是我们部署和运维,是相当不容易的,所以这就是一个大型的分布式应用,对我们部署和运维,带来了非常大的挑战,更重要的呢,在这儿,我们每一个功能单元,他都是一个完整的功能单元,比如这个功能单元,他来做一些缓存的,他需要来查缓存,他要连redis,这个功能单元呢,他是需要练数据库的,那这个功能单元可能是连其他的,那怎么办呢,可能每一个功能单元,如果真让我们来微化,创建这么多的项目,来微化这些服务的时候,那每一个项目呢,可能都是需要我们整合各种场景,如果按照以前的方式,再来部建应用,那估计这么多模块,我们光创建项目,搭建环境,可能一个月都做不完,那接下来怎么办呢,我们来到Springboot的官网,Spring的官网,Spring官网里面有一个经典的图,面对这么大型分布式的应用

我们怎么来构建一个应用,我们用Springboot,可以快速的来构建一个应用,然后这么大的分布式网之间,该怎么互调呢,我们用SpringCloud,我们进行网状互联互调,我们整个分布式做出来,那包括在分布式中间,要进行一些流式数据计算,Spring整个官方给我们想清楚了,应用的整个出路,从开始构建到大型分布式应用,包括在SpringCloud里边,我们也有一些应用架构,都帮你考虑好了

SpringBoot_入门-微服务简介相关推荐

  1. spring boot入门简介-微服务简介 03

    一,微服务简介 [按: 本文作者为笔者在ThoughtWorks的两位同事James Lewis和老马(Martin Fowler).老马已经邮件许可笔者进行翻译,并要求笔者在译文中提供原文链接和翻译 ...

  2. 微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关

    微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关 1. 微服务简介 1.1 服务架构演变 1.2 SpringCloud ...

  3. 《深入理解 Spring Cloud 与微服务构建》第一章 微服务简介

    <深入理解 Spring Cloud 与微服务构建>第一章 微服务简介 文章目录 <深入理解 Spring Cloud 与微服务构建>第一章 微服务简介 一.单体架构及其存在的 ...

  4. 微服务简介,Euraka,Ribbon,openFeign

    微服务简介 首先理解一个概念--高可用,即保证服务器的高度可用,减少停工时间:原来的单体应用只有一个服务器,所有服务(功能)都在该服务器上,如果出现某些突发情况,服务器挂了,整个系统就停工了.而微服务 ...

  5. SpringCloud微服务简介(一)

    SpringCloud微服务简介(一) Spring Cloud简单认识 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小 ...

  6. Spring Boot 入门——Spring Boot 简介||微服务简介

    Spring Boot 入门 1.Spring Boot 简介 Spring Boot来简化Spring应用开发,约定大于配置, 去繁从简,just run就能创建一个独立的,产品级别的应用 简化Sp ...

  7. SpringCLoud实战微服务之——微服务简介以及入门使用

    微服务概述 微服务是什么?微服务解决了什么问题?微服务有什么特点? 单体架构是什么? 一个归档包包含了应用所有功能的应用程序,我们通常称之为单体应用.架构单体应用的架构风格,我们称之为单体架构,这是一 ...

  8. SpringBoot_入门-Spring Boot简介

    SpringBoot入门知识,首先我们会对Springboot和微服务,相关的概念,来做一个简介,接下来我们来编写一个SpringBoot的helloworld程序,然后通过分析helloworld, ...

  9. Spring Cloud微服务简介

    1. 基础知识1 什么是微服务架构? 与单体系统的区别 如何实施微服务? 微服务优缺点 为什么选择Spring Cloud? 微服务技术选型 为什么选择Spring Cloud? Spring Clo ...

最新文章

  1. 单元测试框架怎么搭?快来看看新版Junit5的这些神奇之处吧!
  2. 了解EF CodeFirst的Migrator功能与Migrator.Net对比
  3. 员工考勤信息管理小程序
  4. 【Flutter】Icons 组件 ( FlutterIcon 下载图标 | 自定义 svg 图标生成 ttf 字体文件 | 使用下载的 ttf 图标文件 )
  5. 近乎于“妖”!浅谈《山海镜花》的美术风格与设计
  6. 【Linux系统编程】线程与进程的比较
  7. mysql galera 安装_MySQL Galera 集群的安装过程
  8. Python线程编程—同步队列
  9. 如何在Slack里连接微软One Drive
  10. Android的Fragment介绍
  11. ZOJ 3300 Mahjong DFS暴力解决。。
  12. 算法题学到的一些小语言细节
  13. Sytem.String[] 动态数组的声明
  14. 黄聪:JQUERY的datatables插件,Date range filter时间段筛选功能
  15. js中map和python中的map
  16. Android 教你打造炫酷的ViewPagerIndicator
  17. 图片显示不出时显示默认图片
  18. 淘宝购买win10激活码流程
  19. 学习笔记(1):Echarts+Asp.Net+Sql Server报表开发视频教程-折线图和曲线图
  20. 高数_第6章无穷级数__绝对收敛_条件收敛

热门文章

  1. 【转载】SDRAM时钟相移估算
  2. ASP.NET开源MVC框架Vici MVC(三)HELLO WORD
  3. KMyMoney:全体理财好管家
  4. 结队项目之需求分析与原型设计
  5. jQuery实现的简单分页功能的详细解析
  6. 陶哲轩实分析习题9.1.1
  7. shell脚本开发总结
  8. MATLAB代写要求应该怎么写,matlab/simulink程序代写
  9. zookeeper注册中心
  10. Apollo基础设置