10 2018 档案

摘要:软引用(SoftReference) 软引用是用来描述一些有用但并不是必需的对象,在Java中用java.lang.ref.SoftReference类来表示。对于软引用关联着的对象,只有在内存不足的时候JVM才会回收该对象。因此,这一点可以很好地用来解决OOM的问题,并且这个特性很适合用来实现缓存 阅读全文
posted @ 2018-10-30 17:49 kaleidoscopic 阅读(668) 评论(1) 推荐(1) 编辑
摘要:主从复制的作用 1、做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。 2、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。 3、读写分离,使数据库能支撑更大的并发。在报表中 阅读全文
posted @ 2018-10-30 17:40 kaleidoscopic 阅读(159) 评论(0) 推荐(0) 编辑
摘要:什么是自旋锁? 自旋锁(spinlock):是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。 获取锁的线程一直处于活跃状态,但是并没有执行任何有效的任务,使用这种锁会造成busy-waiting。 Java如 阅读全文
posted @ 2018-10-30 17:27 kaleidoscopic 阅读(355) 评论(0) 推荐(0) 编辑
摘要:什么是间隙锁当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但不存在的记录,叫做“间隙(GAP)”,InnoDB也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁(NEXT-KEY)锁。危害因为Query执行过程中 阅读全文
posted @ 2018-10-30 17:17 kaleidoscopic 阅读(697) 评论(0) 推荐(0) 编辑
摘要:引言 Kafka中的Message是以topic为基本单位组织的,不同的topic之间是相互独立的。每个topic又可以分成几个不同的partition(每个topic有几个partition是在创建topic时指定的),每个partition存储一部分Message。借用官方的一张图,可以直观地看 阅读全文
posted @ 2018-10-30 16:56 kaleidoscopic 阅读(1524) 评论(0) 推荐(1) 编辑
摘要:/** * 设计一个缓存系统 * 读写锁的应用。 * JDK1.5自带的读写锁特性,读与读不互斥,读与写互斥,写与写互斥。 * 为什么要使用读写锁?一句话概括那就是提高系统性能,如何提高呢? * 试想,对于所有对读的操作是不需要线程互斥的,而如果方法内 * 使用了synch... 阅读全文
posted @ 2018-10-30 16:44 kaleidoscopic 阅读(1480) 评论(0) 推荐(0) 编辑
摘要:先了解一下ThreadLocal类提供的几个方法: get()方法是用来获取ThreadLocal在当前线程中保存的变量副本,set()用来设置当前线程中变量的副本,remove()用来移除当前线程中变量的副本,initialValue()是一个protected方法,一般是用来在使用时进行重写的, 阅读全文
posted @ 2018-10-30 16:34 kaleidoscopic 阅读(209) 评论(0) 推荐(0) 编辑
摘要:Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。 可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大 阅读全文
posted @ 2018-10-30 16:23 kaleidoscopic 阅读(297) 评论(0) 推荐(0) 编辑
摘要:ReentrantLock的实现是基于其内部类FairSync(公平锁)和NonFairSync(非公平锁)实现的。 其可重入性是基于Thread.currentThread()实现的: 如果当前线程已经获得了执行序列中的锁, 那执行序列之后的所有方法都可以获得这个锁。 公平锁: 公平和非公平锁的队 阅读全文
posted @ 2018-10-30 16:15 kaleidoscopic 阅读(6109) 评论(0) 推荐(0) 编辑
摘要:场景:有三个线程t1、t2、t3。确保三个线程t1执行完后t2执行,t2执行完成后t3执行。 1、thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B 2、使用Count 阅读全文
posted @ 2018-10-30 15:38 kaleidoscopic 阅读(10119) 评论(0) 推荐(2) 编辑
摘要:在高并发短连接的TCP服务器上,当服务器处理完请求后立刻主动正常关闭连接。这个场景下会出现大量socket处于TIME_WAIT状态。如果客户端的并发量持续很高,此时部分客户端就会显示连接不上。我来解释下这个场景。主动正常关闭TCP连接,都会出现TIMEWAIT。 为什么我们要关注这个高并发短连接呢 阅读全文
posted @ 2018-10-30 15:05 kaleidoscopic 阅读(6609) 评论(0) 推荐(1) 编辑
摘要:1、Http长连接和Keep-Alive以及Tcp的Keepalive TCP的keep alive是检查当前TCP连接是否活着;HTTP的Keep-alive是要让一个TCP连接活久点。它们是不同层次的概念。 https://blog.csdn.net/weixin_37672169/articl 阅读全文
posted @ 2018-10-26 18:21 kaleidoscopic 阅读(321) 评论(0) 推荐(0) 编辑
摘要:文件上传是项目开发中最常见的功能。为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data。只有在这样的情况下,浏览器才会把用户选择的文件以二进制数据发送给服务器。 一旦设置了enctype为multipart/form-data,浏览器 阅读全文
posted @ 2018-10-25 17:53 kaleidoscopic 阅读(655) 评论(0) 推荐(0) 编辑
摘要:设计模式分为三大类: (1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 (2)结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 (3)行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、 阅读全文
posted @ 2018-10-23 17:53 kaleidoscopic 阅读(233) 评论(0) 推荐(0) 编辑
摘要:设计模式分为三大类: (1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 (2)结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 (3)行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、 阅读全文
posted @ 2018-10-23 15:50 kaleidoscopic 阅读(282) 评论(0) 推荐(0) 编辑
摘要:单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到 饿汉式 和 懒汉式 这两种实现方式。但是除了这两种方式,本文还会介绍其他几种实现单例的方式,让我们来一起看看吧。 简介 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在 阅读全文
posted @ 2018-10-23 14:54 kaleidoscopic 阅读(262) 评论(0) 推荐(0) 编辑
摘要:原文链接 最近项目组安排了一个任务,项目中用到了全文搜索,基于全文搜索 Solr,但是该 Solr 搜索云项目不稳定,经常查询不出来数据,需要手动全量同步,而且是其他团队在维护,依赖性太强,导致 Solr 服务一出问题,我们的项目也基本瘫痪,因为所有的依赖查询都无结果数据了。所以考虑开发一个适配层, 阅读全文
posted @ 2018-10-23 10:42 kaleidoscopic 阅读(325) 评论(0) 推荐(0) 编辑
摘要:Programming Question: Convert an IPv4 address in the format of null-terminated C string into a 32-bit integer.For example, given an IP address “172.16 阅读全文
posted @ 2018-10-22 20:15 kaleidoscopic 阅读(1698) 评论(0) 推荐(0) 编辑
摘要:介绍 Java 的zero copy多在网络应用程序中使用。Java的libaries在linux和unix中支持zero copy,关键的api是java.nio.channel.FileChannel的transferTo(),transferFrom()方法。我们可以用这两个方法来把bytes 阅读全文
posted @ 2018-10-19 17:55 kaleidoscopic 阅读(655) 评论(0) 推荐(0) 编辑
摘要:反应器设计模式(Reactor pattern)是一种为处理服务请求并发 提交到一个或者多个服务处理程序的事件设计模式。当请求抵达后,服务处理程序使用解多路分配策略,然后同步地派发这些请求至相关的请求处理程序。 The reactor design pattern is an event handl 阅读全文
posted @ 2018-10-19 17:48 kaleidoscopic 阅读(256) 评论(0) 推荐(0) 编辑
摘要:Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。 作为当前最流行的NIO框架,Netty在互联 阅读全文
posted @ 2018-10-19 17:37 kaleidoscopic 阅读(900) 评论(0) 推荐(0) 编辑
摘要:SQL好久不写了,有些生疏了,一个分组排序问题想了快半天,整理下。 学生表 班级表 问题:查询出每个班级前三名的信息? 首先,如何查询每个班级前三名的SQL呢? 完整SQL如下 阅读全文
posted @ 2018-10-19 15:37 kaleidoscopic 阅读(502) 评论(0) 推荐(0) 编辑
摘要:如何设计出高可用的分布式架构 分布式架构 CDN简介 分布式缓存和本地缓存区别 高并发场景常用技术解决方案 JVM优化示例 Docker和JVM区别 Java开发人员需要注意的五大Docker误区 Docker和虚拟机区别 浅析Docker容器的应用场景 Docker架构 基于Jenkins,doc 阅读全文
posted @ 2018-10-17 16:12 kaleidoscopic 阅读(188) 评论(0) 推荐(0) 编辑
摘要:数据类型的优化 MySQL数据类型 优化策略 索引优化 索引类型 高性能索引策略 查询优化 优化数据访问 从好到坏的where条件应用 重构查询 一、数据类型的优化 (1)MySQL数据类型 整数类型: TinyInt,存储空间8, 字节长度1; SmallInt, 存储空间16, 字节长度2; M 阅读全文
posted @ 2018-10-17 14:40 kaleidoscopic 阅读(1436) 评论(0) 推荐(0) 编辑
摘要:一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了;如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的;大型网站或重要的服务,且服务器比较多时,可以考虑用LVS。 阅读全文
posted @ 2018-10-17 14:28 kaleidoscopic 阅读(563) 评论(0) 推荐(0) 编辑
摘要:在这篇文章里我们将比较当需要对缓存方案进行技术选型时,使用进程内缓存与分布式缓存的优劣。 首先来看一下二者的定义。顾名思义,进程内缓存是与应用程序在相同地址空间的缓存。Google Guava是一个提供了简单进程内缓存API的很好的例子。另一方面,分布式缓存是应用程序的外部扩展,通常部署在多个节点上 阅读全文
posted @ 2018-10-16 21:14 kaleidoscopic 阅读(1117) 评论(0) 推荐(0) 编辑
摘要:<!-- 左侧内容 --> 在分布式架构中,SOA 和微服务架构是最常见的两种分布式架构,而且目前服务网格的概念也越来越火了,我们就先从这些常见的架构开始。 SOA 架构解析 SOA 全称是:Service Oriented Architecture,中文释义为 “面向服务的架构”。 它是一种设计理 阅读全文
posted @ 2018-10-16 21:03 kaleidoscopic 阅读(3258) 评论(0) 推荐(1) 编辑
摘要:List、Set、Map典型实现 HashMap/ConcurrentHashMap Java线程池 Java线程池详解 如何更好的使用JAVA线程池 Spring MVC Spring MVC架构浅析 Spring MVC实践 Spring IOC 容器源码分析 SpringAutowired实现 阅读全文
posted @ 2018-10-16 20:49 kaleidoscopic 阅读(166) 评论(0) 推荐(0) 编辑
摘要:区别 来源(背景): Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点。 Spring Cloud,从命名我们就可以知道,它是Spring Source的产物,Spring社区的强大背书可以说是Java企业界最有影响力的组织了,除了Spring Source之外,还 阅读全文
posted @ 2018-10-16 20:40 kaleidoscopic 阅读(317) 评论(0) 推荐(0) 编辑
摘要:今天来整理一下Spring的自动装配 autowire一节,在这里我们要解决以下问题: 一、什么是自动装配? The Spring container is able to autowire relationships between collaborating beans. This means 阅读全文
posted @ 2018-10-16 20:09 kaleidoscopic 阅读(4711) 评论(0) 推荐(0) 编辑
摘要:这篇文章结合Doug Lea大神在JDK1.5提供的JCU包,分别从线程池大小参数的设置、工作线程的创建、空闲线程的回收、阻塞队列的使用、任务拒绝策略、线程池Hook等方面来了解线程池的使用,其中涉及到一些细节包括不同参数、不同队列、不同拒绝策略的选择、产生的影响和行为、为更好的使用线程池奠定知识基 阅读全文
posted @ 2018-10-16 17:16 kaleidoscopic 阅读(511) 评论(0) 推荐(0) 编辑
摘要:Executors创建线程池 Java中创建线程池很简单,只需要调用Executors中相应的便捷方法即可,比如Executors.newFixedThreadPool(int nThreads),但是便捷不仅隐藏了复杂性,也为我们埋下了潜在的隐患(OOM,线程耗尽)。 Executors创建线程池 阅读全文
posted @ 2018-10-16 17:12 kaleidoscopic 阅读(262) 评论(0) 推荐(0) 编辑
摘要:HashMap的Put方法 回顾HashMap的put(Key k, Value v)过程: (1)对 Key求Hash值,对n-1取模计算出Hash表数组下标 (2)如果没有碰撞,直接放入桶中,即Hash表数组对应位置的链表表头。 (3)如果碰撞了,若节点已经存在就替换旧值,否则以链表的方式将该元 阅读全文
posted @ 2018-10-15 21:22 kaleidoscopic 阅读(699) 评论(0) 推荐(0) 编辑
摘要:1:集合 Collection(单列集合) List(有序,可重复) ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector 底层数据结构是数组,查询快,增删慢 线程安全,效率低 LinkedList 底层数据结构是链表,查询慢,增删快 线程不安全,效率高 Set( 阅读全文
posted @ 2018-10-15 21:10 kaleidoscopic 阅读(562) 评论(0) 推荐(0) 编辑
摘要:ArrayList和LinkedList的区别 1、ArrayList和LinkedList可想从名字分析,它们一个是Array(动态数组)的数据结构,一个是Link(链表)的数据结构,此外,它们两个都是对List接口的实现。 前者是数组队列,相当于动态数组;后者为双向链表结构,也可当作堆栈、队列、 阅读全文
posted @ 2018-10-15 20:52 kaleidoscopic 阅读(230) 评论(0) 推荐(0) 编辑
摘要:JVM 内部原理(一)— 概述 JVM 内部原理(二)— 基本概念之字节码 JVM 内部原理(三)— 基本概念之类文件格式 JVM 内部原理(四)— 基本概念之 JVM 结构 JVM 内部原理(五)— 基本概念之 Java 虚拟机官方规范文档,第 7 版 JVM 内部原理(六)— Java 字节码基 阅读全文
posted @ 2018-10-15 18:17 kaleidoscopic 阅读(191) 评论(0) 推荐(0) 编辑
摘要:<!-- BEGIN .entry-header --> 如下图所示,JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。 加载 加载主要是将.class文件(并不一定是.class。可以是ZIP包,网络中获取)中的二进制字节流读入到JVM中。 在加载阶段 阅读全文
posted @ 2018-10-15 17:53 kaleidoscopic 阅读(299) 评论(0) 推荐(0) 编辑
摘要:1、string 可以是字符串,整数或者浮点数: 对整个字符串或者字符串中的一部分执行操作 对整个整数或者浮点执行自增(increment)或者自减(decrement)操作 字符串命令: ①get、获取存储在指定键中的值 ②set、设置存储在指定键中的值 ③del、删除存储在指定键中的值(这个命令 阅读全文
posted @ 2018-10-15 15:27 kaleidoscopic 阅读(529) 评论(0) 推荐(0) 编辑
摘要:MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB( 阅读全文
posted @ 2018-10-15 15:08 kaleidoscopic 阅读(1833) 评论(0) 推荐(0) 编辑
摘要:Java多态概述 多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。Java 对于方法调用动态绑定的实现主要依赖于方法表,但通过类引用调用(invokevitual)和接口引用调用(invokeinterface)的实现则有所不同。 类引用调 阅读全文
posted @ 2018-10-15 14:22 kaleidoscopic 阅读(30873) 评论(0) 推荐(10) 编辑
摘要:使用入门-数据源配置 数据源配置,tddl的入口,从datasource切入 Sequence生成器 指定静态文件,3.0以后支持动态推送 myDataSource--分库分表数据源 appName--数据库代号从dba获得 appRuleFile--分库分表配置文件 useLocalConfig- 阅读全文
posted @ 2018-10-12 17:36 kaleidoscopic 阅读(1961) 评论(0) 推荐(0) 编辑
摘要:J2EE的十三个技术规范 J2EE体系结构 一、JDBC:Java Data Base Connectivity,数据库连接 我们大家对微软公司的ODBC数据库访问接口比较熟悉,而在Java中创建数据库连接使用的是JDBC。学习的过程中,我们会发现:其实,JDBC和ODBC使用方法很相似,JDBC甚 阅读全文
posted @ 2018-10-11 20:31 kaleidoscopic 阅读(1241) 评论(0) 推荐(1) 编辑
摘要:一、了解Servlet的概念 Servlet定义 Servlet是基于Java技术的Web组件,由容器管理并产生动态的内容。Servlet引擎作为WEB服务器的扩展提供支持Servlet的功能。Servlet与客户端通过Servlet容器实现的请求/响应模型进行交互。 注意:Servlet不是从命令 阅读全文
posted @ 2018-10-10 20:48 kaleidoscopic 阅读(9307) 评论(0) 推荐(1) 编辑
摘要:Netty系列之Netty高性能之道 Netty系列之Netty线程模型 Netty系列之Netty 服务端创建 Netty系列之Netty编解码框架分析 Netty系列之Netty百万级推送服务设计要点 Netty系列之Netty并发编程分析 Netty系列之Netty可靠性分析 Netty系列之 阅读全文
posted @ 2018-10-10 20:28 kaleidoscopic 阅读(212) 评论(0) 推荐(0) 编辑
摘要:原标题:Kafka如何做到1秒处理1500万条消息? Apache Kafka 是一款流行的分布式数据流平台,它已经广泛地被诸如 New Relic(数据智能平台)、Uber、Square(移动支付公司)等大型公司用来构建可扩展的、高吞吐量的、且高可靠的实时数据流系统。 例如,在 New Relic 阅读全文
posted @ 2018-10-10 20:23 kaleidoscopic 阅读(2231) 评论(0) 推荐(0) 编辑
摘要:Maven 生产者Producer 消费者Consumer 阅读全文
posted @ 2018-10-10 20:18 kaleidoscopic 阅读(1687) 评论(0) 推荐(0) 编辑
摘要:首先是启动一个生产者 启动配置参数如下所示: acks参数: 在考虑请求完成之前,生产者要求leader收到的确认数量,这将控制发送的记录的持久性。 acks=0如果设置为零,则生产者不会等待来自服务器的任何确认。该记录将被立即添加到套接字缓冲区并被视为已发送。在这种情况下,retries不能保证服 阅读全文
posted @ 2018-10-10 20:14 kaleidoscopic 阅读(8546) 评论(0) 推荐(0) 编辑
摘要:一、基本概念 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: Kafka将消息以topic为单位进行归纳。 将向Kafka topic发布消息的程序成为producers. 将 阅读全文
posted @ 2018-10-10 20:09 kaleidoscopic 阅读(571) 评论(0) 推荐(0) 编辑
摘要:ONS, 全名Open Notification Service, 是阿里基于开源消息中间件RocketMQ的一个云产品。 首先,要申请阿里账号等。本地也可以申请阿里云账号自己调试。此处为公司拥有阿里云服务,与运维op申请ons测试可用的服务。 申请ONS需要的创建topic,PID,CID,acc 阅读全文
posted @ 2018-10-10 17:39 kaleidoscopic 阅读(7228) 评论(0) 推荐(0) 编辑
摘要:1、发布事件 2、处理事件 注意: 阅读全文
posted @ 2018-10-10 17:17 kaleidoscopic 阅读(1511) 评论(0) 推荐(0) 编辑
摘要:(1)什么是代理? 大道理上讲代理是一种软件设计模式,目的地希望能做到代码重用。具体上讲,代理这种设计模式是通过不直接访问被代理对象的方式,而访问被代理对象的方法。这个就好比 商户 >明星经纪人(代理) >明星这种模式。我们可以不通过直接与明星对话的情况下,而通过明星经纪人(代理)与其产生间接对话。 阅读全文
posted @ 2018-10-10 16:56 kaleidoscopic 阅读(149) 评论(0) 推荐(0) 编辑
摘要:1、Object#wait(), Object#notify()让两个线程依次执行 2、Condition#signal(), Condition#wait()让两个线程依次执行 Lock.Condition同理 3、两个线程使用Object#wait(), Object#notify()实现生产消 阅读全文
posted @ 2018-10-10 16:32 kaleidoscopic 阅读(1299) 评论(0) 推荐(0) 编辑
摘要:整个系列文章分为三个部分,包括 框架篇、架构篇 和 公共应用篇。 框架篇 即中间件或工具的使用,如缓存、消息队列、集中式日志、度量、微服务框架等,工欲善其事,必先利其器。 架构篇 主要是设计思想的提升,有企业总体架构、单个项目架构设计、统一应用分层等。 公共应用篇 是业务与技术的结合,有单点登录和企 阅读全文
posted @ 2018-10-10 15:58 kaleidoscopic 阅读(9180) 评论(0) 推荐(2) 编辑
摘要:While it's common to use the Java Transaction API and the XA protocol for distributed transactions in Spring, you do have other options. The optimum i 阅读全文
posted @ 2018-10-10 15:46 kaleidoscopic 阅读(387) 评论(0) 推荐(0) 编辑
摘要:前言 Spring 框架核心组件之一是 IOC,IOC 则管理 Bean 的创建和 Bean 之间的依赖注入,对于 Bean 的创建可以通过在 XML 里面使用 <bean/> 标签来配置,对于 Bean 之间的依赖可以使用构造方法注入、Set 方法注入在 XML 里面配置。但是使用这种方式会使 X 阅读全文
posted @ 2018-10-10 15:39 kaleidoscopic 阅读(17438) 评论(1) 推荐(6) 编辑
摘要:一、注解的基本概念和原理及其简单实用 注解(Annotation)提供了一种安全的类似注释的机制,为我们在代码中添加信息提供了一种形式化得方法,使我们可以在稍后某个时刻方便的使用这些数据(通过解析注解来使用这些数据),用来将任何的信息或者元数据与程序元素(类、方法、 成员变量等)进行关联。其实就是更 阅读全文
posted @ 2018-10-10 14:41 kaleidoscopic 阅读(522) 评论(0) 推荐(0) 编辑
摘要:1、什么是 Spring 框架?Spring 框架有哪些主要模块?Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring 框架本身亦是按照设计模式精心打造, 阅读全文
posted @ 2018-10-10 14:30 kaleidoscopic 阅读(312) 评论(0) 推荐(0) 编辑
摘要:数据结构 队列 集合 链表、数组 字典、关联数组 栈 树 二叉树 完全二叉树 平衡二叉树 二叉查找树(BST) 红黑树 B,B+,B*树 LSM 树 BitSet 常用算法 排序、查找算法 选择排序 冒泡排序 插入排序 快速排序 归并排序 希尔排序 堆排序 计数排序 桶排序 基数排序 二分查找 Ja 阅读全文
posted @ 2018-10-10 11:48 kaleidoscopic 阅读(2278) 评论(0) 推荐(1) 编辑
摘要:经典互联网公司技术架构 经典互联网技术架构 国内互联网公司技术架构 微信/腾讯技术架构 淘宝/阿里巴巴技术架构 美团点评技术架构 国内互联网公司开源项目 腾讯开源项目 阿里巴巴开源项目 美团点评开源项目 百度开源项目 奇虎360开源项目 经典互联网公司技术架构 经典互联网技术架构 国内互联网公司技术 阅读全文
posted @ 2018-10-10 11:46 kaleidoscopic 阅读(1090) 评论(0) 推荐(0) 编辑
摘要:数据结构与算法 算法 数据结构与算法分析 编程珠玑 剑指 Offer 操作系统 现代操作系统 深入理解计算机系统 鸟哥的 Linux 私房菜 Unix 环境高级编程 Unix/Linux 编程实践教程 Operating Systems: Three Easy Pieces (OSTEP) 计算机网 阅读全文
posted @ 2018-10-10 11:42 kaleidoscopic 阅读(384) 评论(0) 推荐(0) 编辑
摘要:ⅠⅡⅢⅣⅤⅥⅦⅧⅨ 算法 操作系统 网络 面向对象 数据库 Java 系统设计 工具 编码实践 算法 剑指 Offer 题解 目录根据原书第二版进行编排,代码和原书有所不同,尽量比原书更简洁。 Leetcode 题解 对题目做了一个大致分类,并对每种题型的解题思路做了总结。 算法 排序、并查集、栈和 阅读全文
posted @ 2018-10-10 11:38 kaleidoscopic 阅读(821) 评论(0) 推荐(0) 编辑
摘要:前言 HSF是一个分布式的远程服务调用框架,其实我更喜欢把分布式几个字去掉,因为HSF本身并不是一个单独的服务(指一个进程),他是附属在你的应用里的一个组件,一个RPC组件(远程过程调用——Remote Procedure Call,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术 阅读全文
posted @ 2018-10-10 11:26 kaleidoscopic 阅读(795) 评论(0) 推荐(0) 编辑
摘要:前言 在谈论数据库架构和数据库优化的时候,我们经常会听到“分库分表”、“分片”、“Sharding”…这样的关键词。让人感到高兴的是,这些朋友所服务的公司业务量正在(或者即将面临)高速增长,技术方面也面临着一些挑战。 让人感到担忧的是,他们系统真的就需要“分库分表”了吗?“分库分表”有那么容易实践吗 阅读全文
posted @ 2018-10-10 11:08 kaleidoscopic 阅读(892) 评论(0) 推荐(0) 编辑
摘要:一、概述 在 iOS 开发中,MVC(Model View Controller)是构建iOS App的标准模式,是苹果推荐的一个用来组织代码的权威范式。Apple甚至是这么说的。在MVC下,所有的对象被归类为一个Model,一个View,和一个Controller。Model持有数据,View显示 阅读全文
posted @ 2018-10-10 10:56 kaleidoscopic 阅读(409) 评论(0) 推荐(0) 编辑
摘要:在Java平台,基于Spring等技术的MVC框架已经走向成熟;在.NET平台,微软也推出了MVC、MVP Framework,MVP不同于MVC的地方,关键在于,View不再显示的依赖于Business Logic Controller,而是依赖于一个业务逻辑抽象接口,关注于View的解藕。所以区 阅读全文
posted @ 2018-10-10 10:42 kaleidoscopic 阅读(2191) 评论(0) 推荐(0) 编辑
摘要:<!-- flowchart 箭头图标 勿删 --> 一、前言 做客户端开发、前端开发对MVC、MVP、MVVM这些名词不了解也应该大致听过,都是为了解决图形界面应用程序复杂性管理问题而产生的应用架构模式。网上很多文章关于这方面的讨论比较杂乱,各种MV*模式之间的区别分不清,甚至有些描述都是错误的。 阅读全文
posted @ 2018-10-10 10:34 kaleidoscopic 阅读(450) 评论(0) 推荐(0) 编辑
摘要:<!-- Start PSA Section --> <!-- P&S box is temporary disabled(IFQ_OPS-2624) --> <!-- End PSA Section --> 分片技术的由来 关系型数据库本身比较容易成为系统性能瓶颈,单机存储容量、连接数、处理能力等 阅读全文
posted @ 2018-10-09 22:02 kaleidoscopic 阅读(916) 评论(0) 推荐(0) 编辑
摘要:题目: 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。链表结点定义如下: 思路: 为了正确地反转一个链表,需要调整链表中指针的方向。为了将复杂的过程说清楚,这里借助于下面的这张图片。 上面的图中所示的链表中,h、i和j是3个相邻的结点。假设经过若干操作,我们已经把h结点之前 阅读全文
posted @ 2018-10-09 21:55 kaleidoscopic 阅读(212) 评论(0) 推荐(0) 编辑
摘要:Kafka剖析(一):Kafka背景及架构介绍 Kafka设计解析(二):Kafka High Availability (上) Kafka设计解析(三):Kafka High Availability (下) Kafka设计解析(四):Kafka Consumer解析 Kafka设计解析(五):K 阅读全文
posted @ 2018-10-09 21:43 kaleidoscopic 阅读(294) 评论(0) 推荐(0) 编辑
摘要:Kafka作为当下流行的高并发消息中间件,大量用于数据采集,实时处理等场景,我们在享受他的高并发,高可靠时,还是不得不面对可能存在的问题,最常见的就是丢包,重发问题。 1、丢包问题:消息推送服务,每天早上,手机上各终端都会给用户推送消息,这时候流量剧增,可能会出现kafka发送数据过快,导致服务器网 阅读全文
posted @ 2018-10-09 21:32 kaleidoscopic 阅读(8883) 评论(0) 推荐(1) 编辑
摘要:淘宝TDDL研发历史和背景 分布式关系型数据库服务(Distribute Relational Database Service,简称DRDS)是一种水平拆分、可平滑扩缩容、读写分离的在线分布式数据库服务。前身为淘宝TDDL。 淘宝DRDS/TDDL是阿里巴巴自主研发的分布式数据库服务。DRDS脱胎 阅读全文
posted @ 2018-10-09 21:24 kaleidoscopic 阅读(1468) 评论(0) 推荐(0) 编辑
摘要:ZooKeeper FAQ ZooKeeper客户端事件串行化处理 ZooKeeper分布式锁避免羊群效应(Herd Effect) ZooKeeper管理员指南——部署与管理ZooKeeper ZooKeeper运维之使用SnapshotFormatter可视化快照数据 ZooKeeper和Dia 阅读全文
posted @ 2018-10-09 21:21 kaleidoscopic 阅读(314) 评论(0) 推荐(0) 编辑
摘要:阿里RocketMQ是怎样孵化成Apache顶级项目的? RocketMQ 迈入50万TPS消息俱乐部 Apache RocketMQ背后的设计思路与最佳实践 专访RocketMQ联合创始人:项目思路、技术细节和未来规划 万亿级数据洪峰下的分布式消息引擎 十分钟入门RocketMQ RocketMQ 阅读全文
posted @ 2018-10-09 21:14 kaleidoscopic 阅读(302) 评论(0) 推荐(0) 编辑
摘要:Dalston版本 由于Brixton和Camden版本的教程已经停止更新,所以笔者计划在2017年上半年完成Dalston版本的教程编写(原计划完成Camden版本教程,但由于写了两篇Dalston版本就Release了,因此调整计划重新制作)。同时,在该版本的教程中,对于项目组织上会有一些变化, 阅读全文
posted @ 2018-10-09 20:54 kaleidoscopic 阅读(348) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2018-10-09 20:28 kaleidoscopic 阅读(2) 评论(0) 推荐(0) 编辑
摘要:一,TDDL是什么 Taobao Distributed Data Layer,即淘宝分布式数据层,简称TDDL 。它是一套分布式数据访问引擎 淘宝一个基于客户端的数据库中间件产品 基于JDBC规范,没有server,以client-jar的形式存在 Taobao Distributed Data 阅读全文
posted @ 2018-10-08 20:44 kaleidoscopic 阅读(11808) 评论(0) 推荐(1) 编辑
摘要:前言 在开始讲解淘宝的TDDL(Taobao Distribute Data Layer)技术之前,请允许笔者先吐槽一番。首先要开喷的是淘宝的社区支持做的无比的烂,TaoCode开源社区上面,几乎从来都是有人提问,无人响应。再者版本迭代速度也同样差强人意,就目前而言TDDL5.0的版本已经全线开源( 阅读全文
posted @ 2018-10-08 20:23 kaleidoscopic 阅读(2547) 评论(0) 推荐(0) 编辑
摘要:<!-- flowchart 箭头图标 勿删 --> 背景 一般生产环境单机所能承受的QPS压力为2w左右,过大的压力会导致服务器爆炸。即便是单机能够撑住2w QPS,一般也不会这么做,生产环境一般会预留50%的冗余能力,防止QPS因为某个热门的活动而爆炸。当QPS超过单机所能承受的压力时,自然而然 阅读全文
posted @ 2018-10-08 15:20 kaleidoscopic 阅读(3891) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示