身边的人都说微服务好,好在哪?

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012702547/article/details/99523566

微服务这么火,多少人多少公司都想试试水。

松哥了解到很多小伙伴在找 Java 开发工作时,如果这个公司用的微服务架构,就觉得很牛逼,进去了很有前景,如果没用微服务,甚者还用的是以前的 SSH ,就会觉得没前景,不想去。由此可见微服务在大家心中的分量。

不过话说回来,并非每一个项目都是适合用微服务架构,也并非每一个公司都需要微服务架构。松哥有个朋友在某网红茶公司做微服务开发,新项目架构师强行上马微服务,结果项目上线后,一个小小的变更都要修改许多服务才能解决,没办法,架构师只能卷铺盖走人了,项目又变回了单体应用。

我觉得这样的例子不是个案,项目要不要上马微服务,还是要看项目和公司的具体情况,不盲目,不跟风。

上周和大家聊了单体应用存在的问题:

今天我就来和大家聊一聊微服务到底有哪些好处,又有哪些弊端。

微服务的优势

大项目可以持续交付

微服务将一个大系统拆分成很多个互相独立的服务,每一个服务都可以由一个团队去完成,并且配备自己的开发、部署,而且可以独立于其他的团队。每一个团队开发的微服务都可以由自己的代码仓库、以及部署流水线等,互不相扰。

在微服务中,一个大项目被拆分成 n 多个小项目,每一个小项目都可以非常方便的进行测试、部署,而不会牵一发而动全身,原本需要全员高度警戒的项目上线,现在分散到不同的团队中去完成。

松哥六月底参加深圳的一个线下技术活动,某在线编程的 CEO 谈到他们公司的发版,说:“我说话的这会儿,我们可能就有新版本在发布。”,这句话令我印象深刻。传统的单体应用,没人敢这么搞,微服务时代,这一切才变得可能。

易于维护

这个不必多说,相信大家都理解。

一个传统的单体应用,如果你新接手,一时半会还不一定能理出一个头绪,而如果是微服务,由于比较小巧玲珑,一个微服务只负责一件事情,很容易理出头绪,然后上手开发。

并且相对于单体应用,微服务规模都比较小,无论你用 Eclipse 还是 IDEA,项目启动、测试速度都比较快。

服务可以独立扩展

独立扩展,可以让我们充分使用硬件资源。

传统的单体应用,所有的功能模块都写在一起,有的模块是 CPU 运算密集型的,有的模块则是对内存需求更大的,这些模块的代码写在一起,部署的时候,我们只能选择 CPU 运算更强,内存更大的机器,如果采用了了微服务架构,不同的系统独立部署,压力大的时候,可以独立进行集群化部署,这些操作都不会影响到已经运行的其他微服务,非常灵活。

更强的容错性

由于每一个微服务都是独立运行的,处理得当,我们在微服务架构中可以实现更好的故障隔离。当一个微服务发生问题时,例如内存泄漏,不会影响到其他的微服务。

可以灵活的采用最新技术

传统的单体应用一个非常大的弊端就是技术栈升级非常麻烦,这也是为什么你经常会见到用 10 年前的技术栈做的项目,现在还需要继续开发维护。不是他们不愿意升级,而是升级实在是太麻烦了,伤筋动骨。

而在微服务架构中,每一个服务都是独立运行的,单个微服务的技术升级则非常容易。你可以随意去尝试你喜欢的最新技术。因为试错成本很低,因此大家可以尽情的玩耍。

微服务的弊端

事物都有两面性,微服务也有一些挑战,这些挑战性问题如果处理不好,你使用微服务可能反而适得其反。那么都有哪些问题呢?

  • 服务的拆分

个人觉得,这是最大的挑战,我了解到一些公司做微服务,但是服务拆分的乱七八糟。这样到后期越搞越乱,越搞越麻烦,你可能会觉得微服务真坑爹,后悔当初信了松哥的说微服务好的鬼话。

  • 分布式系统带来的挑战

记得以前在网上看到过一个段子:

