istio springcloud_手牵手一起学Springcloud(1)微服务这么流行,你理解了嘛?

在前一段时间,我们实验室的项目开始变得越来越麻烦,代码也越来越臃肿,一个人兼顾前后端的全栈开发,实在是力不从心,没有一点点幸福感,于是迫切的想要解放生产力,放飞自我,因此开始决定重构项目,改用之前学习过但是一直没用过的微服务架构。这篇文章将从以下几个角度来学习Springcloud入门的一些相关知识。

1、微服务是什么?

2、微服务和微服务架构的区别是什么?

3、微服务技术有什么?

4、微服务的优缺点是什么?

5、为什么选择Springcloud作为微服务架构?

在写本系列文章之前,我也看了很多网上的大佬那些微服务系列的文章,他们写的都非常好,别人问我关于一些微服务的技术文章时,我也都会把那些我认为写的好的文章推送给他们,但是存在一个问题,那就是刚刚接触微服务的同学,一开始觉得写的通俗易懂而且确实很简单,但是越往后看越看不懂。因此才萌生出自己写一套循序渐进的文章。

一、从单体结构说起

本来想以自己的项目为例,但是由于涉及一些学校不能外传的信息,所以换一个常见的例子。我们以餐厅卖饭为例

77a3963cdbc146040ec47d43305c4b1d.png

从上图我们会发现,收银、做饭、洗碗等操作都由小张一个人完成。随着服务项目的不断复杂,顾客人数的不断增多,这会带来大量的问题。

1、技术太复杂,有时候往往会牵一发而动全身,代码耦合性太大,修改起来很麻烦。

2、拓展能力弱,功能模块代码紧耦合,无人进行有效拓展

3、维护成本太高,一旦出一个问题,修改很难受。

当然还有很多很多的缺点,为此继续一种技术去改善这个问题。什么技术呢?就是我们今天所说的微服务架构。

二、什么是微服务

由于业界还没有对微服务的概念有一个统一的解释,但是你可以这样去理解,微服务其实就是一种思想,这个思想是:考虑如何把一个复杂的项目拆分成一个个独立的小项目。就好比是电脑中的进程,拆分成一个个小的线程一样。

再举个

8ee29803cf615ceaa055e84e26ab92a6.png

现在,小张每一个服务业务都让不同的人来负责,这就大大简化了人的劳动程度。

三、微服务和微服务架构的区别是什么

他们俩的区别你可以这样去理解,微服务就好比是指导思想,微服务架构就是根据这个指导思想实施的方案。就好比是古代的时候,皇帝说要减轻赋税,然后下面的大臣根据这个指导思想去实施具体的方案。

当然这里还有更加标准化的回答:

微服务架构是⼀种架构模式,它提倡将单⼀应⽤程序划分成⼀组⼩的服务,服务之间互相协调、互相配合,为⽤户提供最终价值。每个服务运⾏在其独⽴的进程中,采⽤轻量级的通信机制互相协作

如果你能理解刚刚皇帝的那个例子,应该就能理解微服务架构的含义了。

四、微服务技术有什么?

微服务的技术还是很多的,python、c++等等都有,不过因为是专注于java,所以还是主要聊聊java中的微服务技术。

Dubbo被重启之后又焕发出了新的光彩,但是跨语言支持不足是它的一个弱项,另外功能比较少,之后服务治理相关的技术,完全用好这个框架的门槛比较高。这对于初学者来说开发难度还是比较大的。目前dubbo已经被阿里捐献给Apache了,Apache也正在致力打造属于dubbo的微服务体系,但是从这两年多的发展情况来看,并不乐观。

Netflix微服务架构经过多年生产验证,最终形成一整套开源的微服务基础组件,统称 NetflixOSS,Netflix 的成功经验开始被业界认可并推崇,于是Pivotal 将 NetflixOSS 开源微服务组件集成到其 Spring 体系,推出 Spring Cloud 微服务开发技术栈。随着时间的推移目前基本上也占据了半壁江山。本系列教程也会围绕着Springcloud来展开。

其他的微服务技术比如springcloud Alibaba、istio等等在这里就不对比了,没有大规模使用的还有待观察。一旦流行了再学习也不迟。

五、微服务的优缺点是什么?

既然要使用微服务,微服务有什么优点呢?他的优缺点你可以对比着单体结构的缺点来记忆。

1、维护起来比较简单,毕竟每一个服务只关注于项目中的一个小模块

2、拓展性好,有新功能需要添加的时候,那就再建立一个微服务,和之前的互不干扰。

