Spring Aware接口

spring 的bean实现Aware接口。可以自动织入BeanFactory等Spring容器对象。 Spring Aware对象实现原理 class ApplicationContextAwareProcessor implements BeanPostProcessor { privat...

2018-10-20 13:18:45

阅读数 46

评论数 0

Spring FactoryBean接口

如果一个bean实现FactoryBean,那么它就不是一个简单的bean,类似于java模式中的工厂模式,用于生产不同的Object。 举例 public class OkHttpClientFactoryBean implements FactoryBean, DisposableBean ...

2018-10-20 12:31:14

阅读数 71

评论数 0

mysql select ... for update

1.用法 用法: select … for update; 例如:select * from goods where id = 1 for update; 排他锁的申请前提:没有线程对该结果集中的任何行数据使用排他锁或共享锁,否则申请会阻塞。 **for update仅适用于InnoDB,且必须在...

2018-10-13 21:17:55

阅读数 49

评论数 0

线程池隔离的优缺点

1.线程隔离的优点: 尽管线程池提供了线程隔离,我们的客户端底层代码也必须要有超时设置,不能无限制的阻塞以致线程池一直饱和。 2.线程隔离的缺点: The Netflix API processes 10+ billion Hystrix Command executions per day u...

2018-10-13 20:35:37

阅读数 460

评论数 0

linux 线程切换

1.什么引起线程切换 时间片轮转 线程阻塞 线程主动放弃时间片

2018-10-11 22:35:21

阅读数 277

评论数 0

MySql innodb和MyISAM

1.Innodb 1.1 聚簇索引 InnoDB中,聚簇索引就是“表”,所以不像MyIsAM那样需要独立的行存储。 聚簇索引的每一个叶子节点都包含了主键值,事务ID,用于事务和MVCC的回滚指针以及所有的剩余列。如果主键时一个前缀索引,InnoDB会包含完整的主键列和剩下的其他列。 聚簇索引并不是...

2018-10-10 23:04:56

阅读数 41

评论数 0

elastic-job--作业类型

elastic-job提供了三种类型的作业: Simple类型作业 SimpleJob需要实现SimpleJob接口,意为简单实现,未经过任何封装,与quartz原生接口相似,比如示例代码中所使用的job。 Dataflow类型作业 Dataflow类型用于处理数据流,需实现Dataf...

2018-10-10 21:01:20

阅读数 173

评论数 0

elastic-job--数据分片

数据分片的目的在于把一个任务分散到不同的机器上运行,既可以解决单机计算能力上限的问题,也能降低部分任务失败对整体系统的影响。elastic-job并不直接提供数据处理的功能,框架只会将分片项分配至各个运行中的作业服务器(其实是Job实例,部署在一台机器上的多个Job实例也能分片),开发者需要自行处...

2018-10-08 23:05:34

阅读数 59

评论数 0

elastic-job --介绍

1.elastic-job是什么 elastic-job是当当开发的基于qutarz以及zookeeper封装的作业调度工具,主要有两个大框架,一个是elastic-job lite另外一个是elastic-job cloud,其中qutarz是一个开源的作业调度工具,zookeeper是分布式调...

2018-10-08 22:40:26

阅读数 48

评论数 0

分布式一致性模型--顺序一致性

1.介绍 一致性描述的是当分布式中共享资源被复制时的并发访问的语义。 2.什么是顺序一致性 当进程在多台机器上并发运行时,任何读、写操作的有效交叉都是可接受的行为,但是所有的进程都看到相同的交叉操作。 2.1 举例 进程p1把x的值修改成a,进程p2把x的值修改成b,进程p3,p4并发的进行读。 ...

2018-10-07 23:18:25

阅读数 240

评论数 0

FreeMaker介绍

1.FreeMaker是什么 FreeMarker是一款免费的Java模板引擎,是一种基于模板和数据生成文本(HMLT、电子邮件、配置文件、源代码等)的工具,它不是面向最终用户的,而是一款程序员使用的组件。 FreeMarker最初设计是用来在MVC模式的Web开发中生成HTML页面的,所以没有绑...

2018-10-07 13:17:06

阅读数 35

评论数 0

ServletContextListener使用详解

1.介绍 在 Servlet API 中有一个 ServletContextListener 接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。 2. 作用 当Servlet 容器启动或终止Web 应用时,会触发ServletContextEv...

2018-10-07 13:02:33

阅读数 116

评论数 0

数据库水平扩展--分片

1.介绍 实现数据分片需要包含以下功能: 分片映射管理:是一个特殊的数据库。存储分片相关的元数据。 路由:当接收到一个请求时,应用程序需要根据相关的key值从 分片映射管理器中获取映射的数据库,进行数据查询或修改。 多分片查询:当一个请求涉及到多个分片时,需要对查询结果进行排序合并等。...

2018-10-02 23:14:47

阅读数 106

评论数 0

zab协议

1.背景 在分布式系统中实现一致性是件有挑战的事。经典的二阶段提交、三阶段提交都不能完美的解决这一问题,有关传统的的分布式系统一致性问题可以看这里。Paxos 算法能完美地达到分布式系统的一致性,但由于较为复杂,在实际工程上不是很合适,Zab 协议借鉴了 Paxos 的思想,并进行了改进,以满足工...

2018-09-25 22:47:49

阅读数 52

评论数 0

websocket协议

1.连接建立 WebSocket复用了HTTP的握手通道。具体指的是,客户端通过HTTP请求与WebSocket服务端协商升级协议。协议升级完成后,后续的数据交换则遵照WebSocket的协议。 1.1 客户端:申请协议升级 首先,客户端发起协议升级请求。可以看到,采用的是标准的HTTP报文格式,...

2018-09-25 21:35:43

阅读数 73

评论数 0

mongodb-副本集2

1.同步 mongodb的同步使用操作日志oplog实现的。操作日志保存了每一次主节点的写操作。oplog是主节点local数据库中的一个固定集合,备份节点通过查询这个集合就可以知道需要进行复制的操作。 每个备份节点都维护着自己的oplog。记录着每次从主节点复制数据的操作。每个备份节点都可以...

2018-09-24 23:14:06

阅读数 46

评论数 0

mongodb--副本集1

1.介绍 副本集是一组服务器,其中有一个主服务器,用来处理客户端的请求。还有多个备份服务器,用于保存主服务器的数据副本。如果主服务器崩溃了,备份服务器会自动将其中一个升级为主服务器。...

2018-09-24 22:03:45

阅读数 35

评论数 0

设计模式--装饰模式

装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 1.装饰模式的结构 装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的...

2018-09-24 10:57:19

阅读数 38

评论数 0

Ngnix的基本学习-多进程和Apache的比较

1.基本的架构设计 接口设计 所有的模块都遵循着同样的ngx_module_t接口设计规范。 Ngnix核心及其常用模块设计关系 从图中可以看出,总共有四个模块。 首先是配置模块,配置模块是所有模块的基础,他实现了最基本的配置项的解析功能。 nginx定义了一种基础类型的模...

2018-09-24 10:18:50

阅读数 81

评论数 0

mybatis缓存机制详解

mybatis提供了缓存机制减轻数据库压力,提高数据库性能mybatis的缓存分为两级: 一级缓存、二级缓存 一级缓存是SqlSession级别的缓存,缓存的数据只在SqlSession内有效 二级缓存是mapper级别的缓存,同一个namespace公用这一个缓存,所以对SqlSession是共...

2018-09-22 21:33:51

阅读数 38

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