- 博客(69)
- 资源 (1)
- 收藏
- 关注
原创 poi测试代码
package aurora.plugin.poi;import aurora.database.IResultSetConsumer;import aurora.database.service.SqlServiceContext;import aurora.i18n.ILocalizedMessageProvider;import aurora.i18n.IMessageProvider;import aurora.plugin.export.MergedHeader;import aur
2020-06-25 15:22:17 389
原创 IO多路复用和线程池哪个效率更高,更有优势
io多路复用(这翻译真的很坑爹啊),指的是同一个进(线)程可以处理多个IO数据流。多线程+池模型指的是每个线程处理一个IO流。O多路复用的优势在于,当处理的消耗对比IO几乎可以忽略不计时,可以处理大量的并发IO,而不用消耗太多CPU/内存。这就像是一个工作很高效的人,手上一个todo list,他高效的依次处理每个任务。这比每个任务单独安排一个人要节省(雇人是要发工资的……)。典型的例子...
2019-08-16 17:07:07 9327 2
原创 并发编程多路复用的理解
多路复用先引用一点来自计算机网络的解释数据通信系统或计算机网络系统中,传输媒体的带宽或容量往往会大于传输单一信号的需求,为了有效地利用通信线路,希望一个信道同时传输多路信号,这就是所谓的多路复用技术(Multiplexing)。采用多路复用技术能把多个信号组合起来在一条物理信道上进行传输,在远距离传输时可大大节省电缆的安装和维护费用。生活中的例子我们知道七色光可以聚合成白光,而白光又...
2019-08-15 16:54:57 664
原创 关于类加载的思考
近来看tomcat源码,莫名有一种畅快的感觉,解决了很多疑惑,也产生了新的疑惑什么是 ClassLoaderJava 代码要想运行,首先需要将源代码进行编译生成 .class 文件,然后 JVM 加载 .class 字节码文件到内存,而 .class 文件是怎样被加载到 JVM 中的就是Java ClassLoader 要做的事情。那么 .class 文件什么时候会被类加载器加载到 JVM...
2019-08-06 10:00:11 276
原创 mybatis源码解读二动态sql标签解析
每个 select、insert /、update 、delete 对应一个 MappedStatement 对象,每个MappedStatement 包含一个SqlSource,一个SqlSource含有一个MixedSqlNode,静态sql,${},include在解析mpper文件生成MixedSqlNode时,就已经被替换和解析、DynamicSqlSource:处理动态sql,...
2019-07-24 17:12:39 310
原创 mybatis源码学习一Configuration和配置文件的映射关系
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> ...
2019-07-19 15:29:41 258
原创 Redis Cluster 的虚拟哈希槽策略
Redis Cluster 采用虚拟哈希槽分区,所有的键根据哈希函数映射到 0 ~ 16383 整数槽内计算公式:slot = CRC16(key) & 16383,每一个节点负责维护一部分槽以及槽所映射的键值数据。Redis 虚拟槽分区的特点:解耦数据和节点之间的关系,简化了节点扩容和收缩难度。节点自身维护槽的映射关系,不需要客户端或者代理服务维护槽分区元数据支持节点、槽和键之间的映射...
2019-07-04 11:28:07 1866
原创 阻塞非阻塞和同步异步
阻塞、非阻塞和同步、异步的区别首先,前面已经提到过,阻塞、非阻塞和同步、异步其实针对的对象是不一样的。阻塞、非阻塞说的是调用者,同步、异步说的是被调用者。有人认为阻塞和同步是一回事儿,非阻塞和异步是一回事。但是这是不对的。先来看同步场景中是如何包含阻塞和非阻塞情况的。我们是用传统的水壶烧水。在水烧开之前我们一直做在水壶前面,等着水开。这就是阻塞的。我们是用传统的水壶烧水。在水烧开之前我...
2019-07-03 18:42:28 106
原创 2019年GitHub上最热门的Java开源项目
1JavaGuidehttps://github.com/Snailclimb/JavaGuide Star 22668【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。2advanced-javahttps://github.com/doocs/advanced-java Star 7752本系列知识出自中华石杉,可以作为互联网 Java 工程师进阶知识完全...
2019-06-10 10:56:11 2188
原创 AVL树 算法思想与代码实现
https://www.baidu.com/link?url=15uPOgw9pSy17_-_JR-UEfKXjTmyjEhdkWplrPo3Wf2bQ0nOlwkweuRbyBDnJP5dIR1STD_7mlCwWsfpbBMsra&wd=&eqid=d3a2ca1d0003b9b6000000045cb19c97
2019-04-13 22:46:39 330
转载 好的文章
授权相关:从密码到token, 一个授权的故事 auth2.0https://www.cnblogs.com/bigben0123/p/8334824.html一张图搞定OAuth2.0https://www.cnblogs.com/flashsun/p/7424071.htmlsql优化常见优化:https://crossoverjie.top/JCSprout/#/db/SQL-o...
2019-04-03 14:15:45 122
转载 SpringBoot 整合
SpringBoot 整合 oauth2(五)实现 jwt 及 扩展https://www.jianshu.com/p/766cf742e3e8
2019-04-02 16:54:43 75
原创 socket连接与多线程
Reactor模式https://blog.csdn.net/notOnlyRush/article/details/69215955这段时间时间一直在看NIO,嗯,看的一脸闷逼,一直想不通,IO多路复用是为啥能提高效率的。下面是的理解:socket连接与多线程没有啥联系,最基本的socket连接,无需多线程,只是会阻塞主线程,进而阻塞下一个连接。采用一个socket连接一个线程,连接会不...
2019-03-24 16:08:36 1231
转载 reactor模式:单线程的reactor模式
https://blog.csdn.net/mweibiao/article/details/79710588
2019-03-23 17:49:22 321
转载 初谈SQL Server逻辑读、物理读、预读
https://www.cnblogs.com/sword-successful/p/5543626.html
2019-03-20 12:16:35 178
转载 Redis+MySQL冷热数据交换
https://blog.csdn.net/baochao95/article/details/60761397
2019-03-16 22:49:56 664
转载 Kafka 架构简介
http://www.cnblogs.com/f1194361820/p/6026313.htmlhttps://www.jianshu.com/p/dbbca800f607
2019-03-15 17:16:32 139
原创 SQL 优化和索引之间的关系
SQL 优化索引的作用字符串大小比较的规则?https://juejin.im/post/5b08fcc86fb9a07a9b3666achttps://www.jianshu.com/p/2ab2c0dc3cb5通过一定将数据按一定规则排序(按照数据大小排序),一次IO操作尽可能缩小数据范围,避免全表扫描,索引只能用于查找key是否存在(相等)mysql为例负向查询不能使用索引...
2019-03-15 16:42:37 305
原创 mysql索引效率问题
为什么MySQL等主流数据库选择B+树的索引结构?如何基于索引结构,理解常见的MySQL索引优化思路?https://www.cnblogs.com/lfs2640666960/p/8550452.html再次强调:不要纠结于时间复杂度,与单纯的算法不同,磁盘IO次数才是更大的影响因素。读者可以推导看看,B树与AVL的时间复杂度是相同的,但由于B树的层数少,磁盘IO次数少,实践中B树的性...
2019-03-14 19:06:25 500
原创 文本文件和二进制文件
问题的引出:昨天翻书看到书上说:“二进制协议比文本协议传输相同内容占得存储小”。感觉非常好奇,为啥?linux查看文件在磁盘中是否连续的blockhttps://blog.csdn.net/daiyudong2020/article/details/78023190二、文本文件与二进制文件的存取&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2019-03-14 16:57:46 126
转载 Zookeeper 和 Eureka 之间的区别
CAP 理论在总结两者的区别之前,我们先来看一个 CAP 理论。什么叫 CAP 理论呢?CAP 理论是由 Eric Brewer 教授提出,是分布式系统中的一个重要的概念。CAP 具体如下:C(Consistency):数据一致性。大家都知道,分布式系统中,数据会有副本。由于网络或者机器故障等因素,可能有些副本数据写入正确,有些却写入错误或者失败,这样就导致了数据的不一致了。而满足数据一致性...
2019-03-13 11:48:59 802
转载 JAVA性能监控与调优参考文档链接
第一章无第二章jdk8工具集https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.htmlTroubleshootinghttps://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/jpshttps://docs.oracle.com...
2019-02-21 10:47:35 152
原创 读取jar中Properties文件
package com.wang.util;import java.io.IOException;import java.io.InputStream;import java.security.AccessControlException;import java.util.Properties;/** * 读取classpath的properties文件 * * @auth...
2019-01-24 16:38:45 1213
转载 java中对象占用内存计算方法
原文 https://blog.csdn.net/iter_zc/article/details/41822719#普通对象的结构如下,按64位机器的长度计算对象头(_mark), 8个字节Oop指针,如果是32G内存以下的,默认开启对象指针压缩,4个字节数据区4.Padding(内存对齐),按照8的倍数对齐数组对象结构是对象头(_mark), 8个字节Oo...
2018-12-03 14:30:28 404
原创 java 获取某个包下的所有类名
package org.smart4j.framework.util;import java.io.File;import java.io.FileFilter;import java.net.JarURLConnection;import java.net.URL;import java.util.Enumeration;import java.util.HashSet;impo...
2018-11-08 16:31:33 11212
原创 单元测试
JUnit单元测试套件为什么不使用 TestNG ?在整合 TestNG + Mockito + PowerMock + Spring 时,Spring 容器初始化失败, @Autowired 的属性无法注入,查找资料,基本无解,只好退而求其次,选择 JUnit 。从功能强大程度,易用性上,个人较为推荐 TestNG 。MockitoMock 工具为什么不使用 JMock 、Eas...
2018-11-02 15:54:02 118
转载 读书笔记:开源RPC框架如何选型?
完整的 RPC 框架主要有三部分组成:通信框架、通信协议、序列化和反序列化格式。根据我的经验,想要开发一个完整的 RPC 框架,并且应用到线上生产环境,至少需要投入三个人力半年以上的时间。这对于大部分中小团队来说,人力成本和时间成本都是不可接受的,所以我建议还是选择开源的 RPC 框架比较合适。那么业界应用比较广泛的开源 RPC 框架有哪些呢?简单划分的话,主要分为两类:一类是跟某种特定语...
2018-10-24 09:59:54 1170
原创 从单体应用走向服务化学习笔记
那么服务化拆分具体该如何实施呢?服务化拆分的两种姿势&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;一个最有效的手段就是将不同的功能模块服务
2018-10-23 10:38:25 598
原创 负载均衡
负载均衡分类常见的负载均衡系统包括 3 种:DNS 负载均衡、硬件负载均衡和软件负载均衡。软件和硬件的最主要区别就在于性能,硬件负载均衡性能远远高于软件负载均衡性能。Ngxin 的性能是万级,一般的 Linux 服务器上装一个 Nginx 大概能到 5 万 / 秒;LVS 的性能是十万级,据说可达到 80 万 / 秒;而 F5 性能是百万级,从 200 万 / 秒到 800 万 / 秒都有...
2018-10-19 17:38:56 166
原创 高性能缓存
试用的场景: 读多写少的系统需要经过复杂运算后得出的数据,存储系统无能为力,比如统计在线用户。读多写少的数据,存储系统有心无力,比如微博,明星发一条,上千万浏览。缓存穿透缓存穿透是指缓存没有发挥作用,业务系统虽然去缓存查询数据,但缓存中没有数据,业务系统需要再次去存储系统查询数据。存储数据不存在缓存数据生成耗费大量时间或者资源缓存雪崩缓存雪崩是指当缓存失效(过期)...
2018-10-19 11:16:00 561
原创 NoSQL的分类
关系数据库 的缺点1 关系数据库的 schema扩展很不方便关系数据库的表结构 schema是强约東,操作不存在的列会报错,业务变化时扩充列也比较麻烦需要执行DDL( data definition language,如 CREATE、 ALTER、DROP等)语句修改,而且修改时可能会长时间锁表(例妙如, MYSQL可能将表锁住1个小时)2 关系数据库在大数据场景下/O较如果对一些大量...
2018-10-18 16:30:01 444
可以直接运行的session共享的tomcat
2018-08-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人