AllenJiang  ,  中间件研发,欢迎关注微信公众号 : 小哈学Java

itellij idea 项目结构后面显示 0% classes,0% lines covered, 如何取消?

**1.`windows` 系统下按快捷键 `ctrl + alt + F6`;** **2.`mac` 系统下按快捷键 `command + option + F6`;** ![](https://exception-image-bucket.oss-cn-hangzhou.aliyuncs.com/153871945166163) ...
AllenJiang  ,  中间件研发,欢迎关注微信公众号 : 小哈学Java

说说 nginx 负载均衡的几种算法

## 前言 在 `nginx` 中,我们通过 `upstream` 命令来实现的,由 ngx_http_upstream_module 模块提供支持。 ## nginx 负载均衡算法 - **1:轮询(默认)** 每个请求按照时间顺序逐一分配到下游的服务节点,如果其中某一节点故障,nginx 会自动剔除故障系统使用户使用不受影响。 - **2.权重(weight)** 在配置文件中对下游的服务节点指定权重值 weight, weight 值越大则被分配的评率越高,一般这种负载均衡,用于节点的配置情况不一样,有的可能配置高,有的配置低。 - **3.ip ...
AllenJiang  ,  中间件研发,欢迎关注微信公众号 : 小哈学Java

JVM 类的加载过程,以及什么是双亲委派模型?

![](https://exception-image-bucket.oss-cn-hangzhou.aliyuncs.com/153715273147369) Java 通过引入字节码和 JVM 机制,提供了强大的跨平台能力。那么 JVM 又是如何加载我们的 class 类的呢? 一般来说,我们把 Java 的类加载过程分为三个主要步骤: - **1.加载** - **2.链接** - **3.初始化** 上述具体行为在 Java 虚拟机规范中已有明确定义,可参考链接:[https://docs.oracle.com/javase/specs/jvms/s ...
AllenJiang  ,  中间件研发,欢迎关注微信公众号 : 小哈学Java

简说 Mysql 索引原理

![](https://exception-image-bucket.oss-cn-hangzhou.aliyuncs.com/153710270120897) 在互联网项目中,大部分都是读大于写的频率,这个比例一般在 `10:1` 。读的次数如此频繁,导致 IO 压力很大,如果说我们能够把查询的 IO 次数控制在常量级,那么这对数据库的性能提升是非常明显的,因此基于 `B+ Tree` 的索引结构出现了。 ## B+ Tree 的数据结构 ![](https://exception-image-bucket.oss-cn-hangzhou.aliyuncs.com/1537 ...
AllenJiang  ,  中间件研发,欢迎关注微信公众号 : 小哈学Java

简说 LinkedList 底层代码实现

![](https://exception-image-bucket.oss-cn-hangzhou.aliyuncs.com/153702000468543) 如图所示 `LinkedList` 底层是基于双向链表实现的,也是实现了 `List` 接口,所以也拥有 `List` 的一些特点 (JDK1.7/8 之后取消了循环,修改为双向链表)。 ## 新增方法 public boolean add(E e) { linkLast(e); return true; } /** * Links e as last element. ...
AllenJiang  ,  中间件研发,欢迎关注微信公众号 : 小哈学Java

简说 ArrayList/Vector 的底层代码

## ArrayList `ArrayList` 实现于 `List`、`RandomAccess` 接口。可以插入空数据,也支持随机访问。 `ArrayList` 相当于动态数据,其中最重要的两个属性分别是: `elementData` 数组,以及 `size` 大小。 在调用 `add()` 方法的时候: public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e; return tru ...
AllenJiang  ,  中间件研发,欢迎关注微信公众号 : 小哈学Java

scrapy 中如何设置爬虫请求之间的时间间隔,爬取太快容易被封 IP?

可以在 `settings` 文件里面进行设置: DOWNLOAD_DELAY = 0.25 # 250 ms 的延迟 **以下是官方文档:** > The amount of time (in secs) that the downloader should wait before downloading consecutive pages from the same spider. This can be used to throttle the crawling speed to avoid hitting servers too hard. Decimal num ...
AllenJiang  ,  中间件研发,欢迎关注微信公众号 : 小哈学Java

Python 3.7 环境下运行 scrapy crawl 报错 def write(self, data, async=False)?

**进入 `manhole.py` 文件,将 `async` 替换成 `async1` ,重新运行即可** ...
AllenJiang  ,  中间件研发,欢迎关注微信公众号 : 小哈学Java

docker 中部署的 springboot 项目如何优雅地输出日志?

关于控制台输出可以参考下面这个解决方案: [如何查看运行在 docker 容器中 springboot 项目打印的控制台日志](https://www.exception.site/question/31) 但是生产环境一般不推荐*控制台输出*,因为控制台输出的日志没有持久化,只能实时查看。生产环境下,**一般都是输出到文件中,然后挂载到宿主机的方式来解决**,我们只需要将 `logback` 输出的日志路径挂载到宿主机的指定的路径即可: 我这里是通过 `docker-compose.yml` 服务编排的配置文件来指定,如果你不使用 `docker-compose` 也可以在 ...
AllenJiang  ,  中间件研发,欢迎关注微信公众号 : 小哈学Java

谷歌浏览器突然显示网站 https 不安全的问题?

打开 google 浏览器开发者工具,进入 security, 开始排查: ![](https://exception-image-bucket.oss-cn-hangzhou.aliyuncs.com/153337747723341) 可以发现证书是没有过期的,状态也是正常的,这可能与页面加载的一些静态资源有关,通过 safari 浏览器,看到报错如下: ![](https://exception-image-bucket.oss-cn-hangzhou.aliyuncs.com/153337767672878) 原来的页面中引入的 BootCdn 服务出了问题,进入 ...