在DL1元1g流量充值平台平台内对于1元1g流量充值平台的运用?

region-detail-title
DL-6500型综合压力流量校准仪
region-detail-gallery
region-detail-property
此为参考价,您可以向供应商询价以得到最新报价
享受会员价、淘宝数据等更多权益
手机下单更便宜
一般情况下:
划线价格:划线的价格可能是商品的销售指导价或该商品的曾经展示过的销售价等,并非原价,仅供参考。
未划线价格:未划线的价格是商品在阿里巴巴中国站上的销售标价,具体的成交价格根据商品参加活动,或因用户使用优惠券等发生变化,最终以订单结算页价格为准。
活动预热状态下:
划线价格:划线的价格是商品在目前活动预热状态下的销售标价,并非原价,具体的成交价可能因用户使用优惠券等发生变化,最终以订单结算页价格为准。
未划线价格:未划线的价格可能是商品即将参加活动的活动价,仅供参考,具体活动时的成交价可能因用户使用优惠券等发生变化,最终以活动是订单结算页价格为准。
*注:前述说明仅当出现价格比较时有效。若商家单独对划线价格进行说明的,以商家的表述为准。
联系卖家:
交易勋章:
经营模式:
所在地区:
山东 青岛市崂山区
所选的供应产品最近6个月内无交易量,该版块将不会展示在首页
&先生&(销售一部 销售经理)
电&&&&&&话:
移动电话:
传&&&&&&真:
@88.com 版权所有责任编辑:周锦秀
没有关键字相关信息!
文章排行榜
编辑部电话:010-
投稿邮箱:.cn
在线客服QQ:
版权所有 《工业和信息化部网站备案许可证》编号:京ICP备号
本站常年法律顾问:北京市京师律师事务所 孟雷 律师
提供宽带支持使用google网站站长工具提升你的网站流量 - 站长百科深度思考 x 知识体系 x 行动中思考
【技术晨读】七层流量接入系统
1. 接入系统简介与架构
1.1 Go反向代理
用语言实现一个订制化的反向代理。
近几年在国内较流行,随着docker的成名而愈加受人追捧。目前国内使用Go开发的团队和系统越来越多,像百度的BFE、360的长连接推送、七牛云存储、滴滴登录认证等,名单很长。
Go比较适合于中间件(反向代理、消息队列等)以及旁路系统(存储、长连接推送等)的开发,也有很多团队开始使用Go来编写WebAPI(使用beego框架)。Go语言提供原生的协程(goroutine)支持,天生高并发,而且是用同步逻辑编写异步程序(语言底层封装了异步I/O),开发效率极高。
重复造轮子
业界有很多成熟的反向代理(Nginx、Tengine),为何不基于这些开源的项目二次开发?主要考虑三点:1)开发效率;2)订制化;3)维护成本。
Nginx和Tengine都基于C语言开发,C语言的开发效率相对较低,维护成本更大,在语言选型上更倾向于Go;考虑到订制化以及精简易懂(代码量小、逻辑少),倾向于重新实现一个反向代理,保持高扩展性的同时剔除不必要的逻辑。其实,主导思想就是:忌大而全。
1.2 一核多路
作为一个流量入口,其稳定性是设计时首要考虑的目标,于是提出了一核多路的思想。即一个涵盖基本功能且稳定运行的核心 + 多个扩展功能的旁路系统。有点像微服务的理念。
核心Server
Server必须保证高并发且提供可以扩展的口子。
Nginx通过master-worker多进程 + 异步I/O来实现高并发。借助于Go语言的优势,要实现高并发显得更加容易。用一个master的goroutine + 多个worker的goroutine即可。确切地,是每来一个http的请求,就新建一个goroutine。
每个worker协程中提供加解密、分流、防抓取以及转发等逻辑。借鉴Nginx的请求处理过程(phase),Server将请求抵达到请求返回划分为多个阶段,选择几个具有典型的阶段为回调注册点。所谓回调注册点,即允许在此点上注册handler函数,当请求执行到此流程点后,Server回调此函数。每个回调点对应一个handlers数组,在回调时,handlers被顺序执行。显然回调点机制提供了极方便的扩展性。
Module模型
回调点上的handler代表一个功能,Module则代表一类功能实体。即,一个Module可以在多个回调点上分别注册handler。譬如数据报表客户端和访问日志的Module就在两个回调点上分别注册了handler。
Module模型的出现,就象征着一核多路设计理念的实践与落地。当监控到系统运行状态负载过高、压力过大后,可以采取停掉某些Module的方式保障核心的稳定,实现服务降级。
2. 配置热更与优雅重启
接入服务,分流规则的变更、业务后端机器的变更、新增接入业务都是不可避免的事情,况且服务本身的升级与迭代更是持续的过程。如何在进行变更的时候保证系统服务的持续运行以及变更效率是接下来要聊得话题。
2.1 配置热更
在不停服务的情况下完成配置的变更叫配置热更。热更的唯一难点在于更换前后数据的一致性,即,当t时刻发生配置热更,对于t时刻以前抵达正的请求应该使用变更前的配置;对于t时候后抵达的请求,应该采用变更后的配置。
业界一般有两种解决方案:fork进程和指针切换。
master进程fork出一个子进程来load配置,当load完成后,master进程使配置变更前的子进程优雅退出。此种方案的好处是不必考虑各配置间的耦合性;缺点是实现起来略复杂。Nginx采用此种方案。
通过切换配置数据内存的地址,来实现变更。伪代码如下:
conf := NewConf()
// 新建一个配置对象,存储新的配置
ctx.Lock()
ctx.conf = conf
// 每个新抵达请求的上下文中保存新的配置地址
ctx.Unlock()
此方案之所以简单,依赖一个前提:语言本身提供gc机制。对于t时刻前的请求未服务完前,旧的配置内存不会被释放;当所有t时刻的请求都服务完后,gc回收内存。基于Go实现的接入系统,自然选择指针切换的方式实现配置热更。
配置热更其实还有一个潜在的巨大收益:平台化。将平台开放给各业务同学,从而解放接入系统维护人员的双手(再也不用每天接收大量的配置变更任务了)。
2.2 优雅重启
大家在进行系统迭代升级时,不得不面临发布上线的问题。如何能不停服务的情况实现系统的升级了?一般业界有三种解决方案:reuse port、fork + exec和healthcheck + supervisord。
reuse port
linux内核3.9提供了SO_REUSEPORT的属性,通过此选项可以让不同的进程bind()/listen()同一个TCP/UDP端口。意味着,当我们进行代码迭代时,可以在线上同时运行新旧两份代码,当新代码服务稳定后,让旧的进程退出从而完成代码平滑升级。利用此方案有两个点:1)内核要求;2)旧服务优雅退出。优雅退出并不困难,发送一个信号给旧进程,旧进程关闭掉listen端口,等系统中残留的请求服务完后退出即可。
fork + exec
master进程fork子进程,用exec调用自己,当系统服务运行后,发送信号给master进程,master进程关闭listen然后退出,这是一种最优雅的重启方式。伪码如下:
healthcheck + supervisord
发布前先摘掉机器上的healthcheck文件,等系统流量干净后,开始替换系统代码文件(二进制或其它),然后kill掉服务进程,supervisord拉起,从而实现升级,发布完后,添加healthcheck文件。
此种方案是业界使用最多的,很trik,但却比较有效。
3. 最佳实践
3.1 GC优化
go的gc优化主要有如下几种方法:
小对象合并栈上分配对象sync.poolcgo内存池升级go版本
其中cgo、内存池和升级go版本效果明显。cgo是Go提供的调用c代码的方式,运行效率相较于go要高;go1.7的release,和1.4.2版本对比测试,gc的停顿时间减少了30%。内存池(下图所示),即自行管理内存,在gc看来是一个对象,因此也能很好的缓解gc。3.2 TCP + protobuf
基于TCP协议,设计私有协议时,一般需要定义一个header和msg,如下图所示。对于msg的内容一般希望接收端能够直接映射成数据结构,即需要序列化和反序列化。常见的序列化协议很多,譬如json、thrift、hessian、protobuf等。我个人比较推荐protobuf,主要protobuf支持的语言较多、协议字段兼容性好、序列化反序列化速度快以及大厂(google)支持。
UDP作为一个无连接的协议,采用“尽力而为”的传输主旨,即不考虑网络状况和对方的接收能力,只要能发就尽力发,毫无顾虑。UDP的这个特性就意味着它不保证数据准确送达也不保证有序,对于拥塞的网络可能会使得网络情况更糟糕,这是UDP相较于TCP的缺点。但,却也正因为此,UDP传输效率高。
对于内网间的通信,网络情况可控,评估业务的特点(譬如实时性要求高,但可以容忍一定程度的丢包),可以尝试使用UDP作为传输协议。下图是我实测的内网跨机房间的udp丢包率。
3.4 Unix Domain Socket
对于进程间通信,Unix Domain Socket相较于Socket通信有较大的优势,其不需要进行网络协议栈的处理,简单的通过内存间的拷贝,速度极快。对于同机部署的服务间的通信,是个不错的选择。
至于Unix Domain Socket中面向连接的字节流和面向无连接数据报,两种都能保证数据准确抵达、且有序,唯一的差异只在于语义。譬如,Read操作时,字节流的服务,可以多次调用Read操作来接收发送端发送的一个报文数据;但数据包的服务,则一个包只允许一次Read操作。
4. 服务降级与预案
接入系统作为一个流量入口,稳定性首当其冲,当发生攻击和后端业务故障后,我们必须要有应对的方案。本章和大家讨论此问题。
4.1 服务降级
入口流量控制
当遭遇攻击导致流量突增后,可能导致系统资源瞬间耗尽而被操作系统杀掉进程。应对这种情况的比较粗暴的方法就是设置一个全局的计数器,此计数器记录了当前系统中驻留的请求的数目,一旦其值超过某个阈值后,新进来的请求将被拒绝。
如果要优雅的解决上述问题,则需要一个旁路的DDos防攻击的系统,其对请求进行多维度的计数,当达到一个阈值后,下发指令至接入系统,接入系统对新进来匹配上标记特性的请求实施拒绝。
当后端业务发生严重的超时故障后,转发至此业务的请求出现超时重试,一段时间内,系统中被消耗的资源随着时间推移而线性增加,导致GC压力过大,从而影响其它业务的响应时间。为了应对此种情况,设计了业务配额机制来使业务故障隔离,如下图所示。
设置各业务的配额有两种机制:静态和动态。静态配额严格依赖实验和经验,不是最优配置,但实现简单;动态配额,能最大程度的利用系统资源,但实现难度稍大。
*****************************************************************************
尊重知识来源,共享信息福利
************************************************************************************
四层、七层负载均衡的区别
没有更多推荐了,DL-Ⅲ型流量积算仪的应用--《电子仪器仪表用户》1999年02期
DL-Ⅲ型流量积算仪的应用
【作者单位】:
【分类号】:TP216.4
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【相似文献】
中国期刊全文数据库
张立坡;梁爽;;[J];科技致富向导;2011年20期
杨传彤;;[J];黑龙江交通科技;2011年05期
管友红;程昌云;;[J];新余学院学报;2011年03期
衷卫声;李一君;;[J];化工自动化及仪表;2011年08期
韩志刚;荆兆东;于力;;[J];品牌与标准化;2011年16期
张广瑞;;[J];石油工业计算机应用;2011年02期
魏英歌;;[J];中国新技术新产品;2011年18期
丁兴强;;[J];石油化工自动化;2011年02期
张伟斌;;[J];华章;2011年21期
王龙;李新颜;王林;;[J];煤矿现代化;2011年04期
中国重要会议论文全文数据库
杨维亮;;[A];中国电工技术学会水工业电工专委会第一届第二次年会暨技术交流会论文集[C];2001年
杨飚;;[A];中国计量协会冶金分会2009年年会论文集[C];2009年
鲍焕荣;;[A];’2001天津信息技术、电子、仪器仪表学术会议论文集[C];2001年
张兰;杨永奇;杨伟强;唐子穆;彭博;;[A];中国计量协会冶金分会2009年年会论文集[C];2009年
黄仲文;徐用懋;方崇智;;[A];1992年中国控制与决策学术年会论文集[C];1992年
姚成虎;王磊;;[A];首届信息获取与处理学术会议论文集[C];2003年
金艳;容实才;;[A];1995年中国智能自动化学术会议暨智能自动化专业委员会成立大会论文集(下册)[C];1995年
丁基敏;;[A];新世纪 新机遇 新挑战——知识创新和高新技术产业发展(上册)[C];2001年
贾云峰;;[A];首届全国称重技术研讨会论文集[C];1999年
张斓;崔爱国;;[A];第六届全国计算机应用联合学术会议论文集[C];2002年
中国重要报纸全文数据库
陈建海;[N];中国汽车报;2000年
黄继珍;[N];中国汽车报;2000年
沈阳 张国清;[N];电子报;2009年
徐涛;[N];电子报;2006年
徐涛;[N];电子报;2007年
熊英;[N];电子报;2004年
崔月;[N];电子报;2007年
张小燕;[N];中国石化报;2010年
;[N];电子资讯时报;2007年
晓兰;[N];中国建材报;2002年
中国博士学位论文全文数据库
汤健彬;[D];浙江大学;2001年
中国硕士学位论文全文数据库
牛桂芝;[D];太原理工大学;2007年
张磊;[D];哈尔滨工程大学;2008年
纪宏岩;[D];哈尔滨工业大学;2007年
张敏;[D];吉林大学;2009年
蒙奎君;[D];大连理工大学;2008年
丁志周;[D];重庆大学;2008年
张冬梅;[D];山东科技大学;2004年
胡雷;[D];武汉理工大学;2007年
徐垚;[D];北京工业大学;2006年
王颖丽;[D];电子科技大学;2007年
&快捷付款方式
&订购知网充值卡
400-819-9993

我要回帖

更多关于 无限流量卡4g 的文章

 

随机推荐