摘要:
非功能性需求 非功能性需求是指依一些条件判断系统运作情形或其特性,而不是针对系统特定行为的需求。包括安全性、可靠性、互操作性、健壮性、易使用性、可维护性、可移植性、可重用性、可扩充性。 功能性需求 #用户需求 是从某一类用户的视角看他使用这个软件的需求。比如,作为用户你用淘宝,找东西,拍货,付款,你 阅读全文
摘要:
过度设计,一般是说过度满足用户需求的设计。用户想要 A,你给了他 ABCDE,结果 BCDE 全部用不上。既让用户选择困难,又浪费了团队开发时间。 即使是有经验的设计师,有时也容易陷入自己的「小循环」中难以自拔,过度追求一些体验的完美,或者需求的满足,而导致最终的实际使用体验下降,或者偏离产品设计初 阅读全文
摘要:
死信、延迟、重试队列 #死信队列 DLQ(Deal Letter Queue),死信队列。当一个消息在队列中变成死信之后,他能被重新发送到 DLQ 中,与 DLQ 绑定到队列就是死信队列。 #什么情况下需要死信队列 · 消息被拒绝 · 消息过期 · 队列达到最大长度 生产者生产一条消息,存储到普通队 阅读全文
摘要:
#什么是用户“痛点” 本文讲的“痛点”,就是指让目标用户付出某种行动的最大阻碍。 比如在美图秀秀之前,大部分图像处理软件(比如 PS)都专注于提高处理图像的性能,这个时候,让用户使用图像处理软件的最大阻碍是什么呢? 我想可能并不是图像处理的性能——对大多数人来说,PS 的性能已经足够好 这时,让用户 阅读全文
摘要:
双亲委派模型 #类加载器 #加载类的开放性 类加载器(ClassLoader)是 Java 语言的一项创新,也是 Java 流行的一个重要原因。在类加载的第一阶段“加载”过程中,需要通过一个类的全限定名来获取定义此类的二进制字节流,完成这个动作的代码块就是 类加载器。这一动作是放在 Java 虚拟机 阅读全文
摘要:
该问题就是服务集群因为网络震荡导致的多主多从问题,解决方案就是设置服务切换的超时时间,但也同时会导致无法达到高可用的要求。 阅读全文
摘要:
MySQL 优化 表关联查询时务必遵循 小表驱动大表 原则; 使用查询语句 where 条件时,不允许出现 函数,否则索引会失效; 使用单表查询时,相同字段尽量不要用 OR,因为可能导致索引失效,可以使用 UNION 替代; LIKE 语句不允许使用 % 开头,否则索引会失效; 组合索引一定要遵循 阅读全文
摘要:
(1)单块架构 网站开始建立时,用户少 , 网站架构都是用单体架构设计,共部署3台服务器,1台应用,1台数据库,1台图片。 1、应用服务器上发布,可能是把应用服务器上的Tomcat给关掉,替换系统的代码war包,重新启动Tomcat。 2、数据库服务器,存全部核心数据。 3、网络文件系统(NFS)作 阅读全文
摘要:
概述 以下列出两点重要特性: Lambda 表达式(匿名函数) Stream 多线程并行数据处理(重要) 接口的默认方法只需要使用 default 关键字即可,这个特征又叫做 扩展方法 Lambda 表达式 Functional 接口 函数式接口 是指仅仅只包含一个抽象方法的接口,每一个该类型的 L 阅读全文
摘要:
概述 任何执行 JavaScript 的环境称之为 执行上下文,默认情况下,执行上下文是全局的,这意味着如果代码作为简单函数调用的一部分执行,则该 this 变量将引用 全局对象 。在浏览器的情况下,全局对象是 windows 对象。但在 NodeJS 环境中,this 值是一个特殊的 global 阅读全文
摘要:
某公司的产品面试,面试前该公司让面试者做一道笔试题,笔试题目为: 针对以下需求提供一个解决方案:在卡牛-信用卡管家APP里面,我们的用户需要一个寻找 附近银行网点/ATM 的功能: 请交付你针对这个需求,设计的 Axure 原型界面的解决方案 在原型里面标明业务规则和你对这个需求的分析思考过程(脑图 阅读全文
摘要:
你如何考虑服务化 #集中式与分布式 要谈微服务,那么必须建立在分布式的基础上,对于一个集中式系统也无需谈微服务。 #集中式 集中式系统用一句话概括就是:一个主机带多个终端。终端没有数据处理能力,仅负责数据的录入和输出。而运算、存储等全部在主机上进行。 集中式系统的最大的特点就是部署结构非常简单,底层 阅读全文
摘要:
说说概要设计 概要设计是一个设计师根据用户交互过程和用户需求来形成交互框架和视觉框架的过程,其结果往往以反映交互控件布置、界面元素分组以及界面整体板式的页面框架图的形式来呈现。这是一个在用户研究和设计之间架起桥梁,使用户研究和设计无缝结合,将对用户目标与需求转换成具体界面设计解决方案的重要阶段。 概 阅读全文
摘要:
1、为什么用HashMap? 1.1、HashMap是一个散列桶(数组和链表),它存储的内容是键值对(key-value)映射 1.2、HashMap采用了数组和链表的数据结构,能在查询和修改方便继承了数组的线性查找和链表的寻址修改 1.3、HashMap是非synchronized,所以HashM 阅读全文
摘要:
原理 在SpringMVC中RequestMappingHandlerMapping是比较重要的一个角色,它决定了每个URL分发至哪个Controller。 Spring Boot加载过程如下,所以我们可以通过自定义WebMvcRegistrationsAdapter来改写RequestMappin 阅读全文
摘要:
Hystrix的熔断 Netflix’ Hystrix是第一个专门用于熔断的服务中间件。当它在2012年向公众发布,以提供“对延迟和失败有更大容忍度”的微服务架构时,Netflix已经在内部广泛使用了一年多的时间了。根据这个项目的描述,Hystrix一直是Netflix服务中间件的基本组成部分之一, 阅读全文
摘要:
服务追踪系统实现 上面是服务追踪系统架构图,你可以看到一个服务追踪系统可以分为三层。 数据采集层,负责数据埋点并上报。 数据处理层,负责数据的存储与计算。 数据展示层,负责数据的图形化展示 服务追踪的作用第一,优化系统瓶颈。通过记录调用经过的每一条链路上的耗时,我们能快速定位整个系统的瓶颈点在哪里。 阅读全文
摘要:
配置实时生效: 传统的静态配置方式要想修改某个配置只能修改之后重新发布应用,要实现动态性,可以选择使用数据库,通过定时轮询访问数据库来感知配置的变化。轮询频率低感知配置变化的延时就长,轮询频率高,感知配置变化的延时就短,但比较损耗性能,需要在实时性和性能之间做折中。配置中心专门针对这个业务场景,兼顾 阅读全文
摘要:
1、API网关介绍 API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。 API网关方式的核心要点是,所有的客户端和消 阅读全文
摘要:
目录 1.抽奖模块的背景引入 2.结合具体业务需求分析抽奖模块 3.一个未经过优化的模块架构 4.负载均衡层的限流 5.Tomcat线程数量的优化 6.基于Redis实现抽奖业务逻辑 7.发放礼品环节进行限流削峰 8.模块架构设计总结 1、抽奖模块的背景引入 本文给大家分享一个之前经历过的抽奖模块的 阅读全文