TCP 三次握手和四次挥手
多线程 线程池
JVM 垃圾回收
列表 队列 集合 树
mycat中间件 shiro WebService Quartz Solr RabbitMQ ActiveMQ FastDFS
富文本编辑器 Dubbo
excel读写工具- POI 报表工具 Highcharts easyUI thyemleaf springSecurity mybatis+ zookeeper
jsnop nginx FreeMarker httpclient
EBS SOA

高并发 微服务 分布式 消息队列 工作流 定时任务

SSO单点登录技术-CAS统一身份认证服务
ELasticJob分布式任务调度

史上最简单的 SpringCloud 教程

https://blog.csdn.net/forezp/article/details/81040925

Spring Cloud 从入门到精通

http://blog.didispace.com/spring-cloud-learning/

tomcat常用配置详解和优化方法

tomcat 性能优化(主要)

https://blog.csdn.net/u010195563/article/details/80966025

JVM调优总结

深入浅出JVM调优,看完你就懂

https://blog.csdn.net/Javazhoumou/article/details/99298624

反向代理和正向代理

https://www.zhihu.com/question/24723688
正向代理代理的对象是客户端,反向代理代理的对象是服务端

多线程

多线程就是指一个进程中同时有多个执行路径(线程)正在执行

优点
1. 在一个程序中,有很多的操作是非常耗时的,如数据库读写操作,IO操作等,如果使用单线程,那么程序就必须等待这些操作执行完成之后才能执行其他操作。使用多线程,可以在将耗时任务放在后台继续执行的同时,同时执行其他操作。
2. 可以提高程序的效率。
3. 在一些等待的任务上,如用户输入,文件读取等,多线程就非常有用了。
缺点
1. 使用太多线程,是很耗系统资源,因为线程需要开辟内存。更多线程需要更多内存。
2. 影响系统性能,因为操作系统需要在线程之间来回切换。
3. 需要考虑线程操作对程序的影响,如线程挂起,中止等操作对程序的影响。
4. 线程使用不当会发生很多问题。

Nginx可以做什么?看完这篇你就懂了

https://blog.csdn.net/qq_36125138/article/details/84144932
Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。
fair 和 url_hash(为第三方)

RabbitMQ教程

https://blog.csdn.net/zpcandzhj/article/details/81436980
消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。
其主要用途:不同进程Process/线程Thread之间通信。
为什么会产生消息队列?有几个原因:
不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改另一个进程,为了隔离这两个进程,在两进程间抽离出一层(一个模块),所有两进程之间传递的消息,都必须通过消息队列来传递,单独修改某一个进程,不会影响另一个;
不同进程(process)之间传递消息时,为了实现标准化,将消息的格式规范化了,并且,某一个进程接受的消息太多,一下子无法处理完,并且也有先后顺序,必须对收到的消息进行排队,因此诞生了事实上的消息队列;
MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka,以及阿里开源的RocketMQ。

Dubbo

https://baike.baidu.com/item/Dubbo/18907815?fr=aladdin

ES(ElasticSearch)分布式全文搜索引擎介绍及使用方式

https://blog.csdn.net/john_person/article/details/83753818
https://88250.b3log.org/full-text-search-elasticsearch
学习ES
https://my.oschina.net/JKOPERA/blog/2049518

序列化、反序列化和transient关键字的作用

Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释

https://blog.csdn.net/u013870094/article/details/82765907
序列化:把对象转换为字节序列的过程称为对象的序列化。
反序列化:把字节序列恢复为对象的过程称为对象的反序列化。
什么情况下需要序列化
当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
当你想用套接字在网络上传送对象的时候;
当你想通过RMI传输对象的时候;
(老实说,上面的几种,我可能就用过个存数据库的)
如何实现序列化
实现Serializable接口即可
Transient 关键字的作用是控制变量的序列化,在变量声明前加上该关键字,可以阻止该变量被序列化到文件中,

缓存穿透、缓存击穿、缓存雪崩区别和解决方案

https://blog.csdn.net/kongtiao5/article/details/82771694

关于“约定大于配置“的理解

https://blog.csdn.net/tmdcda/article/details/80797891
https://www.cnblogs.com/doit8791/p/5724294.html

开发原则&设计模式

https://www.cnblogs.com/dxxdsw/p/10645056.html

拜托!面试不要再问我Spring Cloud底层原理

http://developer.51cto.com/art/201811/586513.htm