• 关于

    四个系统是什么

    的搜索结果

问题

为什么使用消息队列?【Java问答学堂】17期

剑曼红尘 2020-05-13 20:39:29 1 浏览量 回答数 1

回答

面试官心理分析 其实面试官主要是想看看: 第一,你知不知道你们系统里为什么要用消息队列这个东西? 不少候选人,说自己项目里用了 Redis、MQ,但是其实他并不知道自己为什么要用这个东西。其实说白了,就是为了用而用,或者是别人设计的架构,他从头到尾都没思考过。 没有对自己的架构问过为什么的人,一定是平时没有思考的人,面试官对这类候选人印象通常很不好。因为面试官担心你进了团队之后只会木头木脑的干呆活儿,不会自己思考。 第二,你既然用了消息队列这个东西,你知不知道用了有什么好处&坏处? 你要是没考虑过这个,那你盲目弄个 MQ 进系统里,后面出了问题你是不是就自己溜了给公司留坑?你要是没考虑过引入一个技术可能存在的弊端和风险,面试官把这类候选人招进来了,基本可能就是挖坑型选手。就怕你干 1 年挖一堆坑,自己跳槽了,给公司留下无穷后患。 第三,既然你用了 MQ,可能是某一种 MQ,那么你当时做没做过调研? 你别傻乎乎的自己拍脑袋看个人喜好就瞎用了一个 MQ,比如 Kafka,甚至都从没调研过业界流行的 MQ 到底有哪几种。每一个 MQ 的优点和缺点是什么。每一个 MQ 没有绝对的好坏,但是就是看用在哪个场景可以扬长避短,利用其优势,规避其劣势。 如果是一个不考虑技术选型的候选人招进了团队,leader 交给他一个任务,去设计个什么系统,他在里面用一些技术,可能都没考虑过选型,最后选的技术可能并不一定合适,一样是留坑。 面试题剖析 为什么使用消息队列 其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么? 面试官问你这个问题,期望的一个回答是说,你们公司有个什么业务场景,这个业务场景有个什么技术挑战,如果不用 MQ 可能会很麻烦,但是你现在用了 MQ 之后带给了你很多的好处。 先说一下消息队列常见的使用场景吧,其实场景有很多,但是比较核心的有 3 个:解耦、异步、削峰。 解耦 看这么个场景。A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负责人几乎崩溃...... mq-1 在这个场景中,A 系统跟其它各种乱七八糟的系统严重耦合,A 系统产生一条比较关键的数据,很多系统都需要 A 系统将这个数据发送过来。A 系统要时时刻刻考虑 BCDE 四个系统如果挂了该咋办?要不要重发,要不要把消息存起来?头发都白了啊! 如果使用 MQ,A 系统产生一条数据,发送到 MQ 里面去,哪个系统需要数据自己去 MQ 里面消费。如果新系统需要数据,直接从 MQ 里消费即可;如果某个系统不需要这条数据了,就取消对 MQ 消息的消费即可。这样下来,A 系统压根儿不需要去考虑要给谁发送数据,不需要维护这个代码,也不需要考虑人家是否调用成功、失败超时等情况。 mq-2 总结:通过一个 MQ,Pub/Sub 发布订阅消息这么一个模型,A 系统就跟其它系统彻底解耦了。 面试技巧:你需要去考虑一下你负责的系统中是否有类似的场景,就是一个系统或者一个模块,调用了多个系统或者模块,互相之间的调用很复杂,维护起来很麻烦。但是其实这个调用是不需要直接同步调用接口的,如果用 MQ 给它异步化解耦,也是可以的,你就需要去考虑在你的项目里,是不是可以运用这个 MQ 去进行系统的解耦。在简历中体现出来这块东西,用 MQ 作解耦。 异步 再来看一个场景,A 系统接收一个请求,需要在自己本地写库,还需要在 BCD 三个系统写库,自己本地写库要 3ms,BCD 三个系统分别写库要 300ms、450ms、200ms。最终请求总延时是 3 + 300 + 450 + 200 = 953ms,接近 1s,用户感觉搞个什么东西,慢死了慢死了。用户通过浏览器发起请求,等待个 1s,这几乎是不可接受的。 mq-3 一般互联网类的企业,对于用户直接的操作,一般要求是每个请求都必须在 200 ms 以内完成,对用户几乎是无感知的。 如果使用 MQ,那么 A 系统连续发送 3 条消息到 MQ 队列中,假如耗时 5ms,A 系统从接受一个请求到返回响应给用户,总时长是 3 + 5 = 8ms,对于用户而言,其实感觉上就是点个按钮,8ms 以后就直接返回了,爽!网站做得真好,真快! mq-4 削峰 每天 0:00 到 12:00,A 系统风平浪静,每秒并发请求数量就 50 个。结果每次一到 12:00 ~ 13:00 ,每秒并发请求数量突然会暴增到 5k+ 条。但是系统是直接基于 MySQL 的,大量的请求涌入 MySQL,每秒钟对 MySQL 执行约 5k 条 SQL。 一般的 MySQL,扛到每秒 2k 个请求就差不多了,如果每秒请求到 5k 的话,可能就直接把 MySQL 给打死了,导致系统崩溃,用户也就没法再使用系统了。 但是高峰期一过,到了下午的时候,就成了低峰期,可能也就 1w 的用户同时在网站上操作,每秒中的请求数量可能也就 50 个请求,对整个系统几乎没有任何的压力。 mq-5 如果使用 MQ,每秒 5k 个请求写入 MQ,A 系统每秒钟最多处理 2k 个请求,因为 MySQL 每秒钟最多处理 2k 个。A 系统从 MQ 中慢慢拉取请求,每秒钟就拉取 2k 个请求,不要超过自己每秒能处理的最大请求数量就 ok,这样下来,哪怕是高峰期的时候,A 系统也绝对不会挂掉。而 MQ 每秒钟 5k 个请求进来,就 2k 个请求出去,结果就导致在中午高峰期(1 个小时),可能有几十万甚至几百万的请求积压在 MQ 中。 mq-6 这个短暂的高峰期积压是 ok 的,因为高峰期过了之后,每秒钟就 50 个请求进 MQ,但是 A 系统依然会按照每秒 2k 个请求的速度在处理。所以说,只要高峰期一过,A 系统就会快速将积压的消息给解决掉。 往期回顾: 【Java问答学堂】1期 为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景? 【Java问答学堂】2期 如何保证消息队列的高可用? 【Java问答学堂】3期 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性? 【Java问答学堂】4期 如何保证消息的可靠性传输?(如何处理消息丢失的问题?) 【Java问答学堂】5期 如何保证消息的顺序性? 【Java问答学堂】6期 如何解决消息队列的延时以及过期失效问题? 【Java问答学堂】7期 如果让你写一个消息队列,该如何进行架构设计? 【Java问答学堂】8期 es 的分布式架构原理能说一下么(es 是如何实现分布式的啊)? 【Java问答学堂】9期 es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊? 【Java问答学堂】10期 es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊? 【Java问答学堂】11期 es 生产集群的部署架构是什么?每个索引的数据量大概有多少? 【Java问答学堂】12期 项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果? 【Java问答学堂】13期 redis 和 memcached 有什么区别? 【Java问答学堂】14期 redis 都有哪些数据类型?分别在哪些场景下使用比较合适? 【Java问答学堂】15期redis 的过期策略都有哪些?内存淘汰机制都有哪些? 【Java问答学堂】16期如何保证 redis 的高并发和高可用?redis 的主从复制原理能介绍

剑曼红尘 2020-05-13 20:39:42 0 浏览量 回答数 0

回答

