• peter
    2022-03-16
    请教老师几个问题啊: Q1:高并发标准是什么?多大的并发量算高并发? Q2:负载均衡器单点问题怎么解决? 如果负载均衡器也需要多个服务器,那么就需要在其前面加负载均衡器,如此递归,则为死循环,好像这个方法不行。那么,是采用两个机器互为主备吗?或者干脆就是一台,宕机后重启吗? Q3:F5、LVS是几层负载均衡? 买过老师的那本关于架构的书,几年前啦,现在不知道放哪里了。记得书中提过F5和LVS。那这两个是几层的负载均衡?好像记得书上说F5是硬件负载均衡;“硬件”负载的话,就不能说是某一层的负载均衡了,对吗? Q4:多大规模的互联网公司(或用户数)需要CDN? 什么级别的用户数需要用CDN?(也许是别的判断标准,不是“用户数”,而是“流量”等,就是说对是否需要采用CDN的标准不清楚)。更具体一点,像极客时间这样的公司需要用CDN吗? Q5:针对应用服务器,tomcat性能是不是不如Jetty? 比如tomcat处理速度比jetty慢、并发数比jetty低等(这两个方面只是举例,我并不清楚两者的区别) Q6:假设并发数五千,采用tomcat的话,需要几台服务器?(不考虑备份)。(是不是一台tomcat只能处理五百左右并发?记不清从哪里看到这个数字了) Q7:大型互联网公司的最前面入口是什么? 在讲互联网架构的书籍和专栏中,会提到用户请求到达的第一个设备,比如Nginx、F5等等。即便快如F5,其处理能力也是有限的,根本无力承担阿里这样的流量。那么,最前面的入口是怎么解决大流量的? 难道说有多个入口?如果是多个入口,这多个入门之前难道不需要一个“转发器”?如果需要一个“转发器”,那这个“转发器”也顶不住阿里这样的大流量啊,这不成了死循环了?
    展开

    作者回复: 1 高并发没有标准 2 有一种负载均衡叫DNS负载均衡,可以为多台负载均衡服务器在域名解析时进行负载均衡,相当于两层负载均衡。负载均衡服务器也会做主主热备,通过IP漂移的方式进行灾备切换。 3 F5、LVS支持IP负载均衡和链路层负载均衡,F5硬件也是在通信协议上进行负载均衡,只是把负载均衡代码固化在硬件里。 4 是否用CDN主要看响应中图片这类静态文件占比是不是很高,访问量是不是很大。具体多大量,看用户响应时间和图片服务器负载压力是不是能接受。看了一张极客时间的图片URL,https://static001.geekbang.org/resource/image/7a/30/7a76de65eb43771e3bd9e1f601b40830.jpg 使用独立二级域名,大概率是使用CDN的。 6 用多少服务器主要看服务器配置和程序逻辑,和Tomcat关系不大。 7 参考回答2

    
    7
  • 👽
    2022-03-15
    这篇,可能是最近几节以来,学习压力最小的一节。。。 说来惭愧,工作过程中其实还没有遇到过真正意义上的性能问题。主要提升还是提升请求性能。 首先考量,肯定还是代码层面。这是作为一个开发工程师最直接能做的。优化SQL性能,尝试接口拆分,优化代码结构等。 其次,如果中间会涉及外部请求。就考虑把这份外部请求的数据缓存起来。曾经有一个业务场景是用户调我们的接口查行情,然后我们再调第三方的接口再拼上我们的数据把行情返回给用户。其中调用第三方接口的这部分性能比较差(而且第三方接口是收费的)。我使用的方式就是把用户的请求缓存起来。比如,某用户查询了美刀的行情,我们就把这部分数据存几分钟,未来几分钟内所有的用户都拿这份数据。其实只有第一个用户体验较差,但是整体用户体验还是比较不错的。再加上是移动端的应用,偶尔请求慢了,用户也可以理解为运营商网络波动。 当然,还可以有其他的解决方案。比如,后台跑定时任务,后台更新行情。可以吗?当然是可以的,但是现实情况是,我们的用户访问时间段也不是24小时。这样轮询第三方接口,反而会增加第三方服务的费用开支。并且当时的开发人员只有我一个。所以我选择了一个,开发成本最低,但是能解决大多数用户体验的方法。 我的感悟是,其实很多时候,提升性能提升用户体验都是要成本的。 不考虑研发时间和金钱开支,很多问题可以很粗暴的解决。多地部署,就近访问,拉专线。凡是花钱,花时间解决的问题,解决起来都是比较轻松的。然而问题就是,很多时候,就给你这么多钱,这么多时间。还要把事干好,这就需要好好权衡了。
    展开

    作者回复: 赞

    共 2 条评论
    5
  • 春风百里
    2022-04-30
    请问老师,对实时性要求很高的并发量也很高写操作,消息队列的延迟无法接受,有哪些可能的技术方案可以推荐,比如是写MySQL,业界一般怎么处理?

    作者回复: 如果是非交易类的操作,对事务一致性要求不高,可以用HBase集群,甚至Redis集群解决。 对事务有要求,MySQL也可以的,只要MySQL集群规模足够大就可以了。用MQ解决高并发写的问题不是数据库搞不定,而是不想用大量的数据库服务器成本解决仅仅几分钟的高并发问题。 有钱可以为所欲为的。

    共 2 条评论
    2
  • HappyHasson
    2022-03-22
    二层负载均衡,返回消息给请求端是直接返回的,是需要后端服务器和请求端主动创建链接?这样会不会有直连风险?

    作者回复: 不需要创建链接,响应数据包还是走请求的路由通道,因为IP地址不变,网络层协议不受影响。

    
    
  • 启程
    2022-03-14
    分布式对象缓存就涉及到数据一致性的问题,这一方面老师能详细加一下吗?特别是大数据量对数据实时性还有一定的要求的场景

    作者回复: 后面文章14的案例会涉及一种缓存数据一致性的解决方案。

    
    
  • 郭硕
    2022-03-15
    老师的每篇文章都收益匪浅,了解了一种特定的架构方案,但是又感觉每篇点到为止,很多细节都没有探讨,而且感觉距离实际落地还有很大的距离,不知道老师有没有一些建议或者资料,能够让我们顺着老师的每节课更深入的学习每种架构方案?
    共 3 条评论
    9
  • 雪碧心拔凉
    2022-05-20
    负载均衡还分多种类型的负载。 应用层负载,响应内容要过负载,占带宽。 ip层负载,通过修改ip层的ip来达到负载的功能,效率更高,依然占带宽。 链路层负载,通过修改mac地址来达到负载的功能,响应内容直接从下游响应给用户,不过负载。 Dns负载,入口流量负载,通过解析域名返回不同ip地址。 缓存加速读操作,mq流量削峰,缓解写操作
    
    1
  • 姜兵
    2023-01-31 来自北京
    李老师好,请问硬件负载均衡F5属于哪一类的负载均衡,谢谢老师。
    
    
  • test
    2022-05-07
    吞吐量=并发数÷响应时间
    
    
  • 唐国强
    2022-03-17
    老师这里可以加上前提,垂直伸缩
    
    