08 2019 档案

摘要:写在前面 redis辣么多数据结构,这么多命令,具体一点,都可以应用在什么场景呢?用来解决什么具体的问题? 分布式锁 redis是网络单线程的,它只有一个线程负责接受请求,这个特性即降低了redis本身的开发成本,也提高了redis的可用性。 分布式环境下,数据一致性问题一直是一个比较重要的话题,分 阅读全文
posted @ 2019-08-22 18:05 Kero小柯 阅读(3421) 评论(0) 推荐(0)
摘要:缓存 redis还有另外一个重要的应用领域——缓存 引用来自网友的图解释缓存在架构中的位置 默认情况下,我们的服务架构如下图,客户端请求service,然后service去读取mysql数据库 问题存在于,数据库性能不够用,数据库是整个架构中最重要的一个环节,它在高并发,高写入频次的时候非常容易崩掉 阅读全文
posted @ 2019-08-22 14:56 Kero小柯 阅读(293) 评论(0) 推荐(0)
摘要:列举几个关于Java Collections的常见问题并给出答案。 1. 什么时候用LinkedList,什么时候用ArrayList? ArrayList是使用数组实现的list,本质上就是数组。ArrayList中的元素可以通过索引随机获取一个元素。但是如果该数组已满,当添加新元素时需要分配一个 阅读全文
posted @ 2019-08-14 14:14 Kero小柯 阅读(331) 评论(0) 推荐(0)
摘要:所谓互斥,就是不同线程通过竞争进入临界区(共享的数据和硬件资源),为了防止访问冲突,在有限的时间内只允许其中之一独占性的使用共享资源。如不允许同时写 同步关系则是多个线程彼此合作,通过一定的逻辑关系来共同完成一个任务。一般来说,同步关系中往往包含互斥,同时对临界区的资源会按照某种逻辑顺序进行访问。如 阅读全文
posted @ 2019-08-14 14:04 Kero小柯 阅读(1656) 评论(0) 推荐(1)
摘要:多线程 [html] view plain copy print? final void wait() throws InterruptedException final void notify() final void notifyAll() [html] view plain copy prin 阅读全文
posted @ 2019-08-14 13:58 Kero小柯 阅读(103) 评论(0) 推荐(0)
摘要:1. 定义 JRE(Java Runtime Enviroment)是Java的运行环境。面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。它包括Java虚拟机、Ja 阅读全文
posted @ 2019-08-14 11:24 Kero小柯 阅读(136) 评论(0) 推荐(0)
摘要:有时候会有这样的需求,多个线程同时工作,然后其中几个可以随意并发执行,但有一个线程需要等其他线程工作结束后,才能开始。举个例子,开启多个线程分块下载一个大文件,每个线程只下载固定的一截,最后由另外一个线程来拼接所有的分段,那么这时候我们可以考虑使用CountDownLatch来控制并发。 Count 阅读全文
posted @ 2019-08-14 11:19 Kero小柯 阅读(194) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2019-08-14 09:58 Kero小柯 阅读(100) 评论(0) 推荐(0)
摘要:首先介绍下短链接和长连接的区别:短连接连接->传输数据->关闭连接 比如HTTP是无状态的的短链接,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 具体就是 浏览器client发起并建立TCP连接 -> client发送HttpRequest报文 -> server接收 阅读全文
posted @ 2019-08-13 19:49 Kero小柯 阅读(848) 评论(0) 推荐(0)
摘要:缓冲区(Buffer):一,在 Java NIO 中负责数据的存取。缓冲区就是数组。用于存储不同数据类型的数据根据数据类型不同(boolean 除外),提供了相应类型的缓冲区:ByteBufferCharBufferShortBufferIntBufferLongBufferFloatBufferD 阅读全文
posted @ 2019-08-13 19:45 Kero小柯
摘要:事务使用步骤如下: 步骤一、在spring配置文件中引入<tx:>命名空间 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 阅读全文
posted @ 2019-08-13 19:26 Kero小柯 阅读(496) 评论(0) 推荐(1)
摘要:Java NIO和IO的主要区别 下表总结了Java NIO和IO之间的主要差别。 面向流与面向缓冲 Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。此外,它不能前 阅读全文
posted @ 2019-08-13 19:11 Kero小柯 阅读(328) 评论(0) 推荐(0)
摘要:以下是用于测试OOM的测试代码: 这段代码非常简单,其目的就是为了模拟OOM,将其编译后,通过以下命令运行: java -Xmx10m -Xms10m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./oom.out HeapMemUseTest其 阅读全文
posted @ 2019-08-12 20:29 Kero小柯 阅读(1084) 评论(0) 推荐(0)
摘要:做为应用负责人,谁都希望自己负责的应用能够在线上跑得顺顺当当,不出任何错误,也不产生任何告警,当然这是最理想的结果,也是做为技术人员希望达到的最终效果。可是实事上应用就像小孩一样,总会在不经意间,不按你期望的结果运行,如CPU偏高、内存占用偏高、应用没有响应、应用自动挂掉等,搞得我们技术人员不是一般 阅读全文
posted @ 2019-08-12 19:59 Kero小柯 阅读(430) 评论(0) 推荐(0)
摘要:Core模块主要的功能是实现了反向控制IOC(Inversion of Control)与依赖注入DI(Dependency Injection)、Bean配置以及加载。Core模块中有Beans、BeanFactory、BeanDefinitions、ApplicationContext等几个重要 阅读全文
posted @ 2019-08-12 19:03 Kero小柯 阅读(1185) 评论(0) 推荐(0)
摘要:使用ExecutorService、Callable、Future实现有返回结果的多线程ExecutorService、Callable、Future这个对象实际上都是属于Executor框架中的功能类。想要详细了解Executor框架的可以访问http://www.javaeye.com/topi 阅读全文
posted @ 2019-08-12 14:57 Kero小柯 阅读(2400) 评论(0) 推荐(0)
摘要:索引在数据结构上可以分为三种B树索引、位图索引和散列索引 B树索引 键值重复率低的字段比较适合使用B树索引。 结构: 上图是B树索引的结构示意图,根节点和分支节点的结构类似,都包含指向下一层的指针及其键值范围,叶节点包含键值和行编号(RowID)。B树索引适合于选择性较低(即键值重复率较低)的列,当 阅读全文
posted @ 2019-08-09 16:17 Kero小柯 阅读(1170) 评论(0) 推荐(0)
摘要:1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了; 2.模版模式,这个也很明显,在各种BeanFactory以及ApplicationContext实现中也都用到了; 3.代理模式,在Aop实现中用到了JDK的动态代理; 4.单例模式,这个 阅读全文
posted @ 2019-08-09 13:52 Kero小柯 阅读(233) 评论(0) 推荐(0)
摘要:1.集合分类2.具体讲解 2.1 List集合 2.1.1 arrayList详细讲解 2.1.2 LinkedList详细讲解 2.1.3 vector详细讲解 2.1.4 stack详细讲解 2.2 Set集合 2.2.1 HashSet详细讲解: 2.2.2 TreeSet详细讲解: 2.3 阅读全文
posted @ 2019-08-08 14:58 Kero小柯 阅读(721) 评论(0) 推荐(0)
摘要:第一优化你的sql和索引; 第二加缓存,memcached,redis; 第三以上都做了后,还是慢,就做主从复制或主主复制,读写分离,可以在应用层做,效率高,也可以用三方工具,第三方工具推荐360的atlas,其它的要么效率不高,要么没人维护; 第四如果以上都做了还是慢,不要想着去做切分,mysql 阅读全文
posted @ 2019-08-08 14:52 Kero小柯 阅读(88) 评论(0) 推荐(0)
摘要:一、简介Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统。 它最初由LinkedIn公司开发,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。Kafka是一种快速、可扩展的、设计内在就是分布式的 阅读全文
posted @ 2019-08-08 13:45 Kero小柯 阅读(766) 评论(0) 推荐(0)
摘要:概述 其实一直想写一篇rocketMq和kafka在架构设计上的差别,但是一直有个问题没搞明白所以迟迟没动手,今天无意中听人点播了一下似乎明白了这个问题,所以就有了这篇对比。 这篇博文主要讲清楚kafka和rocketMq的两个不同点,1、rocketMq的namesvr和kafka的zookeep 阅读全文
posted @ 2019-08-08 13:40 Kero小柯 阅读(1187) 评论(0) 推荐(0)
摘要:Kafka 是LinkedIn 开发的一个高性能、分布式的消息系统,广泛用于日志收集、流式数据处理、在线和离线消息分发等场景。虽然不是作为传统的MQ来设计,在大部分情况,Kafaka 也可以代替原先ActiveMQ 等传统的消息系统。 Kafka 将消息流按Topic 组织,保存消息的服务器称为Br 阅读全文
posted @ 2019-08-08 13:18 Kero小柯 阅读(3753) 评论(0) 推荐(0)
摘要:作为消息队列来说,企业中选择mq的还是多数,因为像Rabbit,Rocket等mq中间件都属于很成熟的产品,性能一般但可靠性较强, 而kafka原本设计的初衷是日志统计分析,现在基于大数据的背景下也可以做运营数据的分析统计,而redis的主要场景是内存数据库,作为消息队列来说可靠性太差,而且速度太依 阅读全文
posted @ 2019-08-08 13:17 Kero小柯 阅读(1623) 评论(0) 推荐(0)