SptringCould学习前期介绍与认识

做java开发已经是有一些时间了,但是一直是码农阶段,而对于技术选型与架构了解只是停留在一个比较浅薄的知识面上,今年做出规划是每几天就写一篇博客,对于前面学习的总结与认识!

了解Nitfilx对于微服务框架做出的贡献

     SpringCould可以理解为是spring的云服务框架,并不是一个独立的框架,而是由一堆框架组成的,早起的SpringCloud框架包含的是Nitfilx开源出来的一些框架,Nitfilx是一家拍电影的公司。

     Nitfilx这家公司搞出来的都是什么呢 ?

  • 1.Erueka微服务注册与发现
  • 2.Actuator微服务监控
  • 3.Ribbon客户端的负载均衡
  • 4.Feign声明式服务调用
  • 5.Hystrix 微服务熔断、降级、资源隔离
  • 6.Zuul微服务网关

哇。。。好厉害这些你都知道,我知道个毛,咳咳。。。这些都是从网上学到的东西,目前除了Erueka、Feign、Zuul还能说上点东西来,剩下的是完全不了解的,不用怕我会在后面的学习中慢慢补全的。

 在没有SptringCloud之前我们是怎么做的?

如:某奇艺公司有财务系统,影评系统,影视推荐系统,用户系统等,他们之间如果有互相调用的东西,我们早期是使用webService进行远程调用的,但是我们都知道webService在返回的格式上是使用XML的形式,

       xml有自身的特点,就是严谨的特性,特别的规范,xsd会校验自身xml是否合法,在传输的过程中体积会比较大,是基于dom元素的一种层级结构,递归结构,递归结构的复杂度是非常高的O(n)。

       复杂度高就导致了解析成本比较高,再者就是xml的数据结构比较臃肿,效率比较低

      xml的传输是基于soap协议,soap是基于http协议,http协议又是基于tcp协议

    在微服务的演化过程中,应该说是SOA服务治理的过程中,Nitfilx公司从数据格式与协议层进行了优化,首先去除了soap协议,还有数据载体就是将xml替换成了一个轻量级的数据格式json,直接通过http协议进行远程调用,类似于ssm写了一个web应用,只要是支持http协议的客户端就可以进行调用,效率变高了,但是数据不够严谨,只能传输字符串。

第三方服务注册与发现

  在远程调用时我们都是在是用过服务地址加端口的形式进行调用,在系统上线之后原本的服务会发生变化,但对于服务名来说是不会发生变化的,如果想远程服务调用的同时再有负载均衡的感觉,那么服务名就有可能会重复,如果想要简化的开发就需要第三方(注册中心,注册与发现),在最开始的Nitfilx开发注册中心的时候是使用的zookeeper。

 在项目不断的演化过程当中,分布式的系统中不可避免的一个问题就是CAP的问题

在环境部署过程中,在大型公司中有成千上完的服务,成千上万的服务就代表 在成千上完个服务器上跑这些服务,如果在服务器与服务器的连接过程中,有可能因为网络或者是设备的问题造成瞬间丢包,而在zookeeper连接过程中是需要长连接的,如果有瞬时丢包或者其他原因,zookeeper会瞬间将服务剔除认为是服务不可用。

再严重点说。。。一个机柜里有几十台服务器,上百上千个服务,因为交换机的问题造成请求超时,再造成网络请求堆积等问题,那后果就不可想象了,,,,,

我靠。。。我就是出去抽了颗烟,你就以为是我这个人没了???????我这地位也太底了吧??????????这种情况是不合理的,,,

这里有个概念叫做CAP

cp模型与ap模型

zookeeper是cp模型是强力执行,选择一致性。ap模型是选择可用性 ,

我们都认为这样的事情不合理的,对于大牛的Nitfilx公司来说,他们也认为这样的强制执行也是不靠谱的,因此就从zookeeper中演化成他们自己的框架----------->Erueka注册发现

swagger

如果写了一套服务,那肯定要有对应的文档啊,将url与功能写出来,要不然别人想要你们服务的数据都不知道该怎们调用啊?

swagger这个框架能通过少量的注解,直接生成文档,在web界面里面就可以看到出入参,并能够进行接口测试等功能。

服务的调用

给大家说个事,我将服务打包成一个jar了,然后你们大家通过maven引入一下就可以了。嘿嘿。。。

嘿嘿你个毛啊。。。。你在前面讲了那么多有个屁用啊,我既然能本地服务调用,你还告诉我注册中心,,,Erueka,,,zookpper有啥用啊。

本地服务调用本地的实现,远程服务的必要性在哪?

说了这么多废话言归正传,如果编码的时候调用远程服务看起来就像是调用本地服务一样,因此我们在远程服务的时候用到了@feignClient注解,通过这个注解,调用远程服务就像是在调用本地实现一样。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值