漫谈微服务

序言

   

    每天一睁眼,就在倒计时,时间如流水,过的好快好快,还没来得及思考,就已经到了黄昏。。。


    每天一上班,将所有要处理的事情加载进内存,启动的好慢,不过每个人应该都会很习惯这种方式,都加载进大脑,然后进行区分优先级,然后处理。。。一天就已经过去。。。其实这就是SOA。。。


    那么有没有想过用另外一种方式来进行处理,每天划分为各个时间段,就像CPU的时钟,滴答。。。滴答。。。每个小时处理不同的事情,固定的事情,提供固定的服务。。。。其实这就是微服务

微服务

   微服务,是微笑服务还是微小的服务呢?micro service,微服务只是相对于SOA来说,那么SOA又是什么?


    SOA,面向对象的服务,对象???你有对象么。。。你又向你的对象提供了什么服务。SOA一般都是所谓的三层架构,没什么太激动人心的地方,不想太过于赘述。。。一句话描述就是SOA就是一个单体应用,这个应用可以提供各种服务,就像一个电子网站,提供了商品的服务,提供了库存的服务,而这一切都是打成了一个war包,使用的是单一的数据库,使用的是单一的语言。


    微服务只是SOA的一种进化,然而谈到了微服务,又离不开REST架构,RESTful API又是微服务的催化剂,那么什么是REST架构呢?


    REST架构,主要是用来描述资源的一种状态,常用的的就是使用http协议来发送请求,而在服务端提供统一的接口,对资源的CRUD,使用http的方法post,get,put,delete来达成。。。。RESTful API主要是定义了客户端向服务端发送请求的一种规则和约束,例如使用什么协议来进行交互,使用什么样的格式来发送响应,是json还是xml还是yaml,都是可以进行相互转化的,

640?wx_fmt=png

    在很多地方都已经使用了restful的api来提供服务,例如github,例如k8s,提供了各种restful api接口,其实换句话说,就是当你请求这些资源的时候,有一个固定的URL来找到这个资源,你可以直接使用浏览器或者curl来发送请求,从而对资源进行操控。


    微服务中提倡使用restful api来提供各种服务,从而各个服务之间都是轻量级的通信。而在使用微服务的时候,和SOA的最大区别是,需要将单一的应用拆分为多个细小的服务单元,从而相当于一个团队,拆分为几个小团队,而当提供微服务的时候,又正好切合了容器的思想,容器也是轻量级的应用,运行一个小进程,提供一个服务。。。


    在进行开发的时候,所有的IDE其实都是比较适合于开发SOA的应用,一个庞大的应用代码库,各种各样的模块,各种各样的服务,进行开发的时候,都要加载这一大坨BUG进内存。。。卡不卡。。。。当进行编译运行的时候,卡不卡。。。。当进行部署的时候,启动tomcat或者jetty的时候,卡不卡。。。当你部署的时候,卡不卡。。。当你调试的时候,卡不卡。。。当你抓BUG的时候,这个不卡,但是心累,你也不知道这坨代码是谁写的。。。当你需要快速迭代的时候。。。修复一个小BUG,需要发布N长时间。。。累不累。。。当其中的一个组件出现内存溢出的时候,整个服务挂了。。。累不累。。。。当你加入一个新的项目组的时候,看那么一堆垃圾代码,累不累。。。


    微服务,你值得拥有。。。。


    微服务,微小的服务,微笑的服务,一小块代码,加载速度快,一小块代码,几个人组成一个团队,高内聚,低耦合,从前端到后端,从nginx到mysql,都是自己管理,有了自己的数据库,有了自己的nginx,有了自己的架构,有了自己的前端,有了自己的语言,想用什么语言,就用什么语言,为什么?因为服务之间的交互都是通过restful api啊,不依赖语言,只要提供接口就好了,就是这么轻松。。。


    微服务,发布的时候很快,tomcat启动的很快,部署的更快,我要快速迭代,just do it。。。


    微服务,加入新团队,哎呦,就那么点代码,看一眼就够了。。。。确认过眼神,就是这个BUG。。。


    微服务,故障隔离。。。我的服务挂了,并不会整站挂掉。。。我的内存溢出了。。我被killer kill了,么关系,只是一个微服务而已。。。


    微服务,devops,我自己的服务,我能单独进行管理,无ops理念自从诞生。。。


    微服务好处这么多,你就能用好???是Silver bullet?并不是!!!


    服务之间的依赖怎么办?强依赖。。。你挂了,我也得挂。。。升级的时候如何处理???对于这种情况,就只能我升级,那么你也就得跟着升级,可能我的api发生了变化,可能我的一些配置发生了变化。。。


    服务之间公用一个数据库怎么办?你有你自己的数据库,我有我自己的数据库,那么如何做到数据同步,如何做到数据冗余?那就只能数据库同步了。。。


    从SOA拆分到micro service,怎么拆。。。这个是技术活。。。。拆分到了微服务,怎么监控?日志怎收集?如何追踪生产问题。。。


    分布式事务怎么办?怎么处理。。。。无状态的怎么办?需要持久化的怎么办???


    其实以上的都是废话,。。没有太大的激动人心的特性。。。

闲扯

   没有太多的思考,没有太多的思维,都是一些没有太好的特性值得说道,那就说说一些和技术无关的东西。。。


    看的太多,发现懂的越来越渺小,当深入进去,你会发现,出不来,到处都是迷途,到处都是未知,到处都是变数,那么你如何处理?。。。打乱,重组。。。记忆,遗忘。。。所有的东西都有相同的规律,你记住了什么,你又遗忘了什么,你思考了什么,你将获得什么。。。有的时候,深入细节的时候,迷茫的时候,退出来,看看你的初心,看看整体的架构,然后继续深入,这个也是极好的,在总体上进行把控。。。


    内心想要什么,就应该去争取什么???这个问题思考的太多,想的半夜无法入眠,但是依旧心如止水鉴常明。。。无欲无求。。。


    容灾?本来还觉着这个可能很好玩,但是看了一眼,其实也就那么个样子,难点在于数据同步,如何做到服务容灾,又如何做到存储容灾。。。连参与的激情都没有了,没啥太大的技术心动。。。。


    我不怕你骗我。。。我就怕你骗不住我。。。。


    这个季节。。。风不静。。。心不平。。。雨不来。。。。花不开。。。。叶不落。。。而我。。。。还在这里。


    

    还好,我脾气不大。。。还好,我不粗鲁。。。还好,我的脑子只是暂时不见了。。。依旧会回来。。。。

    


    


    


    





  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值