3、每一个微服务都有着自己的数据库

优点真的是太多了,能想到的就这些吧。

当然还有很多缺点,咳咳,缺点不说太多,要不然你觉得微服务不好了,缺点那就是一个个微服务构成了分布式系统,出现了分布式系统的各种问题。

六、为什么选择Springcloud?

说实话,一开始我在认识微服务的时候,完全不理解他的特点是什么含义,只有当学习了一遍之后,重新回过头来看,才发现,原来是这样呀。不过在这里你最好先记住。否则以后你连回头的想法都没:

1、约定大于配置。

2、适用于各种环境

3、整合了Springboot的优点

4、轻量级组件

5、功能齐全

6、灵活

优点太多,数不过来,所以你先记住这几条,看了几本书发现基本上也是这样介绍的。

这篇文章是我的微服务系列的第一篇文章,下一篇文章将主要开始介绍Springcloud的每一个组件的功能,以及为什么要有这样一个组件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力改变物体形状举例_人教版八年级物理下册第七章《力》知识点大全

力是物体对物体的作用,比如推土机推动了土。知识点1:力1.概念:是物体对物体的作用叫做力。2.特点:物体间力的作用是相互的。3.力的单位和表示符号:(1)力的单位:牛顿,简称牛(N)。托起一个鸡蛋大约…

bool类型数组转换成一个整数_Go 学习笔记 02 | 基本数据类型以及 byte 和 rune 类型...

一、基本数据类型unsafe.Sizeof() 查看不同长度的整型在内存中的存储空间。 类型转换,高位向低位转换要注意溢出。数字字面量语法。64 位系统中 Go 语言中浮点数默认是 float64。二、Golang 中 float 精度丢失问题利用第三方包:http://github.com/shopsp…

ldap基本dn_LDAP 中 DN CN DC OU

