加载中
Redis分布式锁

场景 很多情况下我们会遇到这样的情况,程序根据数据的状态进行相应的操作,例如更新用户Token,分布式环境下,使得问题变得复杂,多个线程同时更新一条数据会导致状态出现未知状态,例如线程...

2018/06/10 22:56
10
Redis

简介 Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperlogs等数据类型。和Memcach...

2018/06/10 22:55
2
SpringBoot使用Jersey+Swagger搭建Rest服务

Swagger可以提供API文档支持,可以直观的在web浏览器上查看并调用接口,SpringBoot使用Swagger有两种选择:原生的Controller和Jersey,但是原生的Controller只能注解在实现上,这样导致了Swa...

2017/10/16 22:08
396
SpringBoot使用Swagger搭建Rest服务

SpringBoot 搭建 Rest 服务器,Swagger 提供 API 文档支持。 Maven 添加 Swagger 支持: <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <vers...

Semaphore原理分析

计数信号量用来控制同时访问某个特定资源的操作数量,或者同时执行某个指定操作的数量。计数信号量还可以用来实现某种资源池,或者对容器施加边界,如数据库连接池,固定大小的数据集。 Sema...

2017/08/13 22:04
99
CountDownLatch原理分析

闭锁是一种同步工具类,可以延迟线程进度直到其到达最终终止状态。闭锁关闭之后,没有任何线程可以通过,当到达结束状态时,会永远打开,并允许所有线程通过。 闭锁状态包括一个计数器,该计...

2017/08/13 21:59
37
ReentrantLock原理分析

ReentrantLock 重入锁是对 synchronized 的一种补充,ReentrantLock 提供了可定时、可轮询的与可中断的锁获取操作,公平队列,以及非块结构的锁。与 synchronized 相比, ReentrantLock 更加...

2017/08/13 21:49
9
protobuf

protobuf 是一个灵活的、高效的、自动化的用于对结构化数据进行序列化的协议,与 XML 相比,protobuf 序列化后的码流更小、速度更快、操作更简单。序列化后字节占用空间比 XML 少3-10倍,序列...

2017/08/11 17:27
108
ThreadLocal原理分析

ThreadLocal 为了解决多线程并发提供了一种新的思路,ThreadLocal 为每个变量维护一个线程的副本,每个线程可以独立的修改副本,不会影响到其他线程。使用 ThreadLocal 可能需要注意引用的释...

2017/07/29 18:09
20
SpringBoot多模块项目

SpringBoot 可以快速创建 Web 应用,在平时工作中一般由多个人分工合作,此时使用 SpringBoot 多模块再合适不过了,多模块通过 Maven 的父子依赖实现分工和聚合。 多模块项目打包不能使用spr...

MySQL查询缓存

MySQL 查询缓存保存查询返回的完整结果。当查询命中改缓存,MySQL 会立刻返回结果,跳过了解析、优化和执行阶段。 查询缓存系统会跟踪查询涉及查询中的每个表,如果这些表发生变化,那么和这...

2017/07/11 13:00
9
Innodb和MyISAM区别

Innodb 是行级锁,MyISAM 是表级锁。 Innodb 支持事务,MyISAM 不支持事务。 Innodb 是聚簇索引,MyISAM 是非聚簇索引。 Innodb 不保存表的行数,使用 select count(*) 时遍历全表,MyISAM ...

2017/07/11 12:56
6
Haproxy 负载均衡

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 如果说在功能上,能以proxy反向代理方式实现 WEB均衡负载,这样的产品有...

2017/05/27 17:30
19
Tomcat问题汇总

Tomcat遇到的一些问题和解决方法: 1. Tomcat慢启动问题 描述: Tomcat启动有时耗时十几秒甚至达到一分多钟。原因是Tomcat的 org.apache.catalina.util.SessionIdGeneratorBase.createSecure...

2017/04/14 14:33
33
Tomcat源码分析(三)Container容器

通过前面几篇文章的分析,我们可以看出Tomcat的核心就是Container,Engine, Host, Context和Wrapper都是Container的子类,所有的请求都是围绕着四个类展开的,所以Container绝对是Tomcat的重...

2016/12/19 09:01
66
App通讯安全

客户端经常涉及用户操作,用户登录需要使用用户名和密码,为了安全起见,暴露密码的过程越少越好。解决方案如下: 使用Https协议 1)客户端使用账户密码登录,服务器返回token。 服务器收到客...

2016/12/15 09:28
36
Tomcat源码分析(二)请求过程分析

经过前面几篇文章的分析,我们对Tomcat的框架有了一定得掌握,对于各个模块的功能也有了大致了解,这篇文章主要分析Connector如何将请求分发到Engine,以及最后到Servlet处理。 从Tomcat类结...

2016/11/29 22:55
100
Tomcat 源码分析(-)启动过程分析

前面几篇文章分别介绍了Tomcat的安装、优化和框架,本文主要用于分析Tomcat源码启动过程,研究一个框架最好的着手方式可能就是研究它的启动过程,因为在这过程中我们可以看到它内部的层次关系...

2016/11/28 19:40
148
Tomcat 框架

Tomcat整体框架: Server: Server是Service的生存环境。一个Server中可以有多个Service。 Service: Service将Connector和Container包装在一起提供对外服务,一个Service可以有多个Connector...

2016/11/28 19:31
32
Spring Bean创建过程

通过前面几篇文章的分析,我们对Spring框架,Bean,Context和Core都有了一定了解,结合之前的基础,我们研究下ApplicationContext创建Bean的的过程。 Bean的创建过程可以分为两类:第一类是容...

2016/11/18 14:03
47

没有更多内容

加载失败,请刷新页面

返回顶部
顶部