面试官心理分析 其实面试官主要是想看看: 第一,你知不知道你们系统里为什么要用消息队列这个东西? 不少候选人,说自己项目里用了 Redis、MQ,但是其实他并不知道自己为什么要用这个东西。其实说白了,就是为了用而用,或者是别人设计的架构,他从头到尾都没思考过。 没有对自己的架构问过为什么的人,一定是平时没有思考的人,面试官对这类候选人印象通常很不好。因为面试官担心你进了团队之后只会木头木脑的干呆活儿,不会自己思考。 第二,你既然用了消息队列这个东西,你知不知道用了有什么好处&坏处? 你要是没考虑过这个,那你盲目弄个 MQ 进系统里,后面出了问题你是不是就自己溜了给公司留坑?你要是没考虑过引入一个技术可能存在的弊端和风险,面试官把这类候选人招进来了,基本可能就是挖坑型选手。就怕你干 1 年挖一堆坑,自己跳槽了,给公司留下无穷后患。 第三,既然你用了 MQ,可能是某一种 MQ,那么你当时做没做过调研? 你别傻乎乎的自己拍脑袋看个人喜好就瞎用了一个 MQ,比如 Kafka,甚至都从没调研过业界流行的 MQ 到底有哪几种。每一个 MQ 的优点和缺点是什么。每一个 MQ 没有绝对的好坏,但是就是看用在哪个场景可以扬长避短,利用其优势,规避其劣势。 如果是一个不考虑技术选型的候选人招进了团队,leader 交给他一个任务,去设计个什么系统,他在里面用一些技术,可能都没考虑过选型,最后选的技术可能并不一定合适,一样是留坑。 面试题剖析 为什么使用消息队列 其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么? 面试官问你这个问题,期望的一个回答是说,你们公司有个什么业务场景,这个业务场景有个什么技术挑战,如果不用 MQ 可能会很麻烦,但是你现在用了 MQ 之后带给了你很多的好处。 先说一下消息队列常见的使用场景吧,其实场景有很多,但是比较核心的有 3 个:解耦、异步、削峰。 解耦 看这么个场景。A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负责人几乎崩溃...... 在这个场景中,A 系统跟其它各种乱七八糟的系统严重耦合,A 系统产生一条比较关键的数据,很多系统都需要 A 系统将这个数据发送过来。A 系统要时时刻刻考虑 BCDE 四个系统如果挂了该咋办?要不要重发,要不要把消息存起来?头发都白了啊! 如果使用 MQ,A 系统产生一条数据,发送到 MQ 里面去,哪个系统需要数据自己去 MQ 里面消费。如果新系统需要数据,直接从 MQ 里消费即可;如果某个系统不需要这条数据了,就取消对 MQ 消息的消费即可。这样下来,A 系统压根儿不需要去考虑要给谁发送数据,不需要维护这个代码,也不需要考虑人家是否调用成功、失败超时等情况。 总结:通过一个 MQ,Pub/Sub 发布订阅消息这么一个模型,A 系统就跟其它系统彻底解耦了。 面试技巧:你需要去考虑一下你负责的系统中是否有类似的场景,就是一个系统或者一个模块,调用了多个系统或者模块,互相之间的调用很复杂,维护起来很麻烦。但是其实这个调用是不需要直接同步调用接口的,如果用 MQ 给它异步化解耦,也是可以的,你就需要去考虑在你的项目里,是不是可以运用这个 MQ 去进行系统的解耦。在简历中体现出来这块东西,用 MQ 作解耦。 异步 再来看一个场景,A 系统接收一个请求,需要在自己本地写库,还需要在 BCD 三个系统写库,自己本地写库要 3ms,BCD 三个系统分别写库要 300ms、450ms、200ms。最终请求总延时是 3 + 300 + 450 + 200 = 953ms,接近 1s,用户感觉搞个什么东西,慢死了慢死了。用户通过浏览器发起请求,等待个 1s,这几乎是不可接受的。 一般互联网类的企业,对于用户直接的操作,一般要求是每个请求都必须在 200 ms 以内完成,对用户几乎是无感知的。 如果使用 MQ,那么 A 系统连续发送 3 条消息到 MQ 队列中,假如耗时 5ms,A 系统从接受一个请求到返回响应给用户,总时长是 3 + 5 = 8ms,对于用户而言,其实感觉上就是点个按钮,8ms 以后就直接返回了,爽!网站做得真好,真快! 削峰 每天 0:00 到 12:00,A 系统风平浪静,每秒并发请求数量就 50 个。结果每次一到 12:00 ~ 13:00 ,每秒并发请求数量突然会暴增到 5k+ 条。但是系统是直接基于 MySQL 的,大量的请求涌入 MySQL,每秒钟对 MySQL 执行约 5k 条 SQL。 一般的 MySQL,扛到每秒 2k 个请求就差不多了,如果每秒请求到 5k 的话,可能就直接把 MySQL 给打死了,导致系统崩溃,用户也就没法再使用系统了。 但是高峰期一过,到了下午的时候,就成了低峰期,可能也就 1w 的用户同时在网站上操作,每秒中的请求数量可能也就 50 个请求,对整个系统几乎没有任何的压力。 如果使用 MQ,每秒 5k 个请求写入 MQ,A 系统每秒钟最多处理 2k 个请求,因为 MySQL 每秒钟最多处理 2k 个。A 系统从 MQ 中慢慢拉取请求,每秒钟就拉取 2k 个请求,不要超过自己每秒能处理的最大请求数量就 ok,这样下来,哪怕是高峰期的时候,A 系统也绝对不会挂掉。而 MQ 每秒钟 5k 个请求进来,就 2k 个请求出去,结果就导致在中午高峰期(1 个小时),可能有几十万甚至几百万的请求积压在 MQ 中。 这个短暂的高峰期积压是 ok 的,因为高峰期过了之后,每秒钟就 50 个请求进 MQ,但是 A 系统依然会按照每秒 2k 个请求的速度在处理。所以说,只要高峰期一过,A 系统就会快速将积压的消息给解决掉。 消息队列有什么优缺点 优点上面已经说了,就是在特殊场景下有其对应的好处,解耦、异步、削峰。 缺点有以下几个: 系统可用性降低 系统引入的外部依赖越多,越容易挂掉。本来你就是 A 系统调用 BCD 三个系统的接口就好了,ABCD 四个系统还好好的,没啥问题,你偏加个 MQ 进来,万一 MQ 挂了咋整?MQ 一挂,整套系统崩溃,你不就完了?如何保证消息队列的高可用,可以点击这里查看。 系统复杂度提高 硬生生加个 MQ 进来,你怎么保证消息没有重复消费?怎么处理消息丢失的情况?怎么保证消息传递的顺序性?头大头大,问题一大堆,痛苦不已。 一致性问题 A 系统处理完了直接返回成功了,人都以为你这个请求就成功了;但是问题是,要是 BCD 三个系统那里,BD 两个系统写库成功了,结果 C 系统写库失败了,咋整?你这数据就不一致了。 所以消息队列实际是一种非常复杂的架构,你引入它有很多好处,但是也得针对它带来的坏处做各种额外的技术方案和架构来规避掉,做好之后,你会发现,妈呀,系统复杂度提升了一个数量级,也许是复杂了 10 倍。但是关键时刻,用,还是得用的。 综上,各种对比之后,有如下建议: 一般的业务系统要引入 MQ,最早大家都用 ActiveMQ,但是现在确实大家用的不多了,没经过大规模吞吐量场景的验证,社区也不是很活跃,所以大家还是算了吧,我个人不推荐用这个了; 后来大家开始用 RabbitMQ,但是确实 erlang 语言阻止了大量的 Java 工程师去深入研究和掌控它,对公司而言,几乎处于不可控的状态,但是确实人家是开源的,比较稳定的支持,活跃度也高; 不过现在确实越来越多的公司会去用 RocketMQ,确实很不错,毕竟是阿里出品,但社区可能有突然黄掉的风险(目前 RocketMQ 已捐给 Apache,但 GitHub 上的活跃度其实不算高)对自己公司技术实力有绝对自信的,推荐用 RocketMQ,否则回去老老实实用 RabbitMQ 吧,人家有活跃的开源社区,绝对不会黄。 所以中小型公司,技术实力较为一般,技术挑战不是特别高,用 RabbitMQ 是不错的选择;大型公司,基础架构研发实力较强,用 RocketMQ 是很好的选择。 如果是大数据领域的实时计算、日志采集等场景,用 Kafka 是业内标准的,绝对没问题,社区活跃度很高,绝对不会黄,何况几乎是全世界这个领域的事实性规范。

剑曼红尘 2020-04-16 16:34:44 0 浏览量 回答数 0

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

问题

消息队列有什么优点和缺点?【Java问答学堂】18期

剑曼红尘 2020-05-14 11:26:31 0 浏览量 回答数 1

回答

消息队列有什么优缺点 优点上面已经说了,就是在特殊场景下有其对应的好处,解耦、异步、削峰。 缺点有以下几个: 系统可用性降低 系统引入的外部依赖越多,越容易挂掉。本来你就是 A 系统调用 BCD 三个系统的接口就好了,ABCD 四个系统还好好的,没啥问题,你偏加个 MQ 进来,万一 MQ 挂了咋整?MQ 一挂,整套系统崩溃,你不就完了?如何保证消息队列的高可用,可以点击这里查看。 系统复杂度提高 硬生生加个 MQ 进来,你怎么保证消息没有重复消费?怎么处理消息丢失的情况?怎么保证消息传递的顺序性?头大头大,问题一大堆,痛苦不已。 一致性问题 A 系统处理完了直接返回成功了,人都以为你这个请求就成功了;但是问题是,要是 BCD 三个系统那里,BD 两个系统写库成功了,结果 C 系统写库失败了,咋整?你这数据就不一致了。 所以消息队列实际是一种非常复杂的架构,你引入它有很多好处,但是也得针对它带来的坏处做各种额外的技术方案和架构来规避掉,做好之后,你会发现,妈呀,系统复杂度提升了一个数量级,也许是复杂了 10 倍。但是关键时刻,用,还是得用的。 往期回顾: 【Java问答学堂】1期 为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景? 【Java问答学堂】2期 如何保证消息队列的高可用? 【Java问答学堂】3期 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性? 【Java问答学堂】4期 如何保证消息的可靠性传输?(如何处理消息丢失的问题?) 【Java问答学堂】5期 如何保证消息的顺序性? 【Java问答学堂】6期 如何解决消息队列的延时以及过期失效问题? 【Java问答学堂】7期 如果让你写一个消息队列,该如何进行架构设计? 【Java问答学堂】8期 es 的分布式架构原理能说一下么(es 是如何实现分布式的啊)? 【Java问答学堂】9期 es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊? 【Java问答学堂】10期 es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊? 【Java问答学堂】11期 es 生产集群的部署架构是什么?每个索引的数据量大概有多少? 【Java问答学堂】12期 项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果? 【Java问答学堂】13期 redis 和 memcached 有什么区别? 【Java问答学堂】14期 redis 都有哪些数据类型?分别在哪些场景下使用比较合适? 【Java问答学堂】15期redis 的过期策略都有哪些?内存淘汰机制都有哪些? 【Java问答学堂】16期如何保证 redis 的高并发和高可用?redis 的主从复制原理能介绍 为什么使用消息队列?【Java问答学堂】17期

