摘要:工厂模式 开发中,有时会需要根据不同的类型,创建同一接口的对应的不同实现类,再去执行方法。 工厂模式的理解,详情见: https://www.cnblogs.com/expiator/p/8245143.html 示例 以下会举一个例子,不同的反馈类型 type,创建不同的审批处理器对象,进行审批。
阅读全文
摘要:导入 导入在系统中属于比较常见的功能。 新增数据时,每次只新增一条数据,会比较慢。 可以通过导入excel文件,进行批量导入。 导入的主要流程 (1)用户点击下载excel导入模板 (2)用户填写模板数据后,点击上传文件,选中文件进行上传 (3)解析导入文件 (4)校验字段,并给出提示 数据全部校验
阅读全文
摘要:在工作中,有时会有对接其他部门系统的需求,这种需求虽然不复杂,但是跨部门协作,往往会出现各种难以沟通、协调的情况。 踩的坑多了,就记录下来。 注意:在本文中,A系统调用B系统,A依赖B,称B系统为下游系统,A系统为上游系统。 不同团队有不同的叫法,可能上下游还是相反的叫法。没有绝对的正确。 一、系统
阅读全文
摘要:数据开发的数据源 数据系统,一定要保存好数据源。最好有一个在线文档,把系统内各个功能用到的数据源记录下来。 否则人员变更,数据源丢失就非常麻烦了。 OLAP OLAP系统,(on-Line Analytic Processing)。在线分析处理 , 就是用于数据分析处理的系统。 离线数据 数据产生之
阅读全文
摘要:打印对象: 可以将对象、list等转换为 json字符串,再进行打印。 log.info("info value:{}", JSON.toJSONString(obj)); 打印debug日志: 开启debug级别时,才打印debug日志。 if (log.isDebugEnabled()) { l
阅读全文
摘要:es概念 Q:讲一下 elasticSearch。 可以从应用场景、概念、原理、优劣等多方面讲。 es应用场景:全文索引、近实时数据分析 优势:海量数据,支持亿万级别的搜索分析,近实时,支持并发。 劣势:不支持事务,不支持JOIN。 倒排索引 Q:elasticSearch 的倒排索引是什么? 传统
阅读全文
摘要:Redis Q:Redis有哪些优势? 速度快,因为数据存在内存中 支持丰富数据类型,支持string,list,set,sorted set,hash 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会
阅读全文
摘要:Kafka 面试题 Q:讲一下Kafka。 Kafka 入门一篇文章就够了 Kafka的简单理解 Q:消息队列,有哪些使用场景及用途? 解耦,削峰,限流。 Q:Kafka相对其他消息队列,有什么特点? 持久化:Kafka的持久化能力比较好,通过磁盘持久化。而RabbitMQ是通过内存持久化的。 吞吐
阅读全文
摘要:系统设计 面试题 高可用、高并发、高性能。 可用性、一致性。 分布式、高并发场景 遇到高并发场景,可以使用Redis缓存、Redis限流、MQ异步、MQ削峰等。 Q:在实践中,遇到过哪些并发的业务场景? 秒杀。比如抢商品,抢红包。 秒杀 Q:如何设计一个秒杀/抢券系统? 可以通过队列配合异步处理实现
阅读全文
摘要:Dubbo Apache Dubbo 是一款微服务开发框架,可以用于 RPC通信 与 微服务治理 。 六大核心能力 面向接口代理的高性能RPC调用:提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。 智能负载均衡:内置多种负载均衡策略,智能感知下游节点健康状况,显著
阅读全文
摘要:命名 mysql表名的命名规范为表名可以用 t_ 、tb_的前缀,或者是业务模块前缀。比如t_order。 有些项目也会使用 tt_、tm_、 ts_ 等前缀,根据项目的习惯命名就好了。 主键: AUTO_INCREMENT 表示自增,UNSIGNED 表示无符号,UNIQUE 表示唯一约束,COM
阅读全文
摘要:大表直接建索引 数据量大的表,直接建索引会耗费非常多的时间,最好不要在高峰期执行。 非高峰期在大表建索引,也有可能无法在当天跑完。 大表建索引 可以先新建一张相同表结果的表,表里面没有数据,创建索引非常快,再把旧的大表数据复制到新表。 (1) 新建相同表结构的表: create table tabl
阅读全文