For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
分布式编程开发技术随着互联网的不断发展而被越来越多的程序员掌握,今天我们就通过案例分析来简单了解一下,分布式编程负载均衡基础知识分享。
一、什么是负载均衡?
什么是负载均衡?
Nginx是一个服务组件,用来反向代理、负载平衡和HTTP缓存等。那么这里的负载均衡是什么?
负载均衡(LB,LoadBalance),是一种技术解决方案。用来在多个资源(一般是服务器)中分配负载,达到优化资源使用,避免过载。
资源,相当于每个服务实例的执行操作单元,负载均衡就是将大量的数据处理操作分摊到多个操作单元进行执行,用来解决互联网分布式系统的大流量、高并发和高可用的问题。那什么是高可用呢?
二、什么是高可用?
先了解什么是高可用?
这是CAP定理是分布式系统的基础,也是分布式系统的3个指标:
Consistency(一致性)
Availability(可用性)
Partitiontolerance(分区容错性)
那高可用(HighAvailability)是什么?高可用,简称HA,是系统一种特征或者指标,通常是指,提供一定性能上的服务运行时间,高于平均正常时间段。反之,消除系统服务不可用的时间。
衡量系统是否满足高可用,就是当一台或者多台服务器宕机的时候,系统整体和服务依然正常可用。
举个例子,一些知名的网站保证4个9以上的可用性,也就是可用性超过99.99%。那0.01%就是所谓故障时间的百分比。比如电商网站有赞,服务不可用会造成商家损失金钱和用户。那么在提高可用性基础上同时,对系统宕机和服务不可用会有补偿。
比如下单服务,可以使用带有负载均衡的多个下单服务实例,代替单一的下单服务实例,即使用冗余的方式来提高可靠性。
总而言之,负载均衡(LoadBalance)是分布式系统架构设计中必须考虑的因素之一。一般通过负载均衡,冗余同一个服务实例的方式,解决分布式系统的大流量、高并发和高可用的问题。负载均衡核心关键:在于是否分配均匀。
三、常见的负载均衡案例
场景1:微服务架构中,网关路由到具体的服务实例hello:
两个相同的服务实例helloservice,一个端口8000,另一个端口8082
通过Kong的负载均衡LB功能,让请求均匀的分发到两个hello服务实例
Kong的负载均衡策略算法很多:默认weighted-round-robin算法,还有consumer:consumerid作为hash算法输入值等
场景2:微服务架构中,A服务调用B服务的集群。通过了Ribbon客户端负载均衡组件:
负载均衡策略算法并不高级,简单的是随机选择和轮循
四、互联网分布式系统解决方案
常见的互联网分布式系统架构分为几层,一般如下:
客户端层:比如用户浏览器、APP端
反向代理层:技术选型Nignx或者F5等
Web层:前后端分离场景下,Web端可以用NodeJS、RN、Vue
业务服务层:用Java、Go,一般互联网公司,技术方案选型就是SC或者SpringBoot+Dubbo服务化
数据存储层:DB选型MySQL,Cache选型Redis,搜索选型ES等
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。