剑曼红尘 2020-05-14 11:26:41 0 浏览量 回答数 0

回答

今天怎么就配置不起来,PHP配置上就提示在页面上提示 Service Unavailable,自然,ASP也不能正常运行了,后来在IIS中检查PHP的配置,发现php5isapi.dll没有被ISAPI筛选器正常加载,是红色的向下的箭头,正常情况应该是绿色向上的箭头,表示加载成功!于是将其删除后重新启动IIS,结果页面显示正常!于是重新检查PHP的配置,也没有发现什么异常现象,最后想到了有可能是权限问题,于是检查PHP安装文件夹的权限,发现没有EVERYONE权限,不知什么时候把EVERYONE权限给删除了,于是从新给EVERYONE加上了只读权限(只读权限就足够了),重启IIS后,一切正常关于网站出现Service Unavailable的说明原因一:网站超过了IIS连接数解决办法一:增加IIS连接数备注一:Windows 2003的操作系统在提示IIS过多时并非像win2000系统提示“链接人数过多”,而是提示”Service Unavailable”原因二:网站超过了IIS资源限制解决办法二:增加网站的资源备注二:Winodws2003中网站占用了超过IIS对该网站系统资源的限制后直接提示”Service Unavailable”原因三:网站的程序发生太多的错误解决办法三:修改程序错误备注三:Winodws2003中网站错误太多,就会造成该网站所在的应用程序池出错,这个时候可以在Windows2003的日志中看到“应用程序池 ‘xxx’ 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误”,这个时候网站就会直接显示”Service Unavailable”以上三个原因造成的”Service Unavailable”,一般现象是出现”Service Unavailable”后,多刷新几次,就可以打开。原因四:ACCESS引擎错误解决办法四:重启IIS备注四:有一些文件造成了ACCESS数据库出现“灾难性故障”及“未将对象引用设置到对象的实例”的错误原因四造成的”Service Unavailable”,现象是所有该服务器上的使用Access数据库的网站都出现错误,不能访问。以上四个原因是常见的造成了”Service Unavailable”的原因,其他还有一些问题造成了该问题,基本只要IIS重启一下就可以的。有时是IIS6.0的应用池限制,在IIS管理中可以看到应用池管理,点属性,限制内存大小使应池自动回收。这样平衡服务器资源,就不会出现“Service Unavailable

我的中国 2019-12-02 01:33:20 0 浏览量 回答数 0

问题

阿里云备案,被驳回的原因竟然是“ICP密码不正确”,请给个回复

ap1985z6f 2019-12-01 20:18:50 8047 浏览量 回答数 4

回答

回 楼主(kelakela) 的帖子 谢谢楼主对阿云浏览器的关注和支持~ 关于提到的第三个问题,自助转向后台是什么意思?第四个问题,需要有什么样的个性化定制呢?最后一个问题,有关假死的现象再详细描述下,你的操作系统、ie版本号和阿云浏览器的版本号是什么,浏览什么网页的时候出现这样的问题?

alibrowser 2019-12-02 02:47:31 0 浏览量 回答数 0

回答

Relinux系统怎么精简? 现在在云平台上,做到linux精简,只需要做到关闭不需要的linux服务即可。 关闭不需要的服务这个应该很容易理解的,凡是我们的系统不需要的服务,一概关闭,这样一个好处是减少内存和CPU时间的占用,另一个好处相对可以提高安全性那么哪些服务是肯定要保留的呢? 在linux机器上通常有四项服务是必须保留的: iptables linux下强大的防火墙,只要机器需要连到网上,哪里离得开它 network linux机器的网络,如果不上网可以关闭,只要上网当然要打开它 sshd 这是openssh server,如果你的机器不是本地操作,而是托管到IDC机房, 那么访问机器时需要通过这个sshd服务进行 syslog 这是linux系统的日志系统,必须要有,否则机器出现问题时会找不到原因 除了这四项必需的服务之外,其他的系统服务都可以关闭(具体需要什么服务,可以根据自己的需求选择开启)

乔锐杰 2019-12-02 02:29:54 0 浏览量 回答数 0

回答

什么是微服务?举个简单的例子,做一个用户管理项目,里边就三个功能:用户注册、用户登录、用户详情浏览。按照传统的软件开发方式直接创建一个Web项目,分分钟就把这三个功能开发出来了,但是我现在想使用微服务+服务治理的方式来开发:首先我将这个项目拆分为四个微服务,四个微服务各建一个模块,分别是用户注册模块、用户登录模块、用户详情浏览模块和数据库操作模块,这四个模块通过内部服务治理互相调用。但是现在存在一个问题,这四个模块通过服务注册与订阅的方式互相依赖,如果一个模块出现故障会导致依赖它的模块也发生故障从而发生故障蔓延,进而导致整个服务的瘫痪。比如说这里的登录模块依赖于数据库模块,如果数据库模块发生故障,那么当登录模块去调用数据库模块的时候可能得不到响应,这个调用的线程被挂起,如果处于高并发的环境下,就会导致登录模块也崩溃。当一个系统划分的模块越多,这种故障发生的频率就会越高,对于这个问题,Spring Cloud中最重要的解决方案就是断路器,那么本文我们就来看看什么是断路器。首先我们分别启动服务注册中心,再启动两个服务提供者的实例,端口号分别是8080和8081,然后再启动一个服务消费者,服务消费者的端口号为9000,这几个都启动成功之后,我们访问http://localhost:9000/ribbon-consumer这个地址,可以看到如下效果:Spring Cloud中的断路器Hystrix-博客-云栖社区-阿里云 https://yq.aliyun.com/articles/293633

zwt9000 2019-12-02 00:34:15 0 浏览量 回答数 0

问题

【精品问答】关于运维面试,必须掌握的问与答

问问小秘 2020-03-23 15:09:59 419 浏览量 回答数 2

回答

一、什么是类加载器? ​Java类加载器是Java运行时环境的一部分,负责动态加载Java类到Java虚拟机的内存空间中。类通常是按需加载,即第一次使用该类时才加载。由于有了类加载器,Java运行时系统不需要知道文件与文件系统。学习类加载器时,掌握Java的委派概念很重要。 二、它是干什么的? 类加载器它是在虚拟机中完成的,负责动态加载Java类到Java虚拟机的内存空间中,在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。 三、类加载器的层次 四、类加载器的四个方面 启动类加载器,没有父类。 拓展类加载器由Java语言实现,父类加载器为null 系统类加载器,由Java语言实现 自定义类加载器,父类加载器肯定为AppClassLoader

景凌凯 2020-04-23 23:01:07 0 浏览量 回答数 0

回答

错误代码出现原因有很多种: 1.在装系统时没有装好; 2.电脑的有些硬件驱动没有装好; 3.系统的缓存不够,太小了; 4.某些应用程序在安装有些文件会与系统文件相互共用,一但你删除或损坏这个程序的话,也就等于损坏了系统.计算机出现错误代码大部分是以上四个情况导致的,建议你根据不同的情况进行修复! 其实,无论是什么软件、什么程序,都是由程序员进行编写的 每个程序员都希望能编写出完美的应用程序代码 但难免会有疏忽之处.原因有多种: 一.编译错误,是由于不正确编写代码而产生.如非法实用或丢失关键字,遗漏必要的标点符号,函数调用缺参数或括号不匹配等.其它如变量未采用强制显式声明等而引起的错误.VB通常会在代码写时或运行时报错,按报错提示查找解决. 二.运行时出错,是指应用程序在运行其间执行非法操作或某些操作失败,如要打开的文件没找到,磁盘空间不够,除发运算中除数为0等.数组下标越界是一种典型的运行时错误,只有在运行时才会发现.三.逻辑错误,语法上找不出错误,应用程序也能运行,但得不到到预期结果,需认真分析并借助调试工具才能查出错误原因并改正. 可能网断了 视频播放失败 来源于网络,供您参考

保持可爱mmm 2019-12-02 02:20:23 0 浏览量 回答数 0

回答