没用分布式架构之前,你只有一个问题:并发性能不足。用了分布式架构,多出了一堆问题:数据如何同步、主键如何产生、如何熔断、分布式事务如何处理......。

这个段子形象的说明了分布式系统带来的挑战。

  • 多个研发团队的协调管理

传统的单体应用开发,一个团队管理好就行了,现在不同的团队开发不同的微服务,要协调多个团队共同配合,才能做好微服务开发,这对项目管理提出了挑战。

好了,本文就先说这么多,大伙可以留言说说你的项目有没有使用微服务,出于什么样的考虑而使用了目前的架构呢?

参考资料:

[1] Chris Richardson.微服务架构设计模式[M].北京:机械工业出版社,2019.

640?wx_fmt=gif

条件注解,Spring Boot 的基石!

Spring 中用 XML 装配 Bean,竟然有五种姿势!

天天吹微服务,单体应用有啥不好?

手把手带你入门 Spring Security!

MyBatis 中 @Param 注解的四种使用场景,最后一种经常被人忽略!

给数据库减负的八个思路

Spring Boot 邮件发送的 5 种姿势!

为了帮助前后端分离的新手,我做了一次大胆的尝试!

公司倒闭 1 年了,而我当年的项目上了 GitHub 热榜

Spring Boot 打包成的可执行 jar ,为什么不能被其他项目依赖?

Java 中的 jar ,天天见,可是你知道它的运行机制吗?


640?wx_fmt=png

640?wx_fmt=png你点的每个在看,我都认真当成了喜欢
展开阅读全文

写给那些说北大青鸟好和不好的人

10-27

