干货 | 独创分布式网络负载均衡最佳实践

原创:   京东云IaaS产品部   京东云开发者社区    昨天

一、概述

在高可用场景中,后端服务器集群之前通常会部署负载均衡器,负载均衡器作为访问流量的统一入口,会将用户的访问流量按照一定的策略自主分发给多台后端服务器,从而调整资源利用情况,消除由于单台后端服务器故障对系统的影响,提高系统可用性、扩展系统服务能力。

京东云独创分布式网络负载均衡(Distributed Network Load Balancer,简称DNLB), 是一款基于京东云成熟健全的SDN技术实现的无状态四层负载均衡,提供软件定义的全可用区分布式负载均衡服务。


DNLB

不单独占用计算资源

天然具有转发性能无瓶颈

全可用区高可用

低时延和长期免费的优点

满足客户“三高一低”的服务场景需求

【高性能】

【高可用】

【高弹性】

【低延时】

本文以DNLB的高可用场景为例介绍其部署的最佳实践,使用到的京东云产品包括 云主机、DNLB、高可用组、私有网络及安全组。

二、场景需求

  • 负载均衡服务需采用多可用区部署,提供可用区级别的高可用。

  • 后端服务可根据流量负载情况自动调整后端服务器个数,以实现合理利用资源,并提供服- 务器跨AZ、跨机架的高可用。

  • 后端服务器绑定安全组,提供实例级别的安全防护。

  • 后端服务器需获取客户端的源IP,基于源IP地址统计用户访问量。

产品配置列表

三、配置步骤

私有网络

步骤1:创建私有网络
私有网络(Virtual Private Cloud,简称VPC),是您在京东公有云上自定义的逻辑隔离的网络空间,与您在数据中心搭建的传统网络类似,此私有网络空间由用户完全掌控,支持自定义网段划分、路由策略等。

创建DNLB和后端服务器所属的VPC。DNLB采用VPC内部署,可通过绑定弹性公网IP对外提供服务,隐藏内部结构,增强系统安全性。

步骤2:创建子网
子网是所属VPC IP地址范围内的 IP 地址块。目前私有网络中的部分云资源部署在子网内,如云主机、负载均衡等。不同VPC的子网 CIDR可以重叠,同一个VPC下的子网CIDR不可以重叠。

为提供子网级的安全性,部署后端服务实例属于单独的私有子网lb-subnet1,DNLB属于公有子网lb-subnet2。

安全组

安全组是一种分布式的、有状态的包过滤虚拟防火墙,可实现对实例的网络访问控制,从而控制一台或多台实例的访问流量。
修改私有网络dnlb-test-vpc的安全组“Linux安全组开放22端口”中的规则:

  • 入站规则放行目的端口为22、80的流量;

  • 出站规则放行所有流量。

实例模板

步骤1:创建私有镜像
私有镜像是基于您的自有实例创建自定义镜像,您可以为已部署业务的实例制作镜像,基于此镜像快速创建多个具有相同配置和软件环境的实例。您可以将私有镜像共享给同其他京东云用户,被共享镜像会显示在目标用户同区域的共享镜像列表中。

本举例中基于部署Nginx WEB服务的云主机创建私有镜像,并部署 GoAccess 用来统计源端用户的访问情况,高可用组弹性扩展时使用该镜像创建云主机实例。

步骤2:创建实例模板

高可用组

高可用组(Availability Group,简称AG)是京东云提供的业务高可用部署解决方案,是计算资源逻辑集合。提供了组内单元在数据中心内横跨多个故障域(Fault Domain,简称FD)均衡部署的机制,示例分散部署在相互隔离的物理资源上,当出现硬件故障或定时维护时只会影响部分实例,您的业务仍为可用状态。故障域间故障隔离,最大程度规避了局部故障对高可用应用整体的影响:

1、基于实例模板创建高可用组;

2、开启高可用组的自动伸缩功能,设置组内最大实例个数、最小实例个数及移除策略;

3、添加告警策略,基于监控指标实现后端服务器的弹性伸缩。

分布式网络负载均衡

步骤一:创建DNLB实例
DNLB实例必须与后端服务器组属于同一个地域下的同一个私有网络;
DNLB实例默认全可用区分布式部署,不需要用户额外配置。

步骤二:创建监听器
监听器用来通过协议和端口号监听需要进行负载均衡的请求。

步骤三:创建后端服务
后端服务用来定义访问流量自DNLB转发到后端服务器的转发协议、端口和调度算法。DNLB默认透传客户端源IP地址,不需要用户在DNLB和后端服务器上额外配置,满足用户溯源或基于源IP统计需求。

步骤四:创建健康检查
DNLB通过健康检查定时检测后端服务器的运行状况,可自定义检测频率、健康/不健康判断条件。开启健康检查后,当后端服务器运行异常时,DNLB将停止向其分发流量,且将流量分发给其他运行正常的后端服务器,异常后端服务器恢复正常后,DNLB再继续向其分发流量。

当绑定的后端服务为高可用组时,如不配置健康检查的端口,默认为后端服务上配置的端口。