4V 第一个V——高容量 这个最好理解,数据量一定要大,才好意思称自己为大数据嘛。大到什么程度呢?依目前行情来看,至少也要到TB级,很多案例都是PB甚至更高。但如果是GB级,非说自己是大数据也不是不可以,就是有点无颜见江东父老啊…… 第二个V——多样化 这个很关键了!是区别于以往海量数据挖掘的最主要特征。它有两层含义,一是数据来源多样化,系统数据、设备日志、传感器、文件系统等等来源。二是数据结构多样化,这是核心特征!要包含结构化数据、非结构数据(包括所谓半结构化数据)。 总结起来就是,多源异构。这就是为什么有人认为使用NoSQL数据库(如MongoDB)就是大数据了,因为满足了多样化的特征,但其实还不够。 第三个V——高速 即时效性,基本上至少也要达到亿级数据一秒查询,做的比较好的可以达到千亿级数据一秒查询。这个特征几乎决定了传统技术架构无法满足要求,因此Hadoop架构的出现催化了大数据的发展,也是有人认为Hadoop就是大数据的原因。 第四个V——价值 这个很好理解,数据一定要有价值、而后才能产生价值。就好比存商品的叫才能仓库,存垃圾的叫垃圾填满坑一样。没价值的数据就像一个垃圾填满坑,这也是为什么数据治理在大数据实施中非常重要的原因之一。 最后,也是最重要的,以上4个V是逻辑与的关系,即需同时、注意是同时满足上述四个特征,就可以放心的说自己是大数据了!

33128992 2019-12-02 03:11:10 0 浏览量 回答数 0

回答

作为一个研发工程师,无论你是否喜爱阅读,相信你都一定读过不少关于计算机技术的书籍。这其中不乏《21 天学会 JAVA》这样的语言入门书籍,也有《算法导论》这样的专题书籍,也有《人月神话》这样关于软件管理学的实用性的书籍。 也许你已经读过他们中的大部分,也许你现在还在不断地购入新的书籍来补充你的知识库。但请稍等一下,你是否思考过这样的问题,面对大量的计算机科学书籍,你是否都真正读懂了它们呢。有多少本书,当你将他放在书架上之后,就再也没有重新打开过。有多少知识是真正被存储在你的大脑中,并随时可以提供调用。拿到一本书后,高效阅读的正确姿势的什么。 如果你有以上的疑惑,那么接下来,我们将一起探讨一个问题,如何阅读一本计算机科学类书籍。 阅读的四种层次 首先,我们先要学会如何阅读。你可能会觉得不可思议,我已经接受过高等教育,怎么可能还不会阅读。然而可悲的是,现代教育体系中,恰恰忽略了对阅读能力的训练。我们在初中之后,阅读水平就几乎没有机会再得到提升。总体来说,阅读分为四种层次,分别是: 基础阅读 检视阅读 分析阅读 主题阅读 这其中的概念来源于莫提默·J·艾德勒和查尔斯·范多伦的著作《如何阅读一本书(How To Read A Book)》,这里我必须对其中的概念做简单的总结,以便在后续的篇幅中,我们能统一对阅读名词的理解。 当我们完成中学学业后,我们中的绝大部分人,都已经掌握了基础阅读的能力。在这个层次中,我们关心的是,书里的每句话是什么意思。这是一个最基础的层次。 检视阅读,我们也可以称之为快速阅读。快速浏览全书,了解书的主题,架构全书,提出核心问题。这并不是很新鲜的概念,但很多人可能并没有思考过,为什么要做检视阅读。检视阅读作用是为了帮助我们筛选这本书是否值得阅读,同时为接下来的分析阅读打下基础。在这个层次中,我们关心的是,这本书在讲什么。 分析阅读是一个更为高级的阅读层次,目标让我们能充分理解本书,与作者对话。其中包含了多个阶段,这里不再详述,有兴趣的同学可以研读原著。 当我们跨越过分析阅读后,这本书已经被我们掌握。此时,我们会就相同的主题,阅读不同的书籍,找出其中关联与矛盾,倾听不同的作者的不同声音,从而对某个主题产生更加深刻的认识。这个阶段,我们关注的不再是某一本书,而是一个具体的问题。 计算机科学书籍的特征 原著中针对不同类型的书籍,给予了不同的阅读建议。但由于所著时间很早,就计算机科学类图书的阅读建议,在书中并没有专门设计章节阐述。根据我的阅读经历,深感计算机科学类书籍,较其他类型图书有着其独特性: 单本书籍的信息量大 相较其他学科,绝大多数计算机科学类书籍并不是以得出结论并且论证结论为核心,而偏重于阐述方法和解释原理。有很多计算机书籍旨在剖析某个系统。这里的系统不仅仅指代诸如操作系统这样的实体系统,还包括一门语言或者一套管理方法论这样的理论系统。而系统通常是由多个部分组成的综合体,这其中势必包含不同组成部分的不同细节,信息量之大可见一斑。 注重实践 计算机科学是一门实用性的学科。这里的实用性可以理解为,计算机科学诞生的目的就是为了解决实际问题。因此,几乎所有的计算机科学书籍,都是以指导实践为目标而作。 更新速度快 计算机科学的更迭速度可以准确地被描述为日新月异。有些技术很快地火爆起来,又很快地消亡,所以有些书也就跟着很快地淹没在时代的进程中。 分类细致但同质度高 计算机科学对自己有着过分清晰的划分,不同的技术之间往往边界清晰。我们很少见操作系统和数据库系统在同一本书中论述,也不常见集不同语言之成的大作。由于领域划分细致,相同领域的书籍,多数时候往往论述的是同样的主题。 阅读计算机科学书籍的误区 绝大多数读者的错误意识在于把所有的书籍都认为是层层推进的论述过程。这样的阅读经验一旦沿用在计算机科学类书籍中,就会感觉举步维艰。前文说过,大多数的计算机书籍都是在剖析系统,一个系统又是由许多相互关联的部分组成。解读这类书籍,如同拆解一个机械,我们在拆解的过程,常常会犯下这些错误。

青衫无名 2019-12-02 01:20:38 0 浏览量 回答数 0

问题

问什么我换了好几个操作系统建个中文目录都是乱码

lwwmy 2019-12-01 21:16:54 4524 浏览量 回答数 1

问题

数据库选择

hc路遥 2019-12-01 21:40:11 6546 浏览量 回答数 4

回答

Re单核2G内存,2M流量 80%肯定需要优化了,我之前放了四个站,cpu和内存经常跑满,后来发现主要是其中两个站的原因,我直接给停掉就好了 不过我那两个站一个是dedecms做的一个是z-blog做的,你网站用的什么系统

罗鑫 2019-12-02 00:20:58 0 浏览量 回答数 0

问题

为什么在阿里云ICP代理备案系统账号注册不了?

鑫平 2019-12-01 19:39:05 975 浏览量 回答数 1

问题

阿里云把我害死了,希望快点改进吧亲

环保工程 2019-12-01 21:13:58 5239 浏览量 回答数 7

回答

我的建议,第一:尽全力去学c,而l不要管别人说什么c++/java/c#。所有操作系统都是c写的,你想想它的强大!第二:用什么工具学c又是一个问题,我推荐别用什么vc/vs/等等集成开发环境,哪样的话,你永远学不会c的强大(我推荐你试着在自己的计算机安装为linux系统,例如:ubuntu )然后使用vim编辑代码,gcc编译程序第三:选一本书,你能看得懂的,不要追求时尚去看英文版的(除非你像我一样喜欢英文,……呵呵。。开玩笑啦)最好是看外文翻译的,国外的教材的确写得好!第四:c语言很简单,但是要真正用起来,你最后应该去学习linux系统编程例如:socket,pthread,这些精通的话,其它什么java/都很容易理解啦!希望能帮到你!

a123456678 2019-12-02 02:15:29 0 浏览量 回答数 0

问题

http500错误,什么问题?求助。

落地花开啦 2019-12-01 19:37:40 1947 浏览量 回答数 1

问题

运维人员处理云服务器故障方法七七云转载

杨经理 2019-12-01 22:03:10 9677 浏览量 回答数 2

问题

如何快速定位云主机的故障

firstsko 2019-12-01 21:43:10 10637 浏览量 回答数 1

问题

OA实施各个过程一定要注意的问题

zhuzailin 2019-12-01 20:54:57 6054 浏览量 回答数 2

回答

