摘要: 前言 代码中如果if-else比较多,阅读起来比较困难,维护起来也比较困难,很容易出bug,接下来,本文将介绍优化if-else代码的八种方案。 优化方案一:提前return,去除不必要的else 如果if-else代码块包含return语句,可以考虑通过提前return,把多余else干掉,使代码 阅读全文
posted @ 2020-07-04 14:51 经济人 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 背景 最近生产爆出一条慢sql,原因是用了or和!=,导致索引失效。于是,总结了索引失效的十大杂症,希望对大家有帮助,加油。 一、查询条件包含or,可能导致索引失效 新建一个user表,它有一个普通索引userId,结构如下: CREATE TABLE `user` ( `id` int(11) N 阅读全文
posted @ 2020-07-04 14:50 经济人 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 插播背景 在多个产品线上来回穿切换着开发功能,以前用Postman的场景是这样的: 实际远远不止这几个文件夹来归类多个产品线的接口,Postman的功能非常强大,但是面对以下这些状况时,我觉得调试一个接口太麻烦了 (这里不讨论工具的好坏,工具是帮助我们提高效率的,每个人的需求也不一样,我只说明我个人 阅读全文
posted @ 2020-07-04 14:46 经济人 阅读(6106) 评论(0) 推荐(1) 编辑
摘要: 本文目录 一、数据库瓶颈 IO瓶颈 CPU瓶颈 二、分库分表 水平分库 水平分表 垂直分库 垂直分表 三、分库分表工具 四、分库分表步骤 五、分库分表问题 非partition key的查询问题 非partition key跨库跨表分页查询问题 扩容问题 六、分库分表总结 七、分库分表示例 一、数据 阅读全文
posted @ 2020-07-04 14:43 经济人 阅读(320) 评论(0) 推荐(0) 编辑
摘要: CDN概念 CDN全称叫做“Content Delivery Network”,中文叫内容分发网络。 实际上CDN这个概念是在1996年由美国麻省理工学院的一个研究小组为改善互联网的服务质量而提出的。那么它到底是怎么改善互联网服务质量的呢? 原理分析 我们知道,当我们使用域名访问某一个网站时,实际上 阅读全文
posted @ 2020-07-04 14:28 经济人 阅读(2998) 评论(0) 推荐(0) 编辑
摘要: Stream API 为了说一下 Stream API 的使用,可以说是大费周章啊,知其然,也要知其所以然吗,追求技术的态度和姿势要正确。 当然 Stream 也不只是 Lambda 表达式就厉害了,真正厉害的还是它的功能,Stream 是 Java 8 中集合数据处理的利器,很多本来复杂、需要写很 阅读全文
posted @ 2020-07-04 14:15 经济人 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 简介 session,会话,其实是一个容易让人误解的词。它总跟web系统的会话挂钩,利用session,javaweb项目实现了登录状态的控制。坊间流传,关闭浏览器,就是关闭了web系统的会话。其实浏览器对于会话有自己的定义,而web系统对于会话也有自己的定义。在tomcat中,session通常是 阅读全文
posted @ 2020-07-04 14:11 经济人 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 当你打开浏览器,访问某个网站,如果网址旁有个小锁,代表访问的网址是安全的,反之不安全。当我们没有看到那个小锁的小图标的时候,需要提高警惕,不要随意输入个人重要的资料。所有的银行和支付相关的网站都是100%使用HTTPS的。 我们为什么需要HTTPS? 主要有三个原因: 保护隐私(Privacy):所 阅读全文
posted @ 2020-07-04 14:09 经济人 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 本文不涉及复杂的底层数据结构,通过explain解释SQL,并根据可能出现的情况,来做具体的优化,使百万级、千万级数据表关联查询第一页结果能在2秒内完成(真实业务告警系统优化结果)。 希望读者能够理解SQL的执行过程,并根据过程优化,走上自己的"成金之路" 需要优化的查询: 使用explain出现了 阅读全文
posted @ 2020-07-04 14:06 经济人 阅读(2254) 评论(0) 推荐(0) 编辑
摘要: 数据库查询相信很多人都不陌生,所有经常有人调侃程序员就是CRUD专员,这所谓的CRUD指的就是数据库的增删改查。 在数据库的增删改查操作中,使用最频繁的就是查询操作。而在所有查询操作中,统计数量操作更是经常被用到。 关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是 阅读全文
posted @ 2020-07-04 14:02 经济人 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 首先,分布式锁和我们平常讲到的锁原理基本一样,目的就是确保在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法、变量。 在一个进程中,也就是一个jvm或者说应用中,我们很容易去处理控制,在jdk java.util并发包中已经为我们提供了这些方法去加锁,比如synchronized关键字或者 阅读全文
posted @ 2020-07-04 14:00 经济人 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 堆和栈都是Java用来在RAM中存放数据的地方。 堆 (1)Java的堆是一个运行时数据区,类的对象从堆中分配空间。这些对象通过new等指令建立,通过垃圾回收器来销毁。 (2)堆的优势是可以动态地分配内存空间,需要多少内存空间不必事先告诉编译器,因为它是在运行时动态分配的。但缺点是,由于需要在运行时 阅读全文
posted @ 2020-07-04 13:58 经济人 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 调用和回调机制 在一个应用系统中, 无论使用何种语言开发, 必然存在模块之间的调用, 调用的方式分为几种: 1.同步调用 同步调用是最基本并且最简单的一种调用方式, 类A的方法a()调用类B的方法b(), 一直等待b()方法执行完毕, a()方法继续往下走. 这种调用方式适用于方法b()执行时间不长 阅读全文
posted @ 2020-07-04 13:57 经济人 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 为了提高系统的性能和可靠性,将应用服务进行拆分微服务化。作为系统入口的 API 网关也逐渐成为了标配。 今天我们一起来看看 API 网关的设计思路,需要承载了哪些功能?以及如何选择流行的 API 网关? 什么是 API 网关 网关一词最早出现在网络设备,比如两个相互独立的局域网之间通过路由器进行通信 阅读全文
posted @ 2020-07-04 13:18 经济人 阅读(1438) 评论(0) 推荐(0) 编辑
摘要: 前言 整理了一些Mysql数据库相关流程图/原理图,做一下笔记,大家一起学习。 1.mysql主从复制原理图 mysql主从复制原理是大厂后端的高频面试题,了解mysql主从复制原理非常有必要。 主从复制原理,简言之,就三步曲,如下: 主数据库有个bin-log二进制文件,纪录了所有增删改Sql语句 阅读全文
posted @ 2020-07-04 13:10 经济人 阅读(598) 评论(0) 推荐(0) 编辑
摘要: 1.系统不是分布式 1.1.单机版系统抢单案例 // 抢取订单函数 public synchronized void grabOrder(Long orderId, Long userId) { // 获取订单信息 OrderDO order = orderDAO.get(orderId); if 阅读全文
posted @ 2020-07-04 13:09 经济人 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 前言: 整理了一些Java基础流程图/架构图,做一下笔记,大家一起学习。 1.spring的生命周期 Spring作为当前Java最流行、最强大的轻量级容器框架,了解熟悉spring的生命周期非常有必要; 首先容器启动后,对bean进行初始化 按照bean的定义,注入属性 检测该对象是否实现了xxx 阅读全文
posted @ 2020-07-04 12:06 经济人 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 想必不少小伙伴面试过程中,会遇到「当键入网址后,到网页显示,其间发生了什么」的面试题。 这次,小林我带大家一起探究下,一个数据包在网络中的心路历程。 每个阶段都有数据包的「心路历程」,我们一起看看它说了什么? 正文 接下来以下图较简单的网络拓扑模型作为例子,探究探究其间发生了什么? 简单的网络模型 阅读全文
posted @ 2020-07-04 11:55 经济人 阅读(578) 评论(0) 推荐(2) 编辑
摘要: 前言 Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Baidu的海洋里遨游,他发现了可以使用insert into 阅读全文
posted @ 2020-07-04 11:39 经济人 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 为了上班方便,去年我把自己在北郊的房子租出去了,搬到了南郊,这样离我上班的地方就近了,它为我节约了很多的时间成本,我可以用它来做很多有意义的事,最起码不会因为堵车而闹心了,幸福感直线上升。 但即使这样,生活也有其他的烦恼。南郊的居住密度比较大,因此停车就成了头痛的事,我租的是路两边的非固定车位,每次 阅读全文
posted @ 2020-07-04 11:22 经济人 阅读(536) 评论(0) 推荐(0) 编辑