步骤五:添加服务器组
添加高可用组作为后端服务器组提供服务。高可用组内的实例将根据负载情况按照设置的弹缩策略,自动增加或减少。

验证服务访问情况

(1)在浏览器中输入DNLB的公网IP,请求默认使用80端口,验证服务可以正常访问。

(2)DNLB可透传客户端源IP,不需后端服务器做任何额外配置。通过可视化工具 GoAccess 可统计不同源IP的访问情况。

*点击“ 阅读原文 ”

了解更多京东云分布式网络负载均衡产品信息 *


想要了解更多高并发解决方案,除我们的负载均衡产品,

还可报名参加 5月26日(周日)在上海举办的“京东云技术沙龙”

从京东在零售业和社交电商方面的核心技术以及在“618”、“双11”大促时的成功解决方案出发,带你探索新零售时代的数字化创新


阅读原文

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69912185/viewspace-2644530/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/69912185/viewspace-2644530/

干货 | 独创分布式网络负载均衡最佳实践相关推荐

  1. Nginx反向代理与负载均衡应用实践(二)

    Nginx反向代理与负载均衡应用实践(二) 链接:https://pan.baidu.com/s/1xB20bnuanh0Avs4kwRpSXQ 提取码:migq 复制这段内容后打开百度网盘手机App ...

  2. python 自动化微信小程序_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...

    原标题:干货 | 微信小程序自动化测试最佳实践(附 Python 源码) 本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善, ...

  3. 干货 | 京东云部署Wordpress最佳实践

    摘要 传统的IT环境构建是比较复杂的过程.从安装硬件.配置网络.安装软件.应用.配置存储等,许多环节都需要一定的技术力量储备.当环境发生改变时,整个过程需要重复进行.我们都知道,不同的人安装配置的环境 ...

  4. Nginx反向代理与负载均衡应用实践

    本链接转载自:https://www.cnblogs.com/chensiqiqi/p/9162926.html 仅供自学使用. 1.1 集群简介 简单地说,集群就是指一组(若干个)相互独立的计算机, ...

  5. 均衡原理_干货什么是负载均衡?负载均衡原理详解

    负载均衡是高可用网络基础架构的一个关键组成部分,有了负载均衡,我们通常可以将我们的应用服务器部署多台,然后通过负载均衡将用户的请求分发到不同的服务器用来提高网站.应用.数据库或其他服务的性能以及可靠性 ...

  6. nginx 反向代理与负载均衡应用实践

    集群介绍 集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器.这些服务器之间可以彼此通信,协同向 ...

  7. Centos6.2上做nginx和tomcat的集成及负载均衡(已实践)

    Centos6.2上做nginx和tomcat的集成及负载均衡 ---------------------------------------------------------Jdk-------- ...

  8. 微信 小程序 python 渲染_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...

    本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版,进阶学习文末加群! 随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序. ...

  9. 【干货】蚂蚁前端研发最佳实践

    作者:云谦,已获得作者授权转载 以下是云谦之前在成都全栈大会分享的文字稿,介绍了蚂蚁前端研发的最佳实践,其中提取了三个比较重要的点,每个点都是蚂蚁实践和深入思考后的结果,希望能对大家有所启发,欢迎探讨 ...

最新文章

  1. 香港浸会大学计算机系月入4万博士你还不心动吗?
  2. 十周第一次课(5月25日)
  3. android程序运行无操作一段时间显示屏保
  4. 计蒜客 A2232.程序设计:蒜厂年会-单调队列(双端队列(STL deque)实现)滑窗维护最小前缀和...
  5. 不同进制数的表示方法
  6. 四、Vue组件化开发学习笔记——父子组件通信,父级向子级传值(props),子级向父级传值(自定义事件),slot插槽
  7. php如何获取当前时间
  8. mysql for mac
  9. solr6.6 导入索引数据
  10. 电脑投屏电视怎么设置_夏普电视怎么投屏?投屏功能在哪?
  11. C++ std::set operator <= find失效 erase失效 解决方案
  12. mysql 利用延迟关联优化查询(select * from your_table order by id desc limit 2000000,20)
  13. 2015,记录成长,给自己一个愿景
  14. (干货分享)如何下载网站上的视频
  15. Python开发【十一章】:RabbitMQ队列
  16. Flask总结完整版
  17. 每一次严重事故都是可以预测的
  18. cml sml区别_资本市场线简介,资本市场线CML与SML的区别
  19. HTML+CSS实现导航条
  20. Android SDK 环境配置与离线安装问题(校园网)

热门文章

  1. 4月第4周业务风控关注 |国家网信办等4部门启动“剑网2019”专项行动!重点整治这5方面...
  2. 掌握一个ERP系统需要多长时间?
  3. 【信息系统项目管理师】第七章 成本管理思维导图
  4. 国家自然科学基金(NCFS)申请标书写作全攻略(转载自小木虫)
  5. Sitecore调用模板字段方法
  6. python 中煤_程序员如何用Python科学炒股
  7. 基于scp的上传工具sscp
  8. [虚幻4] 手雷抛物线预测(c++代码实现)
  9. transformer中的attention为什么scaled?
  10. Should Geithner Resign?