在开始谈我对架构本质的理解之前,先谈谈对今天技术沙龙主题的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们战略上 要重 视 它 , 战术上又 要 藐 视 它。先举个例子感受一下千万级到底是什么数量级?现在很流行的优步(Uber),从媒体公布的信息看,它每天接单量平均在百万左右, 假如每天有10个小时的服务时间,平均QPS只有30左右。对于一个后台服务器,单机的平均QPS可以到达800-1000,单独看写的业务量很简单 。为什么我们又不能说轻视它?第一,我们看它的数据存储,每天一百万的话,一年数据量的规模是多少?其次,刚才说的订单量,每一个订单要推送给附近的司机、司机要并发抢单,后面业务场景的访问量往往是前者的上百倍,轻松就超过上亿级别了。 今天我想从架构的本质谈起之后,希望大家理解在做一些建构设计的时候,它的出发点以及它解决的问题是什么。 架构,刚开始的解释是我从知乎上看到的。什么是架构?有人讲, 说架构并不是一 个很 悬 乎的 东西 , 实际 上就是一个架子 , 放一些 业务 和算法,跟我们的生活中的晾衣架很像。更抽象一点,说架构其 实 是 对 我 们 重复性业务 的抽象和我 们 未来 业务 拓展的前瞻,强调过去的经验和你对整个行业的预见。 我们要想做一个架构的话需要哪些能力?我觉得最重要的是架构师一个最重要的能力就是你要有 战 略分解能力。这个怎么来看呢: 第一,你必须要有抽象的能力,抽象的能力最基本就是去重,去重在整个架构中体现在方方面面,从定义一个函数,到定义一个类,到提供的一个服务,以及模板,背后都是要去重提高可复用率。 第二, 分类能力。做软件需要做对象的解耦,要定义对象的属性和方法,做分布式系统的时候要做服务的拆分和模块化,要定义服务的接口和规范。 第三, 算法(性能),它的价值体现在提升系统的性能,所有性能的提升,最终都会落到CPU,内存,IO和网络这4大块上。 这一页PPT举了一些例子来更深入的理解常见技术背后的架构理念。 第一个例子,在分布式系统我们会做 MySQL分 库 分表,我们要从不同的库和表中读取数据,这样的抽象最直观就是使用模板,因为绝大多数SQL语义是相同的,除了路由到哪个库哪个表,如果不使用Proxy中间件,模板就是性价比最高的方法。 第二看一下加速网络的CDN,它是做速度方面的性能提升,刚才我们也提到从CPU、内存、IO、网络四个方面来考虑,CDN本质上一个是做网络智能调度优化,另一个是多级缓存优化。 第三个看一下服务化,刚才已经提到了,各个大网站转型过程中一定会做服务化,其实它就是做抽象和做服务的拆分。第四个看一下消息队列,本质上还是做分类,只不过不是两个边际清晰的类,而是把两个边际不清晰的子系统通过队列解构并且异步化。新浪微博整体架构是什么样的 接下我们看一下微博整体架构,到一定量级的系统整个架构都会变成三层,客户端包括WEB、安卓和IOS,这里就不说了。接着还都会有一个接口层, 有三个主要作用: 第一个作用,要做 安全隔离,因为前端节点都是直接和用户交互,需要防范各种恶意攻击; 第二个还充当着一个 流量控制的作用,大家知道,在2014年春节的时候,微信红包,每分钟8亿多次的请求,其实真正到它后台的请求量,只有十万左右的数量级(这里的数据可能不准),剩余的流量在接口层就被挡住了; 第三,我们看对 PC 端和移 动 端的需求不一样的,所以我们可以进行拆分。接口层之后是后台,可以看到微博后台有三大块: 一个是 平台服 务, 第二, 搜索, 第三, 大数据。到了后台的各种服务其实都是处理的数据。 像平台的业务部门,做的就是 数据存储和读 取,对搜索来说做的是 数据的 检 索,对大数据来说是做的数据的 挖掘。微博其实和淘宝是很类似 微博其实和淘宝是很类似的。一般来说,第一代架构,基本上能支撑到用户到 百万 级别,到第二代架构基本能支撑到 千万 级别都没什么问题,当业务规模到 亿级别时,需要第三代的架构。 从 LAMP 的架构到面向服 务 的架构,有几个地方是非常难的,首先不可能在第一代基础上通过简单的修修补补满足用户量快速增长的,同时线上业务又不能停, 这是我们常说的 在 飞 机上 换 引擎的 问题。前两天我有一个朋友问我,说他在内部推行服务化的时候,把一个模块服务化做完了,其他部门就是不接。我建议在做服务化的时候,首先更多是偏向业务的梳理,同时要找准一个很好的切入点,既有架构和服务化上的提升,业务方也要有收益,比如提升性能或者降低维护成本同时升级过程要平滑,建议开始从原子化服务切入,比如基础的用户服务, 基础的短消息服务,基础的推送服务。 第二,就是可 以做无状 态 服 务,后面会详细讲,还有数据量大了后需要做数据Sharding,后面会将。 第三代 架构 要解决的 问题,就是用户量和业务趋于稳步增加(相对爆发期的指数级增长),更多考虑技术框架的稳定性, 提升系统整体的性能,降低成本,还有对整个系统监控的完善和升级。 大型网站的系统架构是如何演变的 我们通过通过数据看一下它的挑战,PV是在10亿级别,QPS在百万,数据量在千亿级别。我们可用性,就是SLA要求4个9,接口响应最多不能超过150毫秒,线上所有的故障必须得在5分钟内解决完。如果说5分钟没处理呢?那会影响你年终的绩效考核。2015年微博DAU已经过亿。我们系统有上百个微服务,每周会有两次的常规上线和不限次数的紧急上线。我们的挑战都一样,就是数据量,bigger and bigger,用户体验是faster and faster,业务是more and more。互联网业务更多是产品体验驱动, 技 术 在 产 品 体验上最有效的贡献 , 就是你的性能 越来越好 。 每次降低加载一个页面的时间,都可以间接的降低这个页面上用户的流失率。微博的技术挑战和正交分解法解析架构 下面看一下 第三代的 架构 图 以及 我 们 怎么用正交分解法 阐 述。 我们可以看到我们从两个维度,横轴和纵轴可以看到。 一个 维 度 是 水平的 分层 拆分,第二从垂直的维度会做拆分。水平的维度从接口层、到服务层到数据存储层。垂直怎么拆分,会用业务架构、技术架构、监控平台、服务治理等等来处理。我相信到第二代的时候很多架构已经有了业务架构和技术架构的拆分。我们看一下, 接口层有feed、用户关系、通讯接口;服务层,SOA里有基层服务、原子服务和组合服务,在微博我们只有原子服务和组合服务。原子服务不依赖于任何其他服务,组合服务由几个原子服务和自己的业务逻辑构建而成 ,资源层负责海量数据的存储(后面例子会详细讲)。技 术框架解决 独立于 业务 的海量高并发场景下的技术难题,由众多的技术组件共同构建而成 。在接口层,微博使用JERSY框架,帮助你做参数的解析,参数的验证,序列化和反序列化;资源层,主要是缓存、DB相关的各类组件,比如Cache组件和对象库组件。监 控平台和服 务 治理 , 完成系统服务的像素级监控,对分布式系统做提前诊断、预警以及治理。包含了SLA规则的制定、服务监控、服务调用链监控、流量监控、错误异常监控、线上灰度发布上线系统、线上扩容缩容调度系统等。 下面我们讲一下常见的设计原则。 第一个,首先是系统架构三个利器: 一个, 我 们 RPC 服 务组 件 (这里不讲了), 第二个,我们 消息中 间 件 。消息中间件起的作用:可以把两个模块之间的交互异步化,其次可以把不均匀请求流量输出为匀速的输出流量,所以说消息中间件 异步化 解耦 和流量削峰的利器。 第三个是配置管理,它是 代码级灰度发布以及 保障系统降级的利器。 第二个 , 无状态 , 接口 层 最重要的就是无状 态。我们在电商网站购物,在这个过程中很多情况下是有状态的,比如我浏览了哪些商品,为什么大家又常说接口层是无状态的,其实我们把状态从接口层剥离到了数据层。像用户在电商网站购物,选了几件商品,到了哪一步,接口无状态后,状态要么放在缓存中,要么放在数据库中, 其 实 它并不是没有状 态 , 只是在 这 个 过 程中我 们 要把一些有状 态 的 东 西抽离出来 到了数据层。 第三个, 数据 层 比服 务层 更需要 设计,这是一条非常重要的经验。对于服务层来说,可以拿PHP写,明天你可以拿JAVA来写,但是如果你的数据结构开始设计不合理,将来数据结构的改变会花费你数倍的代价,老的数据格式向新的数据格式迁移会让你痛不欲生,既有工作量上的,又有数据迁移跨越的时间周期,有一些甚至需要半年以上。 第四,物理结构与逻辑结构的映射,上一张图看到两个维度切成十二个区间,每个区间代表一个技术领域,这个可以看做我们的逻辑结构。另外,不论后台还是应用层的开发团队,一般都会分几个垂直的业务组加上一个基础技术架构组,这就是从物理组织架构到逻辑的技术架构的完美的映射,精细化团队分工,有利于提高沟通协作的效率 。 第五, www .sanhao.com 的访问过程,我们这个架构图里没有涉及到的,举个例子,比如当你在浏览器输入www.sanhao网址的时候,这个请求在接口层之前发生了什么?首先会查看你本机DNS以及DNS服务,查找域名对应的IP地址,然后发送HTTP请求过去。这个请求首先会到前端的VIP地址(公网服务IP地址),VIP之后还要经过负载均衡器(Nginx服务器),之后才到你的应用接口层。在接口层之前发生了这么多事,可能有用户报一个问题的时候,你通过在接口层查日志根本发现不了问题,原因就是问题可能发生在到达接口层之前了。 第六,我们说分布式系统,它最终的瓶颈会落在哪里呢?前端时间有一个网友跟我讨论的时候,说他们的系统遇到了一个瓶颈, 查遍了CPU,内存,网络,存储,都没有问题。我说你再查一遍,因为最终你不论用上千台服务器还是上万台服务器,最终系统出瓶颈的一定会落在某一台机(可能是叶子节点也可能是核心的节点),一定落在CPU、内存、存储和网络上,最后查出来问题出在一台服务器的网卡带宽上。微博多级双机房缓存架构 接下来我们看一下微博的Feed多级缓存。我们做业务的时候,经常很少做业务分析,技术大会上的分享又都偏向技术架构。其实大家更多的日常工作是需要花费更多时间在业务优化上。这张图是统计微博的信息流前几页的访问比例,像前三页占了97%,在做缓存设计的时候,我们最多只存最近的M条数据。 这里强调的就是做系统设计 要基于用 户 的 场 景 , 越细致越好 。举了一个例子,大家都会用电商,电商在双十一会做全国范围内的活动,他们做设计的时候也会考虑场景的,一个就是购物车,我曾经跟相关开发讨论过,购物车是在双十一之前用户的访问量非常大,就是不停地往里加商品。在真正到双十一那天他不会往购物车加东西了,但是他会频繁的浏览购物车。针对这个场景,活动之前重点设计优化购物车的写场景, 活动开始后优化购物车的读场景。 你看到的微博是由哪些部分聚合而成的呢?最右边的是Feed,就是微博所有关注的人,他们的微博所组成的。微博我们会按照时间顺序把所有关注人的顺序做一个排序。随着业务的发展,除了跟时间序相关的微博还有非时间序的微博,就是会有广告的要求,增加一些广告,还有粉丝头条,就是拿钱买的,热门微博,都会插在其中。分发控制,就是说和一些推荐相关的,我推荐一些相关的好友的微博,我推荐一些你可能没有读过的微博,我推荐一些其他类型的微博。 当然对非时序的微博和分发控制微博,实际会起多个并行的程序来读取,最后同步做统一的聚合。这里稍微分享一下, 从SNS社交领域来看,国内现在做的比较好的三个信息流: 微博 是 基于弱关系的媒体信息流 ; 朋友圈是基于 强 关系的信息流 ; 另外一个做的比 较 好的就是今日 头 条 , 它并不是基于关系来构建信息流 , 而是基于 兴趣和相关性的个性化推荐 信息流 。 信息流的聚合,体现在很多很多的产品之中,除了SNS,电商里也有信息流的聚合的影子。比如搜索一个商品后出来的列表页,它的信息流基本由几部分组成:第一,打广告的;第二个,做一些推荐,热门的商品,其次,才是关键字相关的搜索结果。 信息流 开始的时候 很 简单 , 但是到后期会 发现 , 你的 这 个流 如何做控制分发 , 非常复杂, 微博在最近一两年一直在做 这样 的工作。刚才我们是从业务上分析,那么技术上怎么解决高并发,高性能的问题?微博访问量很大的时候,底层存储是用MySQL数据库,当然也会有其他的。对于查询请求量大的时候,大家知道一定有缓存,可以复用可重用的计算结果。可以看到,发一条微博,我有很多粉丝,他们都会来看我发的内容,所以 微博是最适合使用 缓 存 的系统,微博的读写比例基本在几十比一。微博使用了 双 层缓 存,上面是L1,每个L1上都是一组(包含4-6台机器),左边的框相当于一个机房,右边又是一个机房。在这个系统中L1缓存所起的作用是什么? 首先,L1 缓 存增加整个系 统 的 QPS, 其次 以低成本灵活扩容的方式 增加 系统 的 带宽 。想象一个极端场景,只有一篇博文,但是它的访问量无限增长,其实我们不需要影响L2缓存,因为它的内容存储的量小,但它就是访问量大。这种场景下,你就需要使用L1来扩容提升QPS和带宽瓶颈。另外一个场景,就是L2级缓存发生作用,比如我有一千万个用户,去访问的是一百万个用户的微博 ,这个时候,他不只是说你的吞吐量和访问带宽,就是你要缓存的博文的内容也很多了,这个时候你要考虑缓存的容量, 第二 级缓 存更多的是从容量上来 规划,保证请求以较小的比例 穿透到 后端的 数据 库 中 ,根据你的用户模型你可以估出来,到底有百分之多少的请求不能穿透到DB, 评估这个容量之后,才能更好的评估DB需要多少库,需要承担多大的访问的压力。另外,我们看双机房的话,左边一个,右边一个。 两个机房是互 为 主 备 , 或者互 为热备 。如果两个用户在不同地域,他们访问两个不同机房的时候,假设用户从IDC1过来,因为就近原理,他会访问L1,没有的话才会跑到Master,当在IDC1没找到的时候才会跑到IDC2来找。同时有用户从IDC2访问,也会有请求从L1和Master返回或者到IDC1去查找。 IDC1 和 IDC2 ,两个机房都有全量的用户数据,同时在线提供服务,但是缓存查询又遵循最近访问原理。还有哪些多级缓存的例子呢?CDN是典型的多级缓存。CDN在国内各个地区做了很多节点,比如在杭州市部署一个节点时,在机房里肯定不止一台机器,那么对于一个地区来说,只有几台服务器到源站回源,其他节点都到这几台服务器回源即可,这么看CDN至少也有两级。Local Cache+ 分布式 缓 存,这也是常见的一种策略。有一种场景,分布式缓存并不适用, 比如 单 点 资 源 的爆发性峰值流量,这个时候使用Local Cache + 分布式缓存,Local Cache 在 应用 服 务 器 上用很小的 内存资源 挡住少量的 极端峰值流量,长尾的流量仍然访问分布式缓存,这样的Hybrid缓存架构通过复用众多的应用服务器节点,降低了系统的整体成本。 我们来看一下 Feed 的存 储 架构,微博的博文主要存在MySQL中。首先来看内容表,这个比较简单,每条内容一个索引,每天建一张表,其次看索引表,一共建了两级索引。首先想象一下用户场景,大部分用户刷微博的时候,看的是他关注所有人的微博,然后按时间来排序。仔细分析发现在这个场景下, 跟一个用户的自己的相关性很小了。所以在一级索引的时候会先根据关注的用户,取他们的前条微博ID,然后聚合排序。我们在做哈希(分库分表)的时候,同时考虑了按照UID哈希和按照时间维度。很业务和时间相关性很高的,今天的热点新闻,明天就没热度了,数据的冷热非常明显,这种场景就需要按照时间维度做分表,首先冷热数据做了分离(可以对冷热数据采用不同的存储方案来降低成本),其次, 很容止控制我数据库表的爆炸。像微博如果只按照用户维度区分,那么这个用户所有数据都在一张表里,这张表就是无限增长的,时间长了查询会越来越慢。二级索引,是我们里面一个比较特殊的场景,就是我要快速找到这个人所要发布的某一时段的微博时,通过二级索引快速定位。 分布式服务追踪系统 分布式追踪服务系统,当系统到千万级以后的时候,越来越庞杂,所解决的问题更偏向稳定性,性能和监控。刚才说用户只要有一个请求过来,你可以依赖你的服务RPC1、RPC2,你会发现RPC2又依赖RPC3、RPC4。分布式服务的时候一个痛点,就是说一个请求从用户过来之后,在后台不同的机器之间不停的调用并返回。 当你发现一个问题的时候,这些日志落在不同的机器上,你也不知道问题到底出在哪儿,各个服务之间互相隔离,互相之间没有建立关联。所以导致排查问题基本没有任何手段,就是出了问题没法儿解决。 我们要解决的问题,我们刚才说日志互相隔离,我们就要把它建立联系。建立联系我们就有一个请求ID,然后结合RPC框架, 服务治理功能。假设请求从客户端过来,其中包含一个ID 101,到服务A时仍然带有ID 101,然后调用RPC1的时候也会标识这是101 ,所以需要 一个唯一的 请求 ID 标识 递归迭代的传递到每一个 相关 节点。第二个,你做的时候,你不能说每个地方都加,对业务系统来说需要一个框架来完成这个工作, 这 个框架要 对业务 系 统 是最低侵入原 则 , 用 JAVA 的 话 就可以用 AOP,要做到零侵入的原则,就是对所有相关的中间件打点,从接口层组件(HTTP Client、HTTP Server)至到服务层组件(RPC Client、RPC Server),还有数据访问中间件的,这样业务系统只需要少量的配置信息就可以实现全链路监控 。为什么要用日志?服务化以后,每个服务可以用不同的开发语言, 考虑多种开发语言的兼容性 , 内部定 义标 准化的日志 是唯一且有效的办法。最后,如何构建基于GPS导航的路况监控?我们刚才讲分布式服务追踪。分布式服务追踪能解决的问题, 如果 单一用 户发现问题 后 , 可以通 过请 求 ID 快速找到 发 生 问题 的 节 点在什么,但是并没有解决如何发现问题。我们看现实中比较容易理解的道路监控,每辆车有GPS定位,我想看北京哪儿拥堵的时候,怎么做? 第一个 , 你肯定要知道每个 车 在什么位置,它走到哪儿了。其实可以说每个车上只要有一个标识,加上每一次流动的信息,就可以看到每个车流的位置和方向。 其次如何做 监 控和 报 警,我们怎么能了解道路的流量状况和负载,并及时报警。我们要定义这条街道多宽多高,单位时间可以通行多少辆车,这就是道路的容量。有了道路容量,再有道路的实时流量,我们就可以基于实习路况做预警? 对应于 分布式系 统 的话如何构建? 第一 , 你要 定义 每个服 务节 点它的 SLA A 是多少 ?SLA可以从系统的CPU占用率、内存占用率、磁盘占用率、QPS请求数等来定义,相当于定义系统的容量。 第二个 , 统计 线 上 动态 的流量,你要知道服务的平均QPS、最低QPS和最大QPS,有了流量和容量,就可以对系统做全面的监控和报警。 刚才讲的是理论,实际情况肯定比这个复杂。微博在春节的时候做许多活动,必须保障系统稳定,理论上你只要定义容量和流量就可以。但实际远远不行,为什么?有技术的因素,有人为的因素,因为不同的开发定义的流量和容量指标有主观性,很难全局量化标准,所以真正流量来了以后,你预先评估的系统瓶颈往往不正确。实际中我们在春节前主要采取了三个措施:第一,最简单的就是有降 级 的 预 案,流量超过系统容量后,先把哪些功能砍掉,需要有明确的优先级 。第二个, 线上全链路压测,就是把现在的流量放大到我们平常流量的五倍甚至十倍(比如下线一半的服务器,缩容而不是扩容),看看系统瓶颈最先发生在哪里。我们之前有一些例子,推测系统数据库会先出现瓶颈,但是实测发现是前端的程序先遇到瓶颈。第三,搭建在线 Docker 集群 , 所有业务共享备用的 Docker集群资源,这样可以极大的避免每个业务都预留资源,但是实际上流量没有增长造成的浪费。 总结 接下来说的是如何不停的学习和提升,这里以Java语言为例,首先, 一定要 理解 JAVA;第二步,JAVA完了以后,一定要 理 解 JVM;其次,还要 理解 操作系统;再次还是要了解一下 Design Pattern,这将告诉你怎么把过去的经验抽象沉淀供将来借鉴;还要学习 TCP/IP、 分布式系 统、数据结构和算法。

