看完之后你还不了解SpringCloud,就取关吧

1.SpringCloud概述

小鹿的小故事

在这里插入图片描述

有个小张同学,这个人非常的有商业眼光,一直在做潮牌运动鞋的生意,nike,adidas等等,后来呢,他发现身边越来越多的人都在网上买东西,小张呢自己也寻思着做一个自己卖鞋的网站,这样无论是进货还是卖货都会非常方便。说干就干,不出一周终于搭建了属于自己的买鞋的网站。刚开始只有一个服务器,就放在自己豪宅的游泳池里边,他能够在网站上的看到有多少人在访问自己的网站,心中窃喜确实是非常方便。
在这里插入图片描述
在这里插入图片描述

由于小张在这个阶段向自己身边的人推荐自己的网站,网站的访问人数也出现了阶段性的增长,而且在此期间也有大量的客户向他留言,你这网站太卡了,半天下不了单。他一看事态不对,影响到下单了,这可不行。于是,他就组了个饭局,通过中间人介绍,找到了某公司著名的JavaIT顾问丑阳璐先生,这位顾问可是来头不小,曾经参与过某大型的电商项目的上线与维护。丑先生在看过他的网站之后就给他支了一招:你这服务器明显不够啊,再多搭建几个吧。饭后,小张呢就立马联系相关负责人,当天夜里就搭建好服务器,加上之前的服务器一共6台服务器。当他再次访问他的网站时,能够明显感觉到两件事:第一,丑先生确实是当之无愧的好顾问;第二,网站在使用体验上确实比之前好很多。

转眼间,到了2022,小张呢由于疫情也在家隔离办公,处理公司的事情。也同时在某音,某手上不惜一切代价推广自己的网站,然而之前的问题又来了,这次小张亲自给丑阳璐顾问打电话,因为这个顾问呢平时比较忙,终于在上个月三号下午打通了丑哥的电话,就向他反映了当下网站的情况,也比较紧急,想求助丑哥。

注意,注意,前方高能,微服务来喽!
在这里插入图片描述
丑哥说:你是这,我刚放问了一下你的网站,确实现有的服务模块太多了,给服务器的压力确实太大了。搭建一个微服务集群吧,也是当下互联网公司我们公司也在使用这个,是阿里巴巴旗下的一款开源产品,非常方便。小张一听有点懵圈,什么是微服务集群啊?简单来讲,就是把你网站中现有的服务都独立处理,变成一个个小的服务,搭建成一个集群,我知道你还没懂。
给你举个例子吧,我现在要租房(customer),你手里有房源(server),但我认识你或者拥有你的联系方式还是比较难的,
而且这些房源都分布在不同的地方(分布式,微服务),也不方便去找;而且这个地方肯定有好多人需要租房(并不是每个人都有属于自己的房子),等等这些问题怎么去解决呢?
在这里插入图片描述

先从房东(service)这个模块讲起,他们需要把房子租出去,这时候中介(注册中心)就起作用喽,你把你要出租的房源信息注册在我这,而且大部分房东注册的房源信息(server)都是不一样的,这时候房东就不用管了,直接交给中介,中介帮他们出售就行。
顾客(customer)呢,也需要将自己的信息注册到这来(租什么户型的,是否与电梯等等)。ok好了,这样顾客(customer)通过中介(eureka,nacos,zookeeper等)就可以联系房东租房(server)了,是不是方便很多了呢。我把你的网站就举例拆分成了许多许多的房东,当用户访问你网站(租房)时,eureka(中介)会动态的分配用户该去访问哪个server(房东)。
在这里插入图片描述
现在你明白了吗,简单来说,微服务架构就是在架构层面给服务器减小压力的。

官网解释

微服务系统架构的一站式解决方案,在平时我们构建微服务的过程中需要做如 服务发现注册 、配置中心 、消息总线 、负载均衡 、断路器 、数据监控 等操作,而 Spring Cloud 为我们提供了一套简易的编程模型,使我们能在 Spring Boot 的基础上轻松地实现微服务项目的构建。

微服务的优缺点

  • 优点:开发简单,效率高,代码高度内聚,符合我们的开发初衷,低耦合,独立,方便与第三方包集成等
  • 缺点:运维压力山大,分布式系统复杂,通信成本,数据一致,性能监测等

boot与cloud的关系

  • boot可以独立开发项目,cloud离不开boot项目,也就是说cloud项目是由多个boot项目(jar包)搭建而成
  • cloud专注于全局的治理,监测与服务

服务注册与发现(eureka举例)

  • Eureka是基于REST(代表性状态转移)的服务,主要在AWS云中用于定位服务,以实现负载均衡和中间层服务器的
    故障转移。我们称此服务为Eureka服务器。Eureka还带有一个基于Java的客户端组件Eureka Client,它使其与服务的交互变得更加容易。客户端还具有一个内置的负载平衡器,可以执行基本的循环负载平衡。在Netflix,更复杂的负载均衡器将Eureka包装起来,以基于流量,资源使用,错误条件等多种因素提供加权负载均衡,以提供出色的弹性。

  • 官方解释:当 Eureka 客户端向 [Eureka] Server 注册时,它提供自身的元数据 ,比如IP地址、端口,
    运行状况指示符URL,主页等。

  • 服务续约(Renew):官方解释:Eureka 客户会每隔30秒(默认情况下)发送一次心跳来续约 。通过续约来告知 Eureka Server 该 Eureka 客户仍然存在,没有出现问题。正常情况下,如果 Eureka Server 在90秒没有收到 Eureka 客户的续约,它会将实例从其注册表中删除。

  • 获取注册列表信息(Fetch Registries):Eureka客户端从服务器获取注册表信息,并将其缓存在本地。客户端会使用该信息查找其他服务,从而进行远程调用。该注册列表信息定期(每30秒钟)更新一次。每次返回注册列表信息可能与 Eureka 客户端的缓存信息不同,
    Eureka 客户端自动处理。如果由于某种原因导致注册列表信息不能及时匹配,Eureka 客户端则会重新获取整个注册表信息。
    Eureka 服务器缓存注册列表信息,整个注册表以及每个应用程序的信息进行了压缩,压缩内容和没有压缩的内容完全相同。Eureka 客户端和 Eureka 服务器可以使用JSON / XML格式进行通讯。在默认的情况下 Eureka 客户端使用压缩JSON格式来获取注册列表的信息。

  • 服务下线(Cancel):Eureka客户端在程序关闭时向Eureka服务器发送取消请求。发送请求后,该客户端实例信息将从服务器的实例注册表中删除。该下线请求不会自动完成,它需要调用以下内容:DiscoveryManager.getInstance().shutdownComponent();
    其实就是,我不想往出租房子了,贵圈太乱了我退了。

  • 服务剔除(Eviction):在默认的情况下,当Eureka客户端连续90秒(3个续约周期)没有向Eureka服务器发送服务续约,即心跳包,Eureka服务器会将该服务实例从服务注册列表删除 ,即服务剔除。其实就是,他占着位置,也不给别人提供服务,高冷也不会消息,
    到点儿直接删除,都不带犹豫的。

负载均衡(Nginx,Ribbon等)

  • Ribbon:是 Netflix 公司的一个开源的负载均衡项目,是一个客户端/进程内负载均衡器,运行在消费者端。
  • Nginx:和Ribbon不同的是,它是一种集中式的负载均衡器。什么是集中式,简单讲将所有请求都集中起来,然后再进行负载均衡。

2. 感慨篇

  • 空难
    在这里插入图片描述
  • 陕西美食(白鹿原剧照)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 我的家乡(富平)
    在这里插入图片描述
  • 富昌大桥
    在这里插入图片描述
    在这里插入图片描述
  • 富平街景
    在这里插入图片描述
  • 在此呢,小鹿向MU5735航班上的所有人祈福,真的希望你们能够平安回来;
    小鹿也向各位朋友说,世事无常,珍惜你所遇到的每一个人。
    生活总是来来往往,千万别等来日方长!

未完待续

  • 欢迎评论区留言并指正,谢谢大家喽
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值