DN 的英文名称是(distinguished name),直接翻译过来就是专有名称。简单的就可以理解为一个路径就对了。这个路径可以指向 OU ,也可以指到 CN。其中 DN 有三个属性,分别是CN,OU,DC。DC (Domain C…

滴答定时器的计数模式_【高手私藏】STM32学习笔记:SysTick滴答时钟

今天我们来说说SysTick定时器。SysTick定时器在从参考手册中根本没有介绍。我费了九牛二虎之力才在一个犄角格拉里找到SysTick定时器的英文版的说明。在Cotex-M3有介绍,为什么要找STM32的介绍,是因为功能设置上还有点区别。首先看一下SysTick定时器的作用…

多选框实现全选_Angular1.x-checkbox-全选amp;单选amp;多选

ng-checked&#xff1a;Angular里ng-checked属性影响复选框的状态&#xff0c;值>true则复选框选中&#xff0c;值>false则取消选中。HTML:<div class"col-lg-4"><fieldset><legend>选题列表</legend><div class"table-respon…

2020笔记本性价比之王_什么笔记本性价比高?2020性价比最高的笔记本电脑

阅读本文前&#xff0c;请您先点击上面的蓝色字体&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到最新文章了。每天都有分享。完全是免费订阅&#xff0c;请放心关注。注&#xff1a;本文转载自网络&#xff0c;不代表本平台立场&#xff0c;仅供读者参考&…

前端请求接口post_接口自动化测试-WEB资讯专栏-DMOZ中文网站分类目录

为什么UI自动化维护成本更高&#xff1f;因为前端页面变化太快&#xff0c;而且UI自动化比较耗时(比如等待页面元素的加载、添加等待时间、定位元素、操作元素、模拟页面动作这些都需要时间)为什么接口自动化维护成本较低&#xff1f;因为接口较稳定&#xff0c;接口的响应时间…

Windows虚拟服务器vm,史上最详细的虚拟机VMware12安装Windows7教程 | 心塞塞

首先你电脑必须安装了 VMware &#xff0c;推荐版本 VMware12 或者 VMware 11 版本&#xff0c;然后你还需要一个系统镜像&#xff0c;可以通过下面链接下载 Win7 的镜像&#xff0c;复制链接&#xff0c;打开迅雷新建任务即可下载&#xff1a;Windows7 64位1ed2k://|file|cn_w…

方法 手写promise_JS探索-手写Promise

无意间在知乎上刷到Monad这个概念&#xff0c;去了解了一下&#xff0c;前端的Promise就是一种Monad模式&#xff0c;所以试着学习一下手写一个Promise.本文内容主要参考于只会用&#xff1f;一起来手写一个合乎规范的Promise​www.jianshu.comPromise是什么所谓Promise&#x…

12如何隐藏dock栏_一键隐藏 iPhone 刘海和底部 Dock 栏,简洁又好看

技能&#xff1a; 隐藏刘海和底部dock 栏难度系数&#xff1a;2颗星适用系统&#xff1a;iOS 13(部分非iOS13也适用)最近&#xff0c;小雷打开手机&#xff0c;看到最多的关键词&#xff0c;就是&#xff1a;iOS13又双叒叕更新了。。。而且也看到不止一位网友晒这个有趣的新功能…

宝塔php安装那个合_使用宝塔面板安装nextcloud | 启用本地存储 | 安装smbclient

宝塔面板安装nextcloud | 启用本地存储使用宝塔面板搭建nextcloud服务后&#xff0c;在设置外部存储时总是无法启用本地存储。问题1&#xff1a;提示&#xff1a;“smbclient” 未安装。无法挂载 "SMB / CIFS", "SMB / CIFS 使用 OC 登录信息"。请联系管理…

mysql groupby 拼接_mysql groupby 字段合并问题(group_concat)

在我们的日常mysql查询中&#xff0c;我们可能会遇到这样的情况&#xff1a;对表中的所有记录进行分类&#xff0c;并且我需要得到每个分类中某个字段的全部成员。上面的话&#xff0c;大家看起来可能不太好懂&#xff0c;下面举一个例子来给大家说明。现在我们有一张表&#x…

mysql聚集索引 myisam_一句话说清聚集索引和非聚集索引以及MySQL的InnoDB和MyISAM

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。https://blog.csdn.net/21aspnet/article/details/89303988聚集索引和非聚集索引以及MySQL的InnoDB和MyISAM经常遇到有人向我咨询这个问题&#xff0c;其实呢&#xff0c;网上帖子很多&#xff0c;也…

ue4插件导入导出_Blender到UE4的无缝衔接

Hello . 大家好本文给大家介绍一下Send To Unreal插件我是Vee1简介Send To Unreal是Epic官方开发的用于Blender和UE4快速同步的插件&#xff0c;支持静态物体、骨骼物体、动画等等。省去了Blender导出-选择目录文件-UE4导入这个中间步骤&#xff0c;效率提升不是一般得多。插件…

mysql点击计数器_MySql计数器,如网站点击数,如何实现高性能高并发的计数器功能...

MySql计数器&#xff0c;如网站点击数&#xff0c;如何实现高性能高并发的计数器功能Clicks: 5338 Date: 2014-03-29 23:30:42 Power By 李轩LaneTagMysql计数器高性能现在有很多的项目&#xff0c;对计数器的实现甚是随意&#xff0c;比如在实现网站文章点击数的时候&#xff…

python 微服务架构_微服务架构(Python)

在后端开发方面&#xff0c;Java的使用呢要远比Python广泛&#xff0c;所以Java的微服务框架非常流行&#xff0c;但Python的微服务框架却很少有人问津。在大多数需要微服务的场合下直接用Java的各种工具就可以解决问题&#xff0c;但如果业务代码使用Python写的&#xff0c;那…

vue修改入口文件名字_webpack打包vue项目,可修改配置文件

问题&#xff1a;vue项目打包完成后&#xff0c;如需改变配置文件中的信息&#xff0c;比如域名修改(如下图config.js)&#xff0c;是不可能在配置文件中直接更改的&#xff0c;因为配置文件是前端写死的&#xff0c;这时只能手动更改项目中的配置&#xff0c;然后重新打包npm …

java判断正整数正则_Java正则验证正整数的方法分析【测试可用】

本文实例讲述了Java正则验证正整数的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;package des;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Num {/*** param args*/public static void main(String[] args) {// TODO Auto-ge…

java 官网下载jdk源码_openJDK之如何下载各个版本的openJDK源码

如果我们需要阅读openJDK的源码&#xff0c;那么需要下载&#xff0c;那么该去哪下载呢?现在JDK已经发展到版本10了&#xff0c;11已经处于计划中&#xff0c;如果需要特定版本的openJDK&#xff0c;它们的下载链接在哪呢?1.openJDK的项目图1 可以看到有openJDK6、openJDK7、…

java 最大分词算法_Java实现的最大匹配分词算法详解

本文实例讲述了java实现的最大匹配分词算法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;全文检索有两个重要的过程&#xff1a;1分词2倒排索引我们先看分词算法目前对中文分词有两个方向&#xff0c;其中一个是利用概率的思想对文章分词。 也就是如果两个字&#x…