最近在进行项目架构的调整,准备从springmvc转换到spring cloud,也就是微服务框架。自然就需要将原有的项目转化为spring boot形式。

微服务

在了解spring boot之前,先了解一下微服务的概念。在刚开始的时候我简单理解微服务就是将服务切割放在不同的线程,后来查看资料之后,有了更深刻的理解。

What 微服务是什么

简单来说,微服务是根据业务来拆分项目独立部署并且隔离开来,通过轻量的API调用不同的服务,也就是组件。这句话的核心在于拆分项目,这就定义了责任;API调用,这就定义了通信方式。理解这两点就可以基本明白微服务是什么。

这时候自然而然我就对比了一下我们目前的三层架构,举个例子:三层架构就好像大超市一样,顾客就相当于用户,顾客进入沃尔玛超市后进行购物,在这个过程中,超市在没开门前要进货、整理货物、打开大门等(Tomat启动)。如果想增加商户,就得开新的店面(增加新的功能模块)。要进行安全演习和测试,就得全局设定(测试)。人太多了,就只能对整个超市进行疏散人流(负载均衡)等等,这都是以整体的思维来看待问题。而微服务将整个超时拆成不同的地方,比如菜市场、书店、五金店等等,然后不同的店铺都是独立的个体,大部分问题都是独立解决。这就是思维的不同,一个是整体思维,一个是独立责任思维。

Where 微服务适用什么地方

微服务代表着拓展性,随着云服务的概念不断深入人心,微服务与之结合能够大大降低企业的运营成本,其团队组织也更倾向于全能。那么微服务应当适用在什么地方呢,任何东西都有其两面性,我认为整体性在项目复杂度不高的情况优于微服务,因为其投入不会太大,拓展性的需求不高,相比于分布式的微服务更为稳定。之后随着项目复杂度以及运维要求增加,这个时候的微服务优越性不断体现,那我们就可以使用微服务架构来进行开发。就比如以前京东可以采用整体性架构来完成客服模块,但是随着其体量越来越大,运营成本越来越高,功能要求越来越多,那么转换成微服务架构收益远远高于整体性架构。

When 微服务适用于什么时间段

根据上一段的结论,总结其适用于项目复杂度高、运维成本高、功能要求多的时间段。

Who 微服务的团队怎么样

根据我的了解,以亚马逊的微服务团队(十二人)为例,他们每个人都身经百战,具有非常高的技术素质和能力,他们不仅能够进行编程,也能完成运维工作。因而微服务团队经常是一个完整的项目团队,有能力完成一个单独的项目,从前台到后台,从数据库到服务器,都能提供支持。

Why 为什么要使用微服务

上学时候做阅读题经常会要求从优点缺点来分析一个问题,同样按照这种方法来分析微服务。
微服务的优点:
1、解决复杂性问题,容易开发、理解和维护组件,形成单体型的应用,关注于一个业务功能。
2、每个微服务都可以由单个团队开发。
3、微服务是解耦的,它们之间的通信是以轻量api的方式进行通信。
4、微服务因为是独立,所以不同微服务可以采用不同的技术来实现,易于发挥技术的长处。
缺点:
1、通信及延迟问题,这是我第一想到的问题,因为不同的线程之间的通信是受网络制约的。
2、团队和运维要求,因为每个微服务都需要团队支持,这个团队素质要高,能够完成独立项目,人就很重要了
3、同步异步问题,不同服务之间的数据处理及事务处理

总而言之,优点在于其独立的思想,能够发挥出高拓展新、耦合度低、专注于业务,缺点也在于其独立的思想,如何让它们形成整体是个问题。

Spring boot简介

理解了微服务架构的思想之后,我们再来看看为快速开发领域而生的Spring boot。

spring boot是伴随spring4推出,为了帮助spring摆脱“配置地狱”的微框架。所以可以这么说,spring boot是Spring为了简化配置,在快速应用开发领域成为领导者而开发的微框架,因为其很多东西跟spring有相同的地方,从原有的springmvc转化到spring boot,其实就是各种配置以spring boot的形式重写,另外需要处理各种jar包,将不需要的jar包依赖去除。其价值要在Dubbo或者spring cloud下才能发挥更为重要的作用。

其核心思想就是“习惯大于配置”,所以很多东西它都帮助配置好了,目的就是快速搭建一个可运行的项目。当然如果你认为不需要配置就错了。其实很多东西还是需要自己配置的,只是配置手法和操作被简化了。

我感觉就是Spring的简化版本,在理解或用过Spring配置之后使用它真的很轻松,就是将注解替代xml。

我通过百度配置方式的方法将项目中的两个模块都转化为了Spring boot方式,配置简单很多,但是并没有感受到微服务的优越性,接下来继续学习spring cloud吧。

