42 | 互联网架构模板:“网络层”技术
42 | 互联网架构模板:“网络层”技术
讲述:黄洲君
时长10:07大小4.63M
负载均衡
CDN
多机房
多中心
小结
赞 11
提建议
精选留言(34)
- narry2018-08-02负载均衡和cdn基本是和业务无关,具有通用性,而每个业务对数据的一致性和事务要求都不一样,需要单独设计,所以无法将多机房和多中心作为基础服务对外提供
作者回复: 赞同
60 - J2018-09-04老师你好,请教一个问题,像车联网这种业务,拥有上百万的车载终端,车端会实时上传当前数据,同时服务器会需要控制单独某台车(下行消息),这种场景一般采用哪种架构呢?如果采用MQ的话,一般的消息中间件只能支持几千上万的队列,满足不了要求,请老师指点,谢谢🙏
作者回复: 通常的做法是将连接管理和消息管理分开,消息队列存储需要下发的消息,连接管理从消息队列取消息然后下发,消息中标识要发给哪台车
共 4 条评论25 - 许鑫2018-08-07想问下,类似支付宝的场景如何保证异地金额的强一致性
作者回复: 我不清楚技术细节,从理论上来说,余额和库存异地强一致性会导致性能大幅下降,不适合互联网场景。支付宝有个TCC事务模型,你可以查一下资料。 即使是银行,对并发性能要求没那么高,余额也难以做到异地强一致性,我了解一般都是做备份,异地强一致性太复杂
共 3 条评论16 - SMTCode2018-08-02CDN和LB是基于通用技术和协议,实现请求的调度与转发等功能。而多机房、多中心,是与业务强相关,对业务有很大侵入性的,只能是服务的实现者根据自己的侧重点,选择合适的技术,有针对性的实现服务的三高指标。
作者回复: 正确👍
15 - 钱2019-09-04课后思考及问题 1:为什么可以购买负载均衡和 CDN 服务,但却不能购买多机房和多中心服务? 这个问题,我第一感觉是个伪问题,商业社会没什么不能买的,土地、房屋、武器、公司都能买卖,多机房和多中心服务更如是。 当然也理解老师的意思,主要是站在架构师的角度来看,负载均衡和CDN与业务关联性小,花钱也相对少,买来直接就能用,需要的也多一些,所以,购买使用比较顺当自然。 多机房和多中心服务,实现上和业务关联性大,除非订制化否则难以买来就用,如果自己的公司都发展到必须使用多机房和多中心了,招兵买马自己搞一套才是自然而然的想法。展开
作者回复: 思考和回答很到位👍👍
13 - kyq叶鑫2018-12-05老师你好,你在评论或者专栏中多次说道金融类业务无法做到跨城强一致性,并以支付宝举例,我一直有一个疑问:那么如果一个支付宝用户走出其数据所在大区,支付宝是如何处理这个用户的数据,保证业务不出错的呢? 望解惑。
作者回复: 有全局路由会把用户路由到其数据归属的大区
11 - LB2018-08-06仔仔老师你好,有两个问题请帮忙解答: 1.请问银行异地存取款的数据强一致性是怎么做到的?还可以在国外消费做到强一致性? 2.银行常用的两地三中心是真正的多中心吗?如何判断? 谢谢。
作者回复: 1. 异地取款其实只是用户异地操作,系统还是会回到用户开户行判断余额;异地存款不需要校验余额,只需要校验账号,因此做异地存款是可以的,因为银行能收到物理上真正的钱,不用担心数据丢失的问题 2. 两地三中心,是指同城两个机房是双活,异地机房是备份,当同城两个机房都挂掉,异地机房不能接管业务,只能用来备份恢复
8 - 呵呵2018-08-27大神问两个问题,1.假如有很多台nginx做负载均衡,那么请求是如何分发到这么多nginx服务上的?2. 对于支付宝的转账业务,需要数据强一致性,那是不是就无法做到跨城市区域存储相关的数据?
作者回复: 1. 硬件负载均衡设备,F5了解一下 2. 是的,跨城不行,但同城多机房可以基于paxos算法设计分布式一致性存储系统,例如oceanbase
共 2 条评论6 - 凡凡2018-08-05多机房多中心,业务相关性太强,很难抽象绝对合适的模型,通用差。一般都是企业按照自己的特定业务,适当的做多中心,或者做到数据异地灾备,或者做到多中心服务。 或许,现在的云服务厂商,会逐渐面向行业,抽象出多种多中心方案,也是可能得。 毕竟云服务厂商在全球范围,已经有了很多机房,如果能抽象出来一定会做尝试的,不论用户多少,这是一种能力。展开
作者回复: 是的,现在有金融云,游戏云,证券云等解决方案了
6 - LB2018-08-05仔仔老师,服务器中间件的连接数有限,例如WAS的连接池一共有几千。而咱们说的一台服务器都并发好几万,请问是怎么搞的?谢谢。
作者回复: 一般说并发可以是并发连接,也可以是并发请求,nginx这类基于事件驱动架构的服务器,连接数和请求数都可以上万,以前的apache基于ppc模式,连接数受C10K问题限制,达不到上万
3 - 敬艺2018-08-05即使机房接入CDN,如果CDN支持的网络服务商不够的话,用户访问时不时出现超时。如CDN只接入电信和联通(一时很难覆盖所有网络服务商),用户使用移动网络,访问服务会出现超时。请问大致从几方面优化?
作者回复: 接CDN一般都是三线都接的
3 - 空档滑行2018-08-02负载均衡和cdn虽然复杂,但是局限于技术层面。多中心和多机房则是技术和业务都要涉及到改造,比如文中说的淘宝多中心业务,每个业务模块都要定制,所以提供通用服务是不现实的
作者回复: 正确👍
3 - 正是那朵玫瑰2018-08-02华仔老师: 1、DNS负载均衡不一定是地里级别的吧,如consul就实现了dns服务器,内部服务注册到consul,消费者调用服务可以通过dns服务器做负载均衡,服务故障下线也能及时更新! 2、cdn和负载均衡应该是通用的技术吧,多机房和多中心跟业务强关联,没法抽象通用的东西来,就算能,使用起来也不灵活吧!
作者回复: 1. 可以做你说的功能,但这样做不常见,出问题可能处理比较麻烦 2. 正解
3 - Monday2020-10-16dig baidu.com 结果 : ; <<>> DiG 9.11.3-1ubuntu1.13-Ubuntu <<>> baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47856 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;baidu.com. IN A ;; ANSWER SECTION: baidu.com. 300 IN A 220.181.38.148 baidu.com. 300 IN A 39.156.69.79 ;; Query time: 8 msec ;; SERVER: 172.16.237.4#53(172.16.237.4) ;; WHEN: Fri Oct 16 10:23:55 CST 2020 ;; MSG SIZE rcvd: 70展开
作者回复: 你加个vpn再看看,结果就不同了
2 - LouisLimTJ2018-08-06其实谷歌有些产品号称可以做到同城和跨城高可用了,比如cloud Spanner,当然我没有在这些产品针对高可用的问题进行针对性的测试。 回到问题上来,主要第一. 想用的公司本来就少,方案贵;第二. 既然要用也是趋向自搭,可以针对业务进行定制化处理;第三. 个人看法,所提的问题层次最多是PaaS, 而既然同城跨城高可用跟业务有关,如果云平台技术实力强,不见得不可以考虑实现SaaS级别的跨城高可用展开
作者回复: 希望云平台能解决,目前很多公司都有多活的需求,但技术上自己又实现不了
3 - Geek_b04b122018-08-07比较好奇:像支付宝银行这些实现异地多中心的情况是如何达到的?专门部署自己的传输路线?包括蚂蚁金融、以前用mysql实现异地多数据中心,发现延迟有点大,稍微不对的操作就不同步了、
作者回复: 1. 有钱的公司买专线,非常有钱的公司自己搭建网络 2. 有的数据不能实现多中心,但可以实现数据分区,例如分为南方,北方,西南,西北四个数据大区
2 - Geek_b04b122018-08-07前者业务性不大,后者一般都自己搞,请技术顾问,毕竟自己的东西,数据什么的都是自己的核心,还是自己折腾比较好、烧钱、还是自己烧比较好、 今天用了亚马逊的CDN(router 53),发现对全球支持的比较好变成熟,看了阿里云,折腾了半天发现要达到一定的等级、感叹:国内和国外的技术还是有差距的、果断选择了亚马逊!
作者回复: 如果你们的业务聚焦国内,我还是推荐阿里云😀
共 2 条评论1 - flykyle2018-08-02华仔老师,本地服务(没有固定IP)和云端平台(在阿里云服务器上)之间的通信如何保证高可用?
作者回复: 通信保证高可用比较难,因为线路不是你控制的,是运营商控制的,一般我们是电信联通移动三条线路一起上
1 - 宇飞2022-06-29CDN和LB是基于通用技术和协议,实现请求的调度与转发等功能。而多机房、多中心,是与业务强相关,对业务有很大侵入性的,只能是服务的实现者根据自己的侧重点,选择合适的技术,有针对性的实现服务的三高指标。
作者回复: 正解
- William Ning2022-05-02➜ xx-api git:(dev) dig baidu.com ; <<>> DiG 9.10.6 <<>> baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48292 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;baidu.com. IN A ;; ANSWER SECTION: baidu.com. 427 IN A 220.181.38.148 baidu.com. 427 IN A 220.181.38.251 ;; Query time: 19 msec ;; SERVER: 192.168.31.1#53(192.168.31.1) ;; WHEN: Mon May 02 23:53:14 CST 2022 ;; MSG SIZE rcvd: 59展开