【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

独创分布式网络负载均衡实践

  • 2019-10-30
  • 本文字数:1848 字

    阅读完需:约 6 分钟

独创分布式网络负载均衡实践

一、概述

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


京东云独创分布式网络负载均衡(Distributed Network Load Balancer,简称 DNLB),是京东云基于 SDN 技术实现的无状态四层负载均衡。本文以 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 的访问情况。



2019-10-30 18:01986

评论

发布
暂无评论
发现更多内容

智能客服+智能助手,这波“数字员工”的业务能力太强了!

华为云开发者联盟

华为 AI 数字 智能客服 智能助手

我看JAVA 之 Class

awen

Java 源码 jdk class

我看JAVA 之 Annotation

awen

Java 源码 jdk 注解 annotation

深入解读华为云细粒度文本情感分析及其应用

华为云开发者联盟

AI 华为云 情感分析 语言语义 文本情感分析

写给 Go 初学者的指北

Rayjun

Go 语言

我看JAVA 之 Thread & ThreadLocal

awen

Java 源码 多线程

我看JAVA 之 枚举类型

awen

Java 源码 jdk 枚举

探索图神经网络的网络架构和训练方法

华为云开发者联盟

神经网络 AI 图神经网络 网络架构 GNNs

涨薪50%,从小厂逆袭快手 - 附面经

haxianhe

面试

如何探索自己的职业价值观,让工作更有动力

一笑

28天写作

Linux入门篇 —— Linux 用户与组管理详解(system-config-users && 命令行)

若尘

Linux 命令行 用户

多年阅读《经济学人》是一种什么体验?

wbliu85

Enterprise Tech30(2021)

行人23

Tech ET30

双指针高频面试题:「三数之和」的姐妹篇 ...

宫水三叶的刷题日记

面试 LeetCode 数据结构与算法

2021突击金三银四必备:BAT1000Java面试真题合集!

比伯

Java 编程 架构 面试 计算机

记忆这件“小事”「Day 7」

道伟

心理学 28天写作

从萧何进入咸阳丞相府到数字化时代的决策

数列科技杨德华

28天写作

Linux常见IO分析工具

运维研习社

我看JAVA 之 基本数据类型与封装类型

awen

Java 源码 基本数据类型

如何学习一项技能

不在调上

第十二周 学习总结

简简单单

优雅地停止Spring Boot应用

韩斌

(28DW-S8-Day7) 比特币原始文献略读

mtfelix

比特币 区块链 白皮书 28天写作 工作量证明

万绿丛中一点红——雷斯多夫效应

Justin

心理学 交互设计 28天写作 游戏设计

前端170面试题+答案学习整理(良心制作)

我是哪吒

程序员 面试 大前端 28天写作 2月春节不断更

推荐程序员平时使用最多的绘图软件!!!

秦怀杂货店

软件 流程图 绘图

第十二周 作业

简简单单

LiteOS:SpinLock自旋锁及LockDep死锁检测

华为云开发者联盟

死锁 LiteOS 自旋锁 SpinLock LockDep

GitHub上连夜被下架!阿里巴巴2021版JDK源码笔记(2月第三版)

Java架构追梦

Java 阿里巴巴 面试 jdk源码 金三银四

《经济学人》2021年2月27日刊精彩文章导读及资源下载

wbliu85

观点 | 破解云管理平台在数据中心管理体系中定位模糊的困局

BoCloud博云

云计算 PaaS 服务目录 多云管理平台 数据中心管理

独创分布式网络负载均衡实践_架构_京东云_InfoQ精选文章