文 /佳佳rnrn  首先介绍下我的身份,首先我也是北大青鸟的一名学生,同时我现在也是郑州某公司的网站架构设计师。我是去年(2008年)3月份的去的北大青鸟,其实去北大青鸟也纯属偶然的决定!其实我去北大青鸟也不是为了他们所说的能帮你找到好工作而去的,我去就是一个目的:学习!rnrn  当时(去年去北大青鸟的时候2008年3月份),刚毕业不久,还处于超囧状态,不知道该做什么,觉得很郁闷,就想去学点自己喜欢的东西(其实当时我还是不知道自己喜欢什么)。于是春节后的一天(去年3月份)的一天,我去了书店,当时想去书店看看,买点书自己学学。但一走进书店,我就茫然了,那么多的书,好多我连名字都不知道(当时把C#叫C井号叫了很长时间),我真不知道自己该学点什么,第一次知道计算机原来有这么多的东西!很茫然!!!我当时出了图书城,就去找关于电脑培训学校去学点东西,要不闲着也是闲着,其实当时还不知道北大青鸟(当时,他们还没在电视上做广告)。当时进第一家培训机构的时候,进去问了下是关于平面设计方面的,其实我也不太懂,想想肯定能学到东西,就想去,但是之后朋友告诉我这些都太简单了,所以想想就没去,从这出去后,我突然记得在以前我们学校的广告牌的地方有个什么IT培训的广告,因为天天从那过。我马上回到学校,找到那个广告-这就是我第一次听说北大青鸟,于是我打了个电话就过去了,和咨询师预约后第二天过去和他们谈谈。当时是一个很好看的美女咨询师,她问我想学什么,我说不知道!其实真是不知道自己想学什么,我也不知道自己适合什么。于是她就打开智联招聘广告,我和谈了IT行业现在的现状和市场需求,以及他们所学到东西。经过咨询师的一说,在加上自己本来就是想来学点东西,当时我就决定了,第二天就开始来上课了!rnrnrn   下面我讲讲我在北大青鸟学习时候的感受!(我发誓,绝对是我自己客观的想法!) rn   S1刚开始的时候人还挺多(20多个把),但直到S1进S2(北大青鸟分三学期,s1 s2 和Y2)的时候剩下的人就是个位数了,所以就和另外一个班合班了。我去的时候好像中心有两个班一起开的(现在已经有20多个班600人左右了)。总体来说,我还是觉得他们的课程还是不错的,用JAVA的观点来说就是面向对象-直接面向企业需求!好像有点扯远了,估计看到这里的人,一定以为我是北大青鸟的枪手。请仔细看完后在做评论!我当时去的时候开始上的是java基础语言。后来学了网页编程html,javascript,和sql,java等基础知识(直到现在才发现,他们把所有课程的精髓都放在最后一学期,也是学费最贵的!)上的第一学期末的时候,最后做项目,基本上都只有不到10个人上课,所以老师也没什么兴趣讲了。(其实,还是能理解,请站在老师的角度想想,要是只有几个人,你也肯定不愿意多讲课!)。主要是因为自己已经开始喜欢上计算机了!我觉得既然喜欢,就得好好学!现在才觉得兴趣的重要性! rnrn   我现在Y2马上完了,来北大青鸟也将近两年了,我想谈谈自己的看法! rn一,对那些想找个好工作,但自己又不知道什么工作好的时候人。我以我的看法来说,我劝你们千万不要从事计算机方面的工作!我的理由:虽然我现在已经开始喜欢上计算机了,但是我还是要说如果上天在给我一次机会的话,我决定不会走这条路!都说软件开发是个不错的职业,很能挣钱,我不能证实这个消息可靠性。但我只知道一句话,所以收入都是和你的付出成 正比的,所有行业都一样(潜规则除外)。学到现在这个份上,我现在有一种感觉,学的越多,自己知道的越少,因为还要学的东西更多。这个行业其实是个很累的职业,因为需要学的东西实在是太多了,而且每天都要学(除非你只想混口饭而已,不饿死就行)。我在北大青鸟的整体感受是,老师还行,教材还行,但关键得靠自己学。如果你没有兴趣的话rnrn,只是为了找到工作,那么这肯定不适合你!rnrn rn 二,针对那些说北大青鸟不好的人,尤其是那些自己本身就是自己北大青鸟的人。(说到这,有人又以为我是枪手了) rn   我的看法:很讨厌那些天天说百度不好而自己有在用百度的人,那些说QQ垃圾,而且还不得不用QQ的人。就像有些人,在和女朋友(或男朋友)分手后,就想极力诋毁他们,说人家坏话,说自己瞎了眼。其实我想说的是,做人不能这样,我们最好客观点,既然不好,你就不要去,为什么当初极力的想去,现在出来了就开始说人家不好了。就像楼主,我想说的是,就算北大青鸟不好,你当初为什么想要去。你想想,像你这样,现在有公司还敢用你吗?做人最好地道点!前一天也同样在网上看到惠普的一个工程师离职后对他们公司不满发布在网上的文章。其实我现在在北大青鸟,我也知道,并不是所有情况像他们广告里说的那么好,但是我觉得,既然在这里,我就应该爱上这里的一切,包括好的和不好的。我想谈恋爱也是这么回事吧。我确实是这么想的,如有得罪的话,请多见谅!rnrn rnrn三,针对所有培训机构(不仅是北大青鸟)。 rnrn  我的观点:所有培训机构都学不到东西,所有培训机构又都能学到东西! rn   我的理由: 说不能学到东西,是针对那些看广告而进去培训的!都是保证就业,保证年薪多少,多么了不起,请在用脑子想 前,照照镜子照照自己,自己值多少钱自己还不知道?难道就去培训下,所有人都变成金子了?rnrn我想说的是,所有他们的承诺都 是假的(包括北大青鸟)。试想想,谁不想法说自己好?或许自己都不能承诺什么,而别人怎么又能给你承诺什么呢?rn  其实我当初进北大青鸟的时候,一听咨询师开始说未来怎么样的时候,我就说,这些你不用跟我说。我不是来找工作的,我是来学习的,只要自己学到东西,在哪不能找到工作,再说了,如果你什么也没学到,谁会要你? rn   同时我也说,所有培训机构都能学到东西。这是针对那些为了学习而去培训的人。我想其实在哪都能学到东西,不一定非要进培训机构。只是他们给你提供了一个模式而已,只是引导你学习什么。接下来的东西都需要自己努力。就我来说,北大青鸟的东西对我来说很浅,我需要自己去学习很多东西。我觉得干任何事情都一样,干什么都得自己想,别指望别人。所以我说你要学的话,在任何培训机构都能学到东西!rnrn rnrn四,针对北大青鸟的老师。 rn   其实这个观点也可以针对所以培训机构的老师,和那些说老师垃圾的人! rn  我要说的是,中国有句话:师傅领进门,修行在个人。那些指望好老师的人,我想说,就算世界上最好的老师教你,你都未免学好。所有老师都一样,他们只是引导你而已,不要对老师寄予很高的希望。培训机构都说:他们老师都怎么怎么好,这也都是假的。我想只要是在自己夸自己的,没有几句是真的。同时我要说的是:别指望老师,如果你学到不好,就去责怪老师,这是不负责任的说法。你的脑袋自己长着,千万不要怪别人! rn   我在北大青鸟,换了3个老师。第一个,只教完S1就走了(据说去微软了),没什么感觉!总体感觉还行吧。其实我对所有老师感觉都一样。第二个老师,也是我现在私下交往很好的朋友(同性朋友,别误解呵呵)。他人不错,我们私下关系很好,由于北大青鸟不允许老师和学生走太近(据说有因为此被吵的老师),所以我们上课叫老师 ,下课就一起玩。他是一个很愿意把自己知道的东西告诉给我们的人,他愿意把自己知道的都想告诉我们,不像有些老师,只怕学生超过自己似的。他也告诉我们,不要听咨询师瞎白活(东北话,和忽悠差不多),其实真正要学到东西得靠自己。从这点来看,它是一个很真是的人。第三个老师,就是现在的老师。总体觉得还行。对比下我在大学的老师,大学的老师有种不可接近的感觉而且讲完课就走,和学生也谈不上什么感情,而且认为自己高高再上。而北大青鸟的老师给我的感觉是朋友的感觉。关于老师就说这些吧!rnrnrn五,针对北大青鸟的咨询师。 rn  我想虚伪也许不是他们的本意,我想他们也是为了工作,这点希望大家能理解。我想任何机构都一样,都想说自己好,但关键是,不管他们说的怎么样,我们得有自己的眼光和头脑,不要被别人骗了。我想换位思考下,站在尽责任的角度,北大青鸟的老师还是不错的,赞不考虑他们说的是否是真的,但她们的口才绝对是一流的。很佩服!!决定不带任何感情色彩的佩服! rn  好了,就说这么写吧,总结下! rn  我觉得,要想在计算机这个行业好好发展的话,任何培训机构的话都是假的,没有人能保证你100%找到工作,我们的收入不是别人保证得了的,是靠我们自己争取来的!如果我们想在这个行业长期发展的话,只有一条路:学习,不断地学习!像我现在,两个身份,一个是网站架构设计师,同时也是北大青鸟的学生,但对我来说,大学教不会我什么,北大青鸟也不会给我什么,唯一的是靠自己,只有自己学到东西才是最实在的!他们教会的我是学什么,而不是怎么学,只是给我提供了个学习的模式,关键的东西得靠自己。我想学习方法都是假的,没有什么学习方法!只要自己天天坚持就是最好的学习方法,对我们来说尤其需要多练习,多做项目!学习方法就是一个劲的死学!我现在大三,现在代码量不到10W(大7W左右),我知道,这对一个好的软件工程师来说是远远不到标准的。所以我需要天天学习,争取在毕业前写完!10W行代码,为做一个合格的软件工程师而奋斗!同时,还提醒我们的80、90后程序员,我们还年轻,需要学的东西还很多,希望大家努力! rnrn   最后,还得谢谢一下北大青鸟!我想对我来说:你给我的是让我从迷茫变成一个喜欢上计算机这个行业,喜欢上软件开发!不管你们的老师和你们的承诺怎么样(其实我一直都没在乎过你们说的这些),我还是要说句谢谢! rn  (本文来自己真是感受,我发誓:不带任何第三方意见!同时如果在本文中语言不当得罪了某些人的话,请谅解!再次道歉!) rn 论坛

没有更多推荐了,返回首页