hiekay 2019-12-02 01:39:25 0 浏览量 回答数 0

问题

我的天,这是什么个情况啊!?

怪盗基德君 2019-12-01 21:43:50 4005 浏览量 回答数 4

问题

ZooKeeper介绍、分析、理解

小柒2012 2019-12-01 21:21:22 11496 浏览量 回答数 2

问题

求助,我配置服务器上传网页之后打不开为什么呢

madianxu 2019-12-01 22:08:49 5956 浏览量 回答数 3

回答

回楼主北京亿网的帖子 感谢你的关注,以后有什么问题可以咨询我们北京亿网,由于给客户上了一台阿里云产品,深深体会到了客户的不容易,我们亲自沟通都不行,最后还是自己查出原因,投诉什么的是没用的,你自己生气还不如自己想办法,指不上,第三方公司一等一小天,并且真的问题他们也是处理不了,只有普通客户的问题才能解决估计,比如这次,一分钟就明白的事,万网和第三方弄四天,我们客户急了都,没办法我们通地不断检查测试,查清原因了. ------------------------- Re使用阿里云ECS无法安装SQL2005系统的问题 引用楼主北京亿网于2014-12-06 08:15发表的 使用阿里云ECS无法安装SQL2005系统的问题 : 问题描述 : 在安装mssql2005时,安装CD1顺利完成,在安装CD2时无法进行,双击安装文件后自动关闭,无提示!怎么解决? 看的日志提示是: 事件 ID ( 11260 )的描述(在资源( MsiInstaller )中)无法找到。本地计算机可能没有必要的注册信息或消息 DLL 文件来从远程计算机显示消息。您可能可以使用 /AUXSOURCE= 标识来检索词描述;查看帮助和支持以了解详细信息。下列信息是事件的一部分: 产品: Microsoft SQL Server 安装程序支持文件(英语) -- 错误 1260。由于一个软件限制策略的阻止,Windows 无法打开此程序。要获取更多信息,请打开事件查看器或与系统管理员联系。 ....... [url=http://bbs.aliyun.com/job.php?action=topost&tid=187191&pid=tpc][/url] 服务态度还行,就是服务方式不好,回复你的售后基本可以讲不算是一名技术人员,他不这样说也没什么可说的了,不过有一点说的没错,你这边不急不投诉他真不给你重视起来呢,你说怪不怪! ------------------------- Re使用阿里云ECS无法安装SQL2005系统的问题 问题已经自行查明原因,阿里提供镜象问题,暂时还无法加其他版本镜象,只能更换系统. ------------------------- 回6楼云追溯的帖子 好久没来阿里云论坛了,今天打开一看自己的贴子又跑首页了,你们就别指着给你解决什么,就一个弄清问题叫他们承认都要用我一个来月的时间,最后的结果是清楚原因,但不能给解决,只能逼着你换系统,所以别指望了,如果实在用不了,还是用我们的产品吧,还有代维服务,我们给客户代购的阿里云产品叫我们技术部操了不少心,要是我们的产品直接帮解决了,我这只能帮查出问题,叫人家解决,但后台没几个技术是专业的,全是叫第三方给查看,就算指出原因,也不会给解决,估计是反应不上去,没人重视,只要广告打的响,你们这些用不了的还不如新来的人多,不可能重视,大公司没办法! ------------------------- 回7楼ftp4oss的帖子 你的企业版2005数据库是装在阿里云2003系统上的吗,要是装2008系统上的这种另类反搭配就别在这讲了,那不如直接装SQL2008了.这个贴子的前题时指2003系统通常搭配的2005数据库无法安装的问题.原因是阿里云没有提供专业的服务器版系统静象,这种不专业的系统来当服务器系统,也只能装个人用的精简的数据库2005,企业的装不了. ------------------------- 回8楼拔刀斋的帖子 阿里云的技术支持仅限安装系统这部分,然后有什么问题安装什么他们也没个专业的技术来判断,只会告诉你支持,或是没限制,事实不是这样,因为他们提供的系统本身就有局限,等你问个半个月了也搞不了,他们换几个技术也搞不了时,会推荐你叫第三方服务,基本上所谓的第三方也没有几个专业的,提问一次两三天有个结果吧,建议没有技术力量的客户不要在折磨自己了,因为你搞什么想弄个对错都没有人帮你去判断!如果一定用阿里云可以联系我们代购,至少我们负责代维,不是他们后台不专业的技术说什么是什么,就是不给解决他也得承认我们查出的问题,到时你想退款也有依据.如果就是租了一个月也别退了,就当交学费了,直接在我们这买产品,我们可以代购阿里云,也有自己的产品,包维护,支持环境应用技术支持. ------------------------- 回9楼中国舞曲网的帖子 SQL2000这个版本有点低了,几年前我们就不装这种环境了,没有试,是不是阿里系统静象问题也不好说,如果还是那个静象那就是有问题,虽然此前有一个用户和我说同样的静象版本在另一个区购买的高配置就可以安装,这个我没亲自看,所以也不确定他说的是不是真实的,总之吧,服务器系统应用服务器版系统才是专业的,用什么标准,,精简,就是能装上以后也会有各种各样的问题,不专业的表现,配套能装上的也全是一些精简的个人研究之用的数据库版本,所以从专业角度就是系统问题,从相对论上来说,装个个人研究之用的数据库2005我也可以给客户装上,但那是精简的,你懂的! ------------------------- Re使用阿里云ECS无法安装SQL2005系统的问题 好久没来了,今天来看发现自己的贴子又叫顶到首页了,看来好有后来人在受困扰,那就全回复一下吧,另外有一些看了广告就来买阿里云又不会用的,又不会装环境的亲们,来北京亿网寻求帮助吧,提供代维服务. ------------------------- 回7楼ftp4oss的帖子 你要不是提供个截图我还真以为你装了个企业版,我贴子中似乎有讲过在我们遇到这个问题后,也有万网多名技术员测试安装无法成功,并且万网委托的第三方技术公司也未能安装成功,最后认同了我们的结论,他这个静象就不能装企业版2005,用一些方法装上后在以后使用和更新时会更多的麻烦,所以放下研究真的使用这样免强装上是不行的,但你这里还截了图,还安静的讲装上了还用了一年多,,为了不叫看我贴的其他用户叫你误导,本楼主在此有必要回复一下,你讲的可能是一个事实,但你截图的这个版本并不是企业版SQl2005,从你截图显示的版本号1399来看,似乎是开发版,并不是真正的企业版,所以和我讲的阿里云目前的提供的2003系统并不能完美安装SQL2005企业版不是同一个问题.看签名你还是级别: 工具与镜像服务商 ?那就向万网要求提供下服务器版2003静象吧,这样专业一些,能适合不同版SQL2005,就不会有这么多客户的各种问题了,我没有时间在建议这些. ------------------------- 回17楼数据佰度的帖子 17楼看来是真的去安装测试了,看得出 是比较认真的一个人,你的测试是正确的,万网电话客服人员普遍技术水平是零,包括后台技术的回复也是相当不负责,这一点我早早有提出过,但建议是建议,人家还是那样,从你讲的看来他们还是在和客户不停的讲这句,系统工程纯净的,全可以装,看来这个含糊不负责的回答现在想想不是他们不清楚这样回答不负责,这样回签对销量有意义,一些客户就是因为这句回答就买了,买完装不了就郁闷去吧.另外你楼上16楼他没你认真,他装的根本也不是企业版,所以他的测试没意义,你的结论是正确的. ------------------------- 回19楼围观群众1的帖子 只为了装上通过查看系统日志提示,通过结束进程,移队插件,直接用静象文件修复安装等多种方式都能完成安装过程,但这种安装并不是真的成功,特别是配套其他软件使用时,以后在更新升级时问题多多,这些最开始我们公司全有测试过,所以最后才有以上结论,阿里云这个2003系统并不是他们讲的那样可以装企业版2005,如果他们不能提供服务器版2003系统,大家就不要在浪费时间了. ------------------------- 回26楼围观群众1的帖子 这个贴子这么久还有人围观,首先感谢大家的关注和支持! 26楼看得出也是一个热爱技术和喜欢发现问题,研究问题,解决问的人,这很好! 但关于微软的系统版本和数据库版本对应问题,官方版本的划分已经是一个答案了,如果全通用还划分版本做什么,这本不是一个值得讨论的事情,此问题其根本是源于我的客户在咨询阿里售后时得到的精典答复是:系统是纯净的,全可以装"有关这个说法建议可以直接咨询微软方面,本人不过多说明,只是对热爱技术的网友回下贴,感谢关注. 你这种测试是有主观倾向的,什么也证明不了,服务器技术管理人员哪有不打补丁的呢,如果要把补丁移除才能装那本身就是个问题,为了解决一个问题而把一年的补丁移除来说明是补丁问题这相当的不可取,很危险的维护方式.补丁也是系统的一部分,并且不出意外你这种方式 装上了,在以后打补丁还会出问题,到时你来此贴报个道吧,如果只是为了能装上,方法很多,我的贴子中也有提到,但用户他租这个是用来使用的,不是一时研究之用,所以只有根本的解决方法才是真的解决,踏实的按微软的版本对应要求配置安装才是正道,其他全是取巧,如果就是暂时解决,以后服务器也是要升级补下的,如果微软某个补丁就是适于对应版本才可以时,那时才要换成对应版本吗,更何况叫服务商增加服务器版系统对客户是好事,对服务商来说也是更专业,难道租这个不是来当服务器吗 ------------------------- 回29楼兔子王的帖子 感谢围观,你这种租台机器挂QQ用的,是不需要装数据库的,所以你放不放心都没意义,更不会懂技术间讨论的那种乐趣,如果你的水平都可以来判断专业与否了,那会上网打字全是高级技术员了,如果你的乐趣就是用言语挑事,打个嗝都要说所处地气候环境不适合你生长,很不巧我向来以言语犀利 为自我评价。要不你开个贴我可以和你一样不知天高地厚的用敲字来PK下双方的神经反应系统灵敏度。所以不要在我的贴子上面发广告,还留个QQ,还网络公司,先不说你在我贴子下留广告这是一种不尊重,其次你那所谓的解决方式不是误人子弟吗,自己坑了不要急,不能坑了客户,给别人留后患.还某人某人的,如果没有建设性的技术方案要和大这交流的就收起你的广告和管好你地张嘴. ------------------------- 回 17楼(数据佰度) 的帖子 这个人厚道,至少他清楚我发这个贴子在说什么和我的用意,这是广大用户对阿里方面要求提升服务的一种鞭策,阿里方面至少和我直接沟通的人员也很认可我讲的这一点,至少态度是友好的,并且我发这个贴子时离2003官方不在支持还有半年,有一天我们也要给客户最好的支持,这才是服务,现在我们自己都不用2003了,因为官方不支持了,这个是一个硬性依据! ------------------------- 回 29楼(兔子王) 的帖子 对,这种人你得捧,给他勇气,叫他一直傻下去,一个版本对应问题官方都有说明的事,还搞的这么复杂,没人说镜象问题,我一直在说版本,要提供服务器版本,对大众客户来说,用标准版装去装企业版数据库就会碰到这样的问题,他们不是技术人员,你叫他们每个人和你一样去这样弄几天才成就了你的自尊心是吗,你那叫解决了是吗,过了半年你现在还这样想,那你真没救了,你看你已经把这位误导了。自己偶尔的一个测试原因尚不明确就拿 出来当论据了,很不负责任做为一个技术人员! ------------------------- 北京亿网感谢大家的关注,这个贴子很久了,今天上来结下贴的,欢迎大家交流,但希望发表技术类方面的言论时不要给其他人造成误导,否则我讲话可是很直接的叫你不舒服的,为了证明我不是恶意针对某人,在这里结贴时也给感谢一下阿里方面的回复,我今天 才上来看到,这对于个别人来讲,可能看了会感觉打脸,阿里人家不需要你的跪添,所以在讨论技术问题时至少不要在我面前硬装人,看下吧,那位硬说版本没半毛钱关系的那位,顺便说句这个贴子就结了,以后大家关注北京亿网新贴子,我们已经为用户提阿里美国,香港,国内的阿里云空间产品,新加坡的也要上线了,谢谢大家来使用,联系我们吧! 下面是阿里云工程师对我们这个提问的回复,结贴了,大家以后不要在讨论了。 售后工程师 :  您好,从如下微软官方SQL Server安装说明来看,Windows Server 2003标准版确实不支持安装SQL Server 2005企业版。http://technet.microsoft.com/zh-cn/library/ms143506(v=sql.90).aspx 当前查看您已经将服务器系统更换为2008。对于该问题给您带来的不便很抱歉。感谢您的问题反馈和对阿里云的信赖。  2014-12-29 18:35:29 ------------------------- 回 42楼(bjyw用户) 的帖子 用户您好,请别激动,也不要生气了!首先要感谢你告诉我们的账号叫封停了,你不告诉我们都不知道!刚已经联系阿里解封了,那个版主我就不点名了,他自己发的帖子植入广告别人又不是看不出来,估计当这个版主就是为了自己发广告方便才申请的吧,但你自己方便也就算了,怎么还乱用权限了呢, 有点自知之明好不好,我们下边的客户草根站长多的事,全应可以来申请版主,哪轮得到你删贴和禁言的,有事你说事啊,直接封公司的账号你脑子是不是缺点什么? 还有我这个帖子早就结贴了,那个小号上来骂骂咧咧的,某版主没见你一起封啊,用我们用户的话讲你是不是瞎?还有那个小号你也不要在这骂,我也理解你一万年解决了一个问题出来显摆下的心情,这类问题在技术部天天都有的事,我们都表示没什么可说的了,我都结贴了你怎么还没脸没皮的上来发上面的话?阿里工程师都回复,我都贴 出来了,告诉大家不要在讨论了,你看你把我们用户气的!在贴下你看看吧,无知喷人不要紧,但你也看明白人家讲什么你在喷啊,我在这里给大家讨福利的事,你在那折什么台呢,我们客户举的例子你要是看不懂,我给你举个吧:话说一个通道,客户人家就要正常的直接走过去,因为一直这样走,可你一定要来个左三步,右三步,退一步,进两步,搞的和过关一样,最后也能过去,或者叫用户记得这个口决每次也可以过去,你认为这个就不需要解决了是吧?问题是客户为什么要记这些,会这些呢,人家的软件又无问题,人家客户又不想聘个技术人员,如果说一次免费两次免费我们可以帮,但经常的重装我们没事就给处理这个问题吗?为什么不能一劳永逸?明白我发贴的意思了吗?还不理解我也没办法,我承认我嘴比较黑,但对客户这块不含糊,但你看客户有骂我的吗? 下面是阿里云工程师对我们这个提问的回复,结贴了,大家以后不要在讨论了。 售后工程师 :  您好,从如下微软官方SQL Server安装说明来看,Windows Server 2003标准版确实不支持安装SQL Server 2005企业版。 http://technet.microsoft.com/zh-cn/library/ms143506(v=sql.90).aspx 当前查看您已经将服务器系统更换为2008。对于该问题给您带来的不便很抱歉。 感谢您的问题反馈和对阿里云的信赖。  2014-12-29 18:35:29 看到了吧?看清了吗?可能有人会问,你知道这个原因为什么要发求助贴呢,为什么还讨论这么久呢?能这样问的只能说你没认真看我发的相关贴子,我在最开始联系阿里方面时就告诉是这个原因,要提供一个服务器版镜象就没问题了,但阿里后台客服坚持那句话“我们的系统没有问题,可以直接装你的那个企业版2005”并且客户自己也打电话问了,也是那样回答的!所以我们只能把处理记录和进程贴出来,叫客户也看到,最后客户也完全理解我们和阿里方面了不是吗?如果说我们是为了显摆什么技术,那这类问题每天给阿里发来10个贴子, 我们还得聘一个阿里论坛编辑了,所以这个贴子完全是因为用户要看,我们才发的!如果我们经常来,也不会叫某傻X版主封号都不知道了!

北京亿网 2019-12-02 01:11:23 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站