深圳房产 网站建设,中国邮政crm客户管理系统,做网站的猫腻,建设银行假网站CPU不是瓶颈#xff0c;网络才是#xff1b; 墨菲定律#xff1a;任何事情都没表面看起来那么简单#xff1b;会出错的总会出错#xff1b; 可靠性#xff1a; 集群#xff1a;无状态集群#xff1b;有状态集群#xff0c;很难处理#xff0c;尽量剥离出状态部分做集…CPU不是瓶颈网络才是 墨菲定律任何事情都没表面看起来那么简单会出错的总会出错 可靠性 集群无状态集群有状态集群很难处理尽量剥离出状态部分做集中式部署其他做无状态部署 mater/slave极端情况下快速切换恢复系统的可用性软件层面和硬件层面 数据raid磁盘阵列双写同步可靠性高影响效率异步可靠性低 跨机房跨网络电信移动跨交换机部署 限流/流量切换超过系统预估负载能力时可选择直接将部分请求丢弃来保证部分用户的适用一般在硬件或http服务器层面实现。一个系统中可能不同的部分其访问量是不同的对于有极大瞬发访问量的系统应该将其独立出来防止瞬发高并发带来的风险扩散到小流量系统上如通过域名分离秒杀系统的商品页和普通商品页 异步大流量系统调用小流量系统时可将瞬发的大流量请求异步化平摊到小流量系统各个时段。关键点中间件确保系统做出的保证一定会成功。猜测支付宝与银行系统的交互即是此种方式 系统化/服务化将内聚性高的功能独立出来单独服务专业的人做专业的事系统间通过高性能web service框架通讯有在保证功能、性能的情况下极大提高系统可靠性 降级如果系统依赖了第三方服务需要系统能在第三方服务宕机的情况下正常工作尽量不做到对第三方系统的强依赖 高并发 单机 应用层面的数据库优化是否做读写分离是否做分布式合理的表设计尽量避免大数据量表间的关联可通过合理的数据冗余实现合理区分冷热数据的存储合理规划索引参考sql执行计划优化sql纯数据库层面的应该由相关专业人员完成 业务层面优化业务流程使系统能通过更少的业务流程完成请求 并发大部分并发是可以通过合理的规划避免竞态无法避免的尽量通过atomic包同步 异步化如果一个请求需要非常长的业务流程才能完成可将这一串业务流程分为必需和可延后的两部分将必需的处理完成后将可延后流程交给中间件去异步执行系统依据中间件的可靠性保证语义预先返回业务流程正常完成 动静分离异步静态内容可通过缓存动态内容实时调用异步加载耗时长的内容加快请求相应速度 流量前置本质是通过如缓存业务结果、cdn 等手段将本来需要n个业务流程完成的请求由n个的业务流程完成处理 缓存jvm缓存/集中式缓存jvm缓存无网络开销但其在集群、和功能等方面较弱。宽泛来说缓存可看做流量前置的一种手段。关键点高命中率缓存失效策略此处更多考虑系统能否容忍不一致的情况。缓存策略和失效策略会极大影响缓存命中率缓存策略一般遵循局部性原理2-8原则根据具体的业务逻辑设计。缓存还可用作容灾手段缓存数据在第三方系统异常的情况作为数据的后备来源 集群尽量采用无状态架构即使必需有状态也尽量要将状态剥离做单独的集中式部署。 负载均衡f5lvs。考虑使用的算法lvs尽量采用响应流量由处理请求的服务器直接发送的方式避免负载均衡成为系统的瓶颈 分布式没实际经验感觉其规划层面和编码层面都比较难 后续记录在实际系统中应用转载于:https://www.cnblogs.com/ze2200/p/4294322.html