转载于:https://www.cnblogs.com/ITflying/p/7890889.html

spring boot 及微服务 学习笔记相关推荐

  1. Spring Cloud与微服务学习总结(8)——Spring Boot、微服务架构和大数据治理三者之间的故事

    前言 微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物.互联网时代的产品通常有两类特点:需求变化快和用户群体庞大,在这种情况下,如 ...

  2. Spring boot、微服务、OAuth、OpenID的爱恨情仇!

    在本文中,我们学习如何使用Spring boot轻松配置和部署微服务,然后使用OAuth和OpenID保护它们. 在微服务体系架构中,其中较大的应用程序由多个较小的服务组成,每个服务都有自己的目标,它 ...

  3. Spring微服务实战第2章 使用Spring Boot构建微服务

    第2章 使用Spring Boot构建微服务 基于微服务的架构具有以下特点. 有约束的--微服务具有范围有限的单一职责集.微服务遵循UNIX的理念,即应用程序是服务的集合,每个服务只做一件事,并只做好 ...

  4. 使用Spring Boot构建微服务(文末福利)

    本文主要内容 学习微服务的关键特征 了解微服务是如何适应云架构的 将业务领域分解成一组微服务 使用Spring Boot实现简单的微服务 掌握基于微服务架构构建应用程序的视角 学习什么时候不应该使用微 ...

  5. Java微服务学习笔记(一):微服务架构的概念理解

    Java微服务学习笔记 Tips:入门学习时粗略整理,仅供参考 (一):架构的基础理解 文章目录 Java微服务学习笔记 前言 一.微服务是什么? 二.常用开源微服务框架演化 1. Dubbo 2. ...

  6. 一文读懂spring boot 和微服务的关系

    欢迎访问网易云社区,了解更多网易技术产品运营经验. Spring Boot 和微服务没关系, Java 微服务治理框架普遍用的是 Spring Cloud. Spring Boot 产生的背景,是开发 ...

  7. 一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事

    微服务架构 微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物.互联网时代的产品通常有两类特点:需求变化快和用户群体庞大,在这种情况 ...

  8. 一文透析 Spring Boot、微服务架构和大数据治理三者之间的故事

    微服务架构 微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物.互联网时代的产品通常有两类特点:需求变化快和用户群体庞大,在这种情况 ...

  9. Spring Cloud与微服务学习总结(9)——Spring Cloud面试题汇总

    为什么需要学习Spring Cloud 不论是商业应用还是用户应用,在业务初期都很简单,我们通常会把它实现为单体结构的应用.但是,随着业务逐渐发展,产品思想会变得越来越复杂,单体结构的应用也会越来越复 ...

最新文章

  1. 从0梳理1场时间序列赛事!
  2. python命令大全-深度学习中python常用命令
  3. linux文件层级、目录、文件基本操作介绍
  4. lnmp下配置虚拟主机
  5. Java EE中的RESTful计时器
  6. Android官方开发文档Training系列课程中文版:创建自定义View之View的交互
  7. 新年第一天,3000台Apache服务器宕机
  8. 【Java】Servlet原理
  9. jad反编译成java,反编译工具jad的使用(将*.class文件变成*.java文件,附带jad.zip包)...
  10. android4k分辨率,4k手机有哪些 4k分辨率是多少【图文】
  11. [Noi2015]小园丁和老司机
  12. Tiktok shop小店注册以及如何一键上传产品批量上货铺货
  13. 数学建模-模糊综合评价分析法原理笔记
  14. 开封文化艺术职业学院学报杂志社开封文化艺术职业学院学报编辑部2022年第4期目录
  15. 详谈Activity生命周期函数调用时机
  16. 父亲节的海报设计了吗?
  17. 网吧电脑算完整的计算机系统么,怎么看网吧电脑的系统和位数?
  18. Android开源库V - Layout:淘宝、天猫都在用的UI框架,赶紧用起来吧!
  19. 放飞自我的体验,真无线耳机该如何让选择
  20. androidstudio配置夜深模拟器

热门文章

  1. 以下用于数据存储领域的python第三方库是-南开《网络爬虫与信息提取》19秋期末考核题目【标准答案】...
  2. python怎么导入文件-Python 导入文件过程图解
  3. python四大软件-Python实用模块(二十)Apscheduler
  4. 如何使用python画折线图-python使用matplotlib绘制折线图教程
  5. 零基础python入门书籍-零基础如何学好python?推荐6本入门书籍,帮你打基础
  6. python经典好书-python经典书籍推荐
  7. python语言入门编程猫-编程猫推出海龟编程器,打造Python教育产品矩阵
  8. python开发的优秀界面-tkinter python(图形开发界面)
  9. python中requests库的用途-Python.Requests库的基本使用
  10. python网课一般多少钱-Python培训网课一般学费多少?毕业生能承担吗?