- 博客(12)
- 收藏
- 关注
原创 大数据架构与概念
所谓大数据,从字面理解就是数据量大,大到传统的单机根本无法存储和运算。hadoop使用分布式存储和分布式计算。在这里不过多的介绍概念,只想把大数据的架构以及应用讲一下,首先来看一个图1.首先要应用大数据,进行数据存储和计算,就必须把这个数据放到大数据的世界里,也就是数据抓取。外部数据来源可以是关系型数据库oracle ,mysql,非关系型redis等也可以是一些分布在各处的文件1.1...
2019-10-23 11:50:10
280
原创 mybatis接入分析
1.首先是,引用mybatis的入口2.看一下MapperScannerConfigurer类的继承关系,主要看接口BeanDefinitionRegistryPostProcessor这个接口有一个方法postProcessBeanDefinitionRegistry,下面先看看这个方法是在哪个地方调用的。大名鼎鼎的BeanFactoryPostProcessor(BFPP)出现了~~...
2019-10-11 10:13:41
317
1
原创 spring相关
Springcontrol+ h 看子类和接口的调用链对象.tostring = 对象实现类的类名 + @ +hashCode值,如果不重写对象tostring方法的话service方法调用自己的方法,用this,这个this是原始对象,没有切入事务。 因为代理后 在handler里面的最终都是advise前target.invode(方法名) target 是原始对象advise后...
2019-10-10 11:40:49
127
原创 IO相关
IOtcp为提高性能,发送端会将需要发送的数据发送到缓冲区,等待缓冲区满了之后,再将缓冲中的数据发送到接收方。同理,接收方也有缓冲区这样的机制,来接收数据。发生TCP粘包、拆包主要是由于下面一些原因:应用程序写入的数据大于套接字缓冲区大小,这将会发生拆包。应用程序写入数据小于套接字缓冲区大小,网卡将应用多次写入的数据发送到网络上,这将会发生粘包。进行mss(最大报文长度)大小...
2019-10-10 11:39:57
98
原创 kafka与rabbitmq消息中间件
kafka与rabbitmqXMind 思维导图axure 原型设计一:rabbitmq集群:1.1普通集群Rabbitmq 每个节点上有一个broker,每个broker负责本机上队列的维护,并且borker之间可以互相通信。集群中有两个队列A和B,每个队列都分为master queue和mirror queue(备份)一个主多个备,只有主做接受和发送,备就是一个镜像,不承担压力,用...
2019-10-10 11:39:14
177
原创 锁 同步器 多线程等
锁 同步 多线程sun.misc.Unsafe 可以获得对象的地址,以及每个字段的偏移地址,有了地址就可以线程安全的取得和设定值。例子:参照AbstractQueuedSynchronizer同步器源码static {stateOffset = unsafe.objectFieldOffset(AbstractQueuedSynchronizer.class.getDeclaredFie...
2019-10-10 11:38:17
128
原创 数据库
提高并发的演进思路,就在如此:普通锁,本质是串行执行读写锁,可以实现读读并发数据多版本,可以实现读写并发redo日志用于保障,已提交事务的ACID特性。undo日志用于保障,未提交事务不会对数据库的ACID特性产生影响。存储undo日志的地方,是回滚段。回滚段里的数据,其实是历史数据的快照(snapshot),这些数据是不会被修改,select可以肆无忌惮的并发读取他们提交后先...
2019-10-10 11:33:24
72
原创 java相关未整理
JAVA深拷贝序列化与反序列化fastjson从Object转成json,然后转回object,本质上是反射头插法代码e.next = newTable[i];newTable[i] = e;头插法。这个是hashmao1.7的源码,扩容时候的把e的next指向newTable[I]也就是链表的首节点,然后在把e作为链表的首节点1.8后采用尾插法要使用Java SPI(Ser...
2019-10-10 11:32:46
72
原创 thirft
thrift不支持多态 / 重载.没有异构容器: 容器中元素的类型必须一样.参数 & 返回值不能为 null(强烈建议不要将 null 赋予业务意义).容器中元素不能为 null, 在插入容器前需要做检查, 另外建议将 struct 中 string 元素的默认值设置为 “”thrift 0.8 接口返回值为基本类型时,无法返回自定义异常。http是应用层协议,tcp是传输...
2019-10-10 11:31:05
90
原创 redis相关
Redis缓存穿透指查询一个一定不存在的数据,缓存自然是没有的,就到了数据库解决办法1.设置拦截器,不合法不到持久层2.查询不存在的数据,也把空缓存更新到缓存,这样下次就到缓存查询空了缓存雪崩如果缓存数据设置的过期时间是相同的,并且Redis恰好将这部分数据全部删光了。这就会导致在这段时间内,这些缓存同时失效,全部请求到数据库中。1.随机过期时间2.设置限流(hystrix)R...
2019-10-10 11:28:36
92
原创 数据结构
linkedList 双向链表 头尾指针 可在各处插入删除数据Arraylist 数组concurrentHashmop:synchronized +node + cas + 红黑树 + 桶ArrayBlockingQueue:数组环 takeIndex +putIndex 两个移动的坐标位置,ReentrantLock加锁,生产者消费者模式 两个Condition,互相发信号...
2019-10-10 11:27:21
67
原创 JMM
JMM内存模型:Java内存模型定义了多线程之间共享变量的可见性以及如何在需要的时候对共享变量进行同步Java内存模型,线程之间的共享变量存储在主内容,内存栅栏每个线程都有一个私有内存,有一个主内存的副本Violtate,保证副本和主内存一致,即更新副本的时候一定即是更新主内存final ReentrantLock lock = this.lock;lock.lock原因一、为了加快访...
2019-10-10 11:23:09
129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人