SpringCloud的缺点

大四出来实习的时候到北京中投驻场开发,当时候第一次听到微服务,可牛逼了,各种先进。
后来接触到自己公司的项目,入手SpringBoot,说真的,我真的觉的SpringBoot真的是太方便了,真的是java后端开发的福音。

SpringCloud自然也就建立在SpringBoot 的基础上面,后来给平安做项目的时候,公司的技术头头就决定用SpringCloud了,当时候,对SpringCloud 还没有深入了解,头头说,放心吧要比SpringBoot难。

从上手SpringCloud到现在也快4个月了吧,期间接触了SpringCloud 的zuul,eureka,feign,熔断等,其中最主要的就是zuul,基本上代码都是自己敲了。 说下这4个月 对SpringCloud 的个人看法吧,勿喷。

很多人都说SpringCloud等微服务很好,这个确实值得肯定,以前All in one 的时候,所有的功能全部在一个jar包里面,所以只要管理一个jar 就行了,缺点嘛,也很明显,一旦jar包错误,那就完蛋了,后端一个地方报错,整个jar都不能启动起来。这个是很可怕的事情,以前每次升级生产环境的时候,提心吊胆,生怕出错。

微服务把功能都拆分开,通俗点讲,一个api接口一个工程,一个项目由若干个工程组成,升级其中一个坏掉了,对其他的没有影响

那么缺点了?

我感觉缺点就是太烦了,还有就是遇到问题难以解决

服务拆分成一个个项目确实很爽,但是你想想,多个项目就有多个jar包,多个jar包就要在多个linux 主机上面运行,要运行jar包就要上传jar到各个主机上面,然后了?

上传好了还要运行代码,还要看代码有没有成功的运行等等,相当的繁琐,你以为就运行一次? 每周都会有产品升级发布,每周 都要痛苦一次,每次升级都是10几个jar包,而且平安的环境相当严格,你想看个eureka 的注册列表都因为端口不能访问等权限问题把你搞死

还有呢?
还有SpringCloud的支持。

微服务就是把接口拆分成各个项目。 想法很美好。也很简单啊,就是拆分啊。

然后事情不仅仅是拆分然后上线这么简单,还是有很多问题要解决,比如某一台服务器上面的微服务想要关闭 ,但是关不掉怎么办呢?上周就遇到这样一个问题,把微服务进程杀掉了,可是zuul在请求转发的时候还是指向下线的微服务,导致报错connection time out。而且文档还不好查。查了很多资料,可能是kill -9的杀进程的问题。

这些问题定位起来相当的麻烦,因为以前all in one 的时候根本就不会发生这样的事情。

第二个问题说到底还不是因为自己菜

SpringCloud的缺点_第1张图片

iphone贵不应是他的缺点,而应该是你的缺点

如果对SpringCloud 的各种源码了熟于心,甚至可以改改代码来为我所用,也就不会出现上面的问题了。

为啥会出现这样的问题了?我觉得网上有个人说的挺好的

他说小的公司不会用SpringCloud 微服务,大的公司了比如阿里又不用,人家有dubbo,要命的就是像我们这样的中小型公司。徘徊两边。

最后给点建议吧

之前参加中国软件杯决赛的时候,恰好在南京软件博览会的旁边,那个时候在华为的展台旁边遇到一个人,那个时候听他解释了devops,开发运维,当然那个时候不是特别的理解。

我感觉SpringCloud 的开发者要想开发的爽,应该稍许了解点运维的知识。强烈建议SpringCloud 配合Jenkins一起使用,最近在慕课上看到了Jenkins+Ansible+Gitlab自动化部署 的课程,开发人员了解了解 是有好处的。

听同事说,jenkins的一个插件可以根据gitlab 提交的hash值自动的打包 回退。

卧槽真的是太爽了,以后升级 还用提心吊胆么? 多学一点技术,可以让你办事情事半功倍啊。

以前你升级生产环境害怕的要死,现在只要在jenkins上面点一下,然后就可以去喝茶了。

SpringCloud的缺点_第2张图片

你可能感兴趣的:(springboot)