范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

第3章让你的微服务更快更稳定负载均衡的重要性

  终身学习、乐于分享、共同成长! 前言介绍
  什么是负载均衡?
  负载均衡,英文名称为Load Balance,是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。
  负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
  负载均衡有哪些分类?
  常见的负载均衡系统包括:DNS负载均衡、硬件负载均衡和软件负载均衡。 DNS负载均衡
  DNS是最简单也是最常见的负载均衡方式,一般用来实现地理级别的均衡。例如,北京的用户访问北京的机房,深圳的用户访问深圳的机房。 DNS负载均衡的本质是 DNS 解析同域名可以返回不同的 IP 地址。
  例如,同样是www.baidu.com,北京用户解析后获取的地址是 61.135.165.224 (这是北京机房的IP),深圳用户解析后获取的地址是110.242.68.66 (这是南方机房的IP)。硬件负载均衡
  硬件负载均衡是通过单独的硬件设备来实现负载均衡功能,这类设备和路由器交换机类似,可以理解为一个用于负载均衡的基础网络设备。目前业界典型的硬件负载均衡设备有两款,F5和A10。
  这类设备性能强劲,功能强大,但价格都不便宜,一般只有 土豪 公司才会考虑使用此类设备。普通业务量级的公司一是负担不起,二是业务量没那么大,用这些设备也是浪费。软件负载均衡
  软件负载均衡是指通过负载均衡软件来实现负载均衡功能,常见的有Nginx和LVS,其中Nginx是软件的7层负载均衡,LV是Linux内核的4层负载均衡。
  4层和7层的区别就在于协议和灵活性。 Nginx支持HTTP、HTTPS、Email协议;LVS是4层负载均衡,和协议无关,几乎所有应用都可以做,例如聊天、数据库等。
  在微服务架构中我们用到是软件负载均衡。 微服务实现负载均衡的三种架构模式服务提供者端集中式负载均衡模式
  这种模式在微服务架构模式之前普遍使用,指的是在消费者和服务提供方中间使用独立的代理方式进行负载,一般都是使用Nginx来实现。
  客户端负载均衡模式
  在微服务架构中普遍使用,通过服务的注册中心将服务提供者的访问地址发送出去,服务消费者得到地址后在消费者端进行负载均衡,一般使用Ribbo来实现。
  边车负载均衡模式
  下一代微服务架构中将对负载均衡进行沉淀到独立的进程中,最大的变化就是和业务应用完全解耦了。
  什么Ribbon?概述
  在微服务架构中主流使用的软件负载均衡实现是Ribbon。
  Spring Cloud Ribbon是基于Netflix Ribbon 实现的一套客户端的负载均衡工具,Ribbon客户端组件提供一系列的完善的配置,如超时,重试等。通过Load Balancer获取到服务提供的所有机器实例,Ribbon会自动基于某种规则(轮询,随机)去调用这些服务。Ribbon也可以实现我们自己的负载均衡算法。 特点
  组件库丰富:整套负载均衡由7个具体的策略组成,无论你是什么特殊需求,都有合适的策略供你选择。 适配性强:给谁都能用,跟多个组件都能搭配,能跟Sprig Cloud里的多个组件(eureka、feign、gateway、zuul、hystrix)搭配使用; 此外,Ribbon可以脱离SpringCloud应用在一般项目中。 Ribbon支持的七种负载均衡算法 随机策略(RandomRule),通过随机选择服务进行执行,一般这种方式使用较少; 轮训策略(RoundRobinRule),一个一个来,谁不用急,底层使用了CAS+自旋锁的方式来保证线程安全; 重试策略(RetryRule),一次不行再来第二次,使用了类似于装饰器设计模式,相当于重试+实际模式的方式,所以需要指定真正被执行的负载均衡策略; 权重策略(WeightedResponseTimeRule),加权轮训,通过对服务器性能的分型,给高配置,低负载的服务器分配更高的权重,均衡各个服务器的压力,该Rule继承自RoundRobinRule,所以服务器刚启动时采用轮询策略,当权重数据积累足够后才使用WeightedResponseTimeRule模式; 下限策略(AvailabilityFilteringRule),基于RoundRobinRule来选择服务节点,但必须满足它的最低要求,否在不予采纳,10次以内选择种为止; 自主策略(ZoneAvoidanceRule),以机房大区(Zone)和可用性作为过滤条件,选择可用的服务节点。满足大区要求,且服务可用且并发量不大的节点才会被选中; 空闲策略(BestAvailableRule),谁最闲谁先来,在过滤掉故障服务后,选择过去30分钟类并发量最小的服务节点。当然服务器刚启动时,统计结果未生成时,依然使用轮询的方式; Nacos提供的负载均衡策略(NacosRule).
  在Nacos中使用Ribbonnacos-discovery依赖了ribbon,可以不用再引入ribbon依赖.
  为RestTemplate添加 @LoadBalanced 注解。@Configuration public class RestTemplateConfiguration {     @Bean     @LoadBalanced     public RestTemplate restTemplate() {         return new RestTemplate();     } }在controller中使用RestTemplate @RestController @RequestMapping("/demo") @AllArgsConstructor public class ConsumerDemoController {      private final RestTemplate restTemplate;      @RequestMapping("/say")     public String say(){         // 使用RestTemplate调用服务         String msg = restTemplate.getForObject("http://service-provider/demo/hello?msg=Nacos", String.class);         return msg;     } }负载均衡器LoadBalancer原理解析
  由@LoadBalancer注解标记RestTemplate后,Ribbon会将带有负载均衡功能的拦截器注入标记好的RestTemplate中,以此来实现负载均衡。
  Ribbon拦截请求,获取应用名, LoadBalancerAutoConfiguration 是Ribbon的自动配置类,在这个配置类里面配置了一个拦截器,该拦截器会拦截所有请求,这就是Ribbon的入口;
  LoadBalancerInterceptor 的intercept 方法(当远程调用的时候都会被拦截器拦截)
  总结本章重点介绍了什么是负载均衡,以及负载均衡的分类有哪些,目前在微服务架构中主流使用的是软件负载均衡。 微服务架构中实现软件负载均衡的三种模式,服务端集中式负载均衡、客户端负载均衡、边车负载均衡。 重点介绍微服务架构中主流使用的软件负载均衡实现Spring Cloud Ribbon以及如何使用Ribbon。 源码分析Ribbon的负载均衡器LoadBalancer原理。 拓展阅读什么是Istio?
  官网 (opens new window)对Istio的介绍:
  An open platform to connect, secure, control and observe services.
  即"一个连接、安全加固、控制和观察服务的开放平台"。开放平台就是指它本身是开源的,服务对应的是微服务,也可以粗略地理解为单个应用。
  中间的四个动词就是 istio 的主要功能,官方也各有一句话的说明。 连接(Connect):智能控制服务之间的调用流量,能够实现灰度升级、AB 测试和红黑部署等功能 安全加固(Secure):自动为服务之间的调用提供认证、授权和加密 控制(Control):应用用户定义的 policy,保证资源在消费者中公平分配 观察(Observe):查看服务运行期间的各种数据,比如日志、监控和 tracing,了解服务的运行情况 什么是Service Mesh?
  上面对Istio介绍的四个动词看起来非常高级,功能非常强大,但从字面意思理解起来非常虚,要想搞清楚Istio,我们先来聊聊前面第0章里面提到的Service Mesh架构模式。
  Service Mesh号称是下一代微服务架构模式,其实说起来也不是什么新技术,接地气的说,Service Mesh其实就是传统网络代理的升级版。说到代理大家应该就不陌生了,设计模式中的代理模式大家肯定都学习过。
  网络代理可以简单类比成现实生活中的中介,在需要通信的双方加上一道关卡,在这道关卡中增加一些与业务无关但又非常重要的功能,例如: 拦截:代理可以选择性拦截传输的网络流量,比如一些公司限制员工在上班的时候不能访问某些游戏或者电商网站,还有在数据中心中拒绝恶意访问的网关。 统计:既然所有的流量都经过代理,那么代理也可以用来统计网络中的数据信息,比如了解哪些人在访问哪些网站,通信的应答延迟等。 缓存:如果通信双方比较"远",访问比较慢,那么代理可以把最近访问的数据缓存在本地,后面的访问不用访问后端来做到加速。CDN就是这个功能的典型场景 分发:如果某个通信方有多个服务器后端,代理可以根据某些规则来选择如何把流量发送给多个服务器,也就是我们常说的负载均衡功能。比如著名的 Nginx软件。 跳板:如果A、B双方因为某些原因不能直接访问,而代理可以和双方通信,那么通过代理,双方可以绕过原来的限制进行通信。这应该广大中国网民比较熟悉的场景 注入:既然代理可以看到流量,那么它也可以修改网络流量,可以自动在收到的流量中添加一些数据,比如有些宽带提供商的弹窗广告 ……
  Service Mesh是分布式的微服务代理 。怎么理解呢?在传统模式下,代理一般是集中式的单独的服务器,所有的请求都要先通过代理,然后再流入转发到实际的后端。而在Service Mesh中,代理变成了分布式的,它常驻在了应用的身边(最常见的就是 kubernetes sidecar 模式,每一个应用的 pod 中都运行着一个代理,负责流量相关的事情)。这样的话,应用所有的流量都被代理接管,那么这个代理就能做到上面提到的所有可能的事情,从而带来无限的想象力。
  边车负载均衡模式就是这样的原理。
  再来看Istio
  理解了Service Mesh再来看Istio官方给出的架构图就很容易理解了。
  Istio extends Kubernetes to establish a programmable, application-aware network using the powerful Envoy service proxy. Working with both Kubernetes and traditional workloads, Istio brings standard, universal traffic management, telemetry, and security to complex deployments.
  翻译过来是:Istio 使用功能强大的 Envoy 服务代理扩展了 Kubernetes,以建立一个可编程的、可感知的应用程序网络。Istio 与 Kubernetes 和传统工作负载一起使用,为复杂的部署带来了标准的通用流量管理、遥测和安全性。 Istio 解决什么问题?
  Istio看起来非常炫酷,功能也很强大,但是一个架构和产品出来都是要解决具体问题的。前面我们提到Istio是用来解决微服务中的难题的,具体是什么呢?
  首先,原来的单个应用拆分成了许多分散的微服务,它们之间相互调用才能完成一个任务,而一旦某个过程出错(组件越多,出错的概率也就越大),就非常难以排查。
  用户请求出现问题无外乎两个问题:错误和响应慢。如果请求错误,那么我们需要知道哪个步骤出错了,这么多的微服务之间的调用怎么确定哪个有调用成功?哪个没有调用成功呢?如果是请求响应太慢,我们就需要知道到底哪些地方比较慢?整个链路的调用各阶段耗时是多少?哪些调用是并发执行的,哪些是串行的?这些问题需要我们能非常清楚整个集群的调用以及流量情况。
  Istio就是用来解决这些问题的。
  好了,关于Istio的话题就聊到这里,我这里也只是抛砖引玉,感兴趣的同学可以继续深入研究。

RedmiK60Pro渲染图2K直屏潜望长焦50W无线,定价2字开头Redmi今年可以用杀疯了来形容,先后推出的多款机型,比如RedmiK50K50至尊版Note11TProNote12Pro等等机型,都深受用户的好评,而且销量非常之高,不愧是行业孕期玩手机辐射会伤胎?请进来接受打脸网上的留言有很多,其中孕期玩手机辐射会伤胎这一条就影响了很多人,乍一看手机确实有辐射,貌似辐射也不好,因此很多人都相信了,但其实我们日常生活的物品都有辐射,包括我们人也有辐射,难道与精灵1略有不同,Smart精灵3内饰测试谍照曝光近日,网络上曝光出了一组前不久刚刚在工信部申报信息中亮相的Smart旗下第二款全新纯电动SUVSmart精灵3的内饰测试谍照。而不出意外,新车在整体设计方面与精灵1基本保持一致,只iQOOZ5跌至1349元,LPDDR5UFS3。1内存,千元长续航5G手机这次我们聊聊vivoiQOOZ5。以前大家总说vivo没有性价比手机,而是高价低配手机,说得难听一些,还说是智商鉴定机,入手的都是不懂手机的厂妹,因此也称之为厂妹机。自从推出iQO十年黄金签证如何获得?详解柬埔寨第二家园(CM2H)申请流程11月,东盟峰会在柬埔寨顺利召开,东盟中美日韩等各国首脑聚集。作为主办方的柬埔寨,其贸易投资环境备受关注。其实早在2021年柬埔寨便通过了新投资法,2022年7月又通过了柬埔寨第二新能源汽车世界杯,中国队挺近决赛?这届世界杯咱们中国真的是除了足球队都去了。造价高达7。7亿美元的卢赛尔体育场是咱们中国建的,球迷们挥舞了旗帜吹的喇叭哨子70都是义乌制的,还有来自中国的裁判组,随处可见的中国赞助商持续领跑A0级十万级双细分市场,海豚是如何做到的?在新能源汽车渗透率攀上30。8的历史高点后,整个汽车市场的格局也在发生着剧烈的变化。转向新能源的大潮,让A0级纯电车型的市场批发量在10月份达到了10万辆,并且出现了现象级的车型比玩转高并发!17年开发经验架构师,历时三年编写Java高并发三部曲前言5G,IO,多屏合一,方物互联时代来了!太分n式高并发微服务架构己经成为Java后端应用的主流架构。但是对Java高并发,springcloudRPC底层原理Nginx底层原理荣耀80荣耀80PRO硬件配置怎么样?有哪些区别?2022年12月2日,荣耀80系列正式销售发布。荣耀80系列有三个型号分别是荣耀80PRO,荣耀80,荣耀80SE。荣耀80PRO长度163。3mm,宽度74。9mm,厚度7。8m比亚迪汉领衔,6款值得看的新能源车,性价比高,口碑也攒劲乘联会数据显示,2022年110月份中国新能源乘用车累计销量443。2万辆,全年超过550万辆已成定局。这个数据告诉我们,新能源车型已经相当成熟,基本上可以按需进行选购了。目前新能荣耀MagicVs对比三星GalaxyZFold4优缺点很明显随着折叠屏手机逐渐被大众认可,现在越来越多的手机厂商都发布了折叠屏手机,前有华为小米OPPO等手机厂商,现在荣耀也首次推出了两款折叠屏手机,分别是荣耀MagicVs和荣耀Magic
走进实景厦门剧本杀越杀越精彩来源台海网台海网12月16日讯(海峡导报记者张芯雅黄奕琳见习记者周恩臣文图)戴上帽子身着夹克,手上执一封密信四处寻找下一处任务点现在的厦门剧本杀,是越杀越精彩了,已经从单纯的玩家桌世界2022年最为精彩的旅行影像编译Mintina在17张令人印象深刻的照片中探索我们的世界。智利Patagonia山区戏剧性的山峰,郁郁葱葱的树林和除去格陵兰岛和南极大陆之外体量最大的冰面,智利PatagoniTikTok爆品趋势丨芭比粉浏览量1。8亿!义乌制造引爆粉色圣诞潮几近年末,一场粉色潮流再度席卷而来,2022年全球从粉色服饰配饰粉色家居产品美妆再到粉色圣诞树形成了一种前所未有的消费洪流。据WGSN近日发布的趋势预测报告称,粉红色的色调在222四海来临,沂起精彩冬日精品线路推荐亲情沂蒙贺年会请到沂蒙过大年临沂文化旅游资源丰富,冬季旅游产品种类齐全,泡温泉游溶洞看冰灯玩滑雪赏美景继冬游齐鲁沂蒙暖冬之旅惠民季主题宣传推广活动启动之后,亲情沂蒙贺年会又如约而至张嘉倪风波后首晒美照,参加晚会造型明艳动人,颜值实力碾压邵晴12月15日,众星将参加某大型晚会,女明星们都穿着礼服陆续现身,在上班路上的张嘉倪更是惊艳路人,这哪里像是刚被丈夫背叛的模样,张嘉倪没有自怨自艾,反而活得更漂亮了!张嘉倪扎着高马尾当我们讨论ASICS,我们在讨论什么?每个品牌都有其独特的产品和文化,这些内容和叙事吸引着消费者,也引发产生着更多关于其的思考讨论。继前两期讨论NIKEadidas之后,本期我们将目光聚焦在跑者心中占据重要位置的ASI微针看着吓人,做之后真香!毛孔粗大痘坑疤痕色斑皱纹皮肤敏感每个人的脸上或多或少都会有这些皮肤问题,而解决起来又相当地麻烦,毕竟日常护肤方法只是为皮肤表层做好保湿,但深入真皮层的这些问题,是心有余而力不足。那刘同说你的孤独虽败犹荣曾经认为孤独是世界上只剩下自己一个人。现在认为孤独是自己居然就能成为一个世界。有一种孤独是纵使青春留不住明知道结局是曲终人散,可当下却不得不放声大笑,直至在这样的尽兴中流下眼泪。如爱迎万难爱赢万难阅读本文前,点击上方卡片一键关注Episode02405在这虚伪的世界里,一定要懂得保护自己,知道也不能全说,听到也不能全信。合理装傻,但永远要清醒。。生活就是用那一两分的甜冲淡那当你用这种方式对一个人时,就知道他对你是不是真心的你爱过我吗?多少段在面临分道扬镳时的感情,不甘心的一方,总会声泪俱下的问对方一句你爱过我吗?试图从对方的口中知道自己被爱过,然后抓住这一点来挽留对方。可是,决定要走的人,在他心里,黄玫瑰别流泪,即使告别春天阳光,你依然要绽放黄玫瑰,别流泪,所有花儿你最美,受了伤,别伤悲,别让泪儿我会站在你的身旁,给你依靠的肩膀。心中有爱就很美别害怕别犯傻,别轻易剪去长发,我会站在你的身旁,给你依靠的肩膀父爱的无声伟大