-
Mysql 基础架构分析
MySQL从概念上可以分为四层。从上到下分别为:接入层、服务层、存储引擎层、系统文件层。接入层:不同语言的客户端通过mysql的协议与mysql服务器进行连接通信,接入层进行权限验证、连接池管理、线程管理等。服务层:包括sql解析器、sql优化器、数据缓冲、缓存等。存储引擎层:mysql中存储引擎是基于表的。系统文件层:保存数据、索引、日志等。贴个图:4,509 0 2017-12-25 16:56
-
一些关于数据库事务的基本原则总结
事务:事务是一组原子性sql查询语句,被当作一个工作单元。若mysql对改事务单元内的所有sql语句都正常的执行完,则事务操作视为成功,所有的sql语句才对数据生效,若sql中任意不能执行或出错则事务操作失败,所有对数据的操作则无效(通过回滚恢复数据)。事务有四个属性:1、原子性:事务被认为不可分的一个工作单元,要么全部正常执行,要么全部不执行。2、一致性:事务操作对数据库总是从一种一致性的状态转......3,474 4 2017-12-25 16:40
-
NemoDao - 简单模仿mybatis实现一个持久层框架
嗯,这几天用稍稍闲散的时间模仿着mybatis写了一个简单的持久层框架。目前只有一些简单的操作,不过足以用来学习一些mybatis简单的原理了。这个项目的源码托管在github,地址为:https://github.com/NemoMeng/NemoDao可以先分析下我们在使用mybatis中做的一些工作:1、配置处理。2、写mapper。3、写dao接口,在需要的地方调用dao接口。这么着写这个......2,432 2 2017-12-22 18:39
-
JAVA-动态代理实现AOP原理简单探索
假设这样一个场景: 当我们在调用某些方法的时候,需要在调用方法前后,记录执行日志。 简单的做法肯定是在原业务方法的前后作修改,添加记录日志的代码。不过这肯定存在一些问题,比如,当你要记录日志的方法很多,或者偶尔需要修改记录日志的方法,等等。所以需要考虑在不对原有的业务方法产生影响的情况下,加入日志记录。 &n......3,652 0 2017-12-22 15:18
-
Websocket 探索
1、说到websocket,就不得不提一下他的前辈http了:熟悉http的童鞋应该都知道,HTTP是不支持持久连接的(长连接,循环连接的不算)。html5是指一系列新的api,Http协议本身只有1.0和1.1(其实http跟html好像也没啥关系哈),html5其实相当于是旧的htmlapi的一种补充。而WebSocket是HTML5出的东西。HTTP有所谓的keep-alive之说,也就是把......2,234 0 2017-12-19 11:03
-
Unable to find a single main class from the following candidates[com.nemo.util.UuidUtil]
有个项目是用springboot搭建的,在配置打包的时候出现了这个问题:Unabletofindasinglemainclassfromthefollowingcandidates[com.nemo.util.UuidUtil]查看错误,显然声称是UuidUtil的锅。然而其实并不然。解决方案是在打包插件中,添加启动class的配置即可。<plugin><groupId>o......5,124 0 2017-12-18 10:35
-
基于servlet简单实现一个mvc框架(模仿springmvc)
因为最近在折腾一些比较底层的东西,作为搞java的,不可避免的要折腾下mvc架构了。这是不久前开始折腾了几天的一个mvc架构,这两天偶尔零零星星的完善了一些,算是有了个雏形,这里稍稍记录下。这个项目的源码目前托管在github上,地址为:https://github.com/geeeeeeeeeeeeeeeek/NemoMvc简单的说明下:此框架大体只为学习mvc架构方面的东西,简单实现,所以肯定1,790 6 2017-12-15 18:30
-
JAVA简单实现一个类似apache的简易web容器
最近在弄一些比较底层的东西,所以不可避免的要弄一下网络协议相关的内容。正好项目转测有些时间,所以就琢磨着写了这个简易的类似apache的容器。目前这个web容器只支持静态文件的请求处理,后续如果有时间,会加入动态请求的处理。这个项目的源码目前托管在github上,地址为:https://github.com/geeeeeeeeeeeeeeeek/NemoWebServer在开始之前,需要一些基础的3,564 2 2017-12-14 18:57
-
-
分布式数据库架构--分库、分表、排序、分页、分组、实现 (转载)
MySQL分库分表总结:单库单表:单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到。 单库多表:随着用户数量的增加,user表的数据量会越来越大,当数据量达到一定程度的时候对user表的查询会渐渐的变慢,从而影响整个DB的性能。如果使用mysql,还有一个更严重的问题是,当需要添加一列的时候,mysql会锁表,期间......4,674 0 2017-12-12 14:23
-
Spring 使用注解方式进行事务管理
以下是Springmvc中比较常用的,springboot中则省去了配置,直接使用注解打开即可。不过核心原理还是一样的。使用步骤:步骤一、在spring配置文件中引入<tx:>命名空间<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchem......6,232 0 2017-11-30 19:18
-
java 得到两个日期相差的天数
/***得到两个日期之间相差的天数*@paramdate1*@paramdate2*@return*/privatestaticintdifferentDays(Datedate1,Datedate2){Calendarcal1=Calendar.getInstance();cal1.setTime(date1);Calendarcal2=Calendar.getInstance();cal2.s......4,221 0 2017-11-28 19:25
-
java 强制类型转换方法
NemoMVC中用到的,先写一下。/***类型转换*@paramvalue需要转换的值*@paramtype需要转换的类型*@param<T>*@return*/@SuppressWarnings("unchecked")publicstatic<T>Tcast(Objectvalue,Class<T>type){if(value!=null&&......3,218 0 2017-11-27 11:03
-
spark与storm的对比
对比点StormSparkStreaming实时计算模型纯实时,来一条数据,处理一条数据准实时,对一个时间段内的数据收集起来,作为一个RDD,再处理实时计算延迟度毫秒级秒级吞吐量低高事务机制支持完善支持,但不够完善健壮性/容错性ZooKeeper,Acker,非常强Checkpoint,WAL,一般动态调整并行度支持不支持 SparkStreaming与Storm的应用场景 对......5,070 0 2017-11-23 15:15
-
TPS及计算方法
TPS(transactionpersecond)代表每秒执行的事务数量,可基于测试周期内完成的事务数量计算得出。例如,用户每分钟执行6个事务,TPS为6 /60s=0.10TPS。同时我们会知道事务的响应时间(或节拍),以此例,60秒完成6个事务也同时代表每个事务的响应时间或节拍为10秒。 利特尔法则 (Little’slaw):该法则由麻省理工大学斯隆商学院(MI......1,393 0 2017-11-23 15:07