摘要:
一、前言 注解(Annotation),实际上和属性、方法一样,都是一个类的组成部分,不过对于初学者来说还是有点陌生的,因为注解是给别人用的,而属性和方法都是自己用的,这就导致没有对注解进行深入的学习,而在使用别人框架的时候,才被迫去了解框架提供的注解的使用方法。 注解的形式都是以@开头,在微博微信 阅读全文
摘要:
可以毫不夸张的说,HashMap是容器类中用的最频繁的一个,而Java也对它进行优化,在jdk1.7及以前,当将相同Hash值的对象以key的身份放到HashMap中,HashMap的性能将由O(1)下降到O(N),所以jdk1.8将相同Hash值的key以红黑树的形式进行存储。 一、简单理解 1. 阅读全文
摘要:
在学习上一个类TreeMap的时候,提到了这个类,这个类是jdk1.7新增的,里面有很多实用的方法。就是一个工具类,熟悉以后,如果里面有已经实现的方法,那么就不要再去实现了,省时省力省测试。 一、简单理解 这是一个工具类,介绍相对会简单些,基本都是方法的介绍。 1.1 类名的命名 Objects是一 阅读全文
摘要:
这是看过的第一个jdk源码(从立下目标以来):TreeMap。说实话断断续续的看了有好几天了,我觉得我犯了一个错误,就像一开始说的那样,我打算完完全全看懂TreeMap关于红黑树的实现方式,后来我想了想,相对于花费这个对我的收益并不是特别大,而且看的过程中也有很多困惑,虽然我知道它每一步在做什么,但 阅读全文
摘要:
最近在阅读《Java编程思想》的时候看到了书中对异常的描述,结合自己阅读源码经历,谈谈自己对异常的理解。首先记住下面两句话: 除非你能解决(或必须要处理)这个异常,否则不要捕获它,如果打算记录错误消息,那么别忘了把它再抛出去。 异常既代表一种错误,又可以代表一个消息。 一、为什么会有异常 这个问题其 阅读全文
摘要:
一、Kibana简介及下载安装 Kibana是专门用来为ElasticSearch设计开发的,可以提供数据查询,数据可视化等功能。 下载地址为:https://www.elastic.co/downloads/kibana#ga-release,请选择适合当前es版本的Kibana。 本教程使用Ki 阅读全文
摘要:
最近线上的系统被检测出有错误日志,领导让我检查下问题,我就顺便了解了下这个异常。 了解一个类,当然是先去看他的API,EOFException的API如下: 通过这个API,我们可以得出以下信息: 这是一个IO异常的子类,名字也是END OF FILE的缩写,当然也表示流的末尾 它在表明一个信息,流 阅读全文
摘要:
Socket是Java网络编程的基础,了解还是有好处的, 这篇文章主要讲解Socket的基础编程。Socket用在哪呢,主要用在进程间,网络间通信。本篇比较长,特别做了个目录: 一、Socket通信基本示例 二、消息通信优化 2.1 双向通信,发送消息并接受消息 2.2 使用场景 2.3 如何告知对 阅读全文
摘要:
T C P是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。 RST:复位连接,将连接重置,一般用在异常关闭 发送第一个S Y N的一端将执行主动打开(active open),另一端执行被动打开( passive open), 建立连接超时,经测试为,1,2,4 阅读全文
摘要:
以下只在特殊情况下使用,不要用在生产环境。 一、问题背景 公司的产品使用Zookeeper做为集群支持,但是客户在验收的时候提出了一个很为难人的要求,那就是3台集群服务,停止2台以后,还要求我们的应用能提供服务,这就有点难为人了。 因为用过Zookeeper的人都知道,Zookeeper的leade 阅读全文
摘要:
这是发生在我身上的一个bug,困扰了我三天,已经让我多次怀疑人生。因为我这个工作是数据准备阶段,后续还有一系列工作需要依赖我这些初始数据,压力很大,感谢某人在这个时候给我的鼓励,虽然只是寥寥几句。这件事记起来仅为日后提醒自己不再犯相同的错误。 一、问题经过 简单来说,我做的是一个数据同步任务,将数据 阅读全文
摘要:
追求极致才能突破极限 一、案例背景 1.1 系统简介 首先看一下系统架构,方便解释: 页面给用户展示的功能就是,可以查看任何一台机器的某些属性(以下简称系统信息)。 消息流程是,页面发起请求查看指定机器的系统信息到后台,后台可以查询到有哪些server在提供服务,根据负载均衡算法(简单的轮询)指定由 阅读全文
摘要:
今天帮同事解决了一个问题,记录一下,帮助有需要的人。 一、问题解决经过 事情的经过是这样的,下午我在敲代码的时候,一个同事悄悄走到我身边,问我有没有用没用过Oracle,这下我蒙了,难道我在他们眼中这么弱吗?不过我还是弱弱的问了一句咋了,他说碰到一个奇怪的现象,说他用jdbc查询Oracle,然后循 阅读全文
摘要:
Redis 持久化提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。 AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 阅读全文
摘要:
Redis的单机搭建,主从搭建,Sentinal搭建,以及Redis集群搭建的步骤参照前面的文章。现在来说一下Redis的基本运维,毕竟如果一切正常是最好的,但是当出现问题不能使用的时候,准确定位问题,并解决才是最重要的。 一、配置文件 Redis的配置文件的注释还是很详细的,下面也把它贴出来: # 阅读全文
摘要:
一般情况下,使用主从模式加Sentinal监控就可以满足基本需求了,但是当数据量过大一个主机放不下的时候,就需要对数据进行分区,将key按照一定的规则进行计算,并将key对应的value分配到指定的Redis实例上,这样的模式简称Redis集群。 Redis分区也称作Redis分片,或者Redis集 阅读全文
摘要:
主从模式的弊端就是不具备高可用性,当master挂掉以后,Redis将不能再对外提供写入操作,因此sentinel应运而生。 Redis Sentinel是Redis官方提供的集群管理工具,主要有三大功能: Redis Sentinel是一个分布式系统,可以部署多个Sentinel实例来监控同一组R 阅读全文
摘要:
不管任何程序,只运行一个实例都是不可靠的,一旦因为网络原因导致所在机器不可达,或者所在服务器挂掉,那么这个程序将不能对外提供服务了,Redis也是一样的。不过Redis的主从并不是解决这个问题的,一些对Redis主从的理解,见这篇博客:http://www.cnblogs.com/yiwangzhi 阅读全文
摘要:
项目中用到Redis,所以准备学习一下,感觉Redis的概念还是很多的,什么主从模式、sentinel模式、集群模式的,一下子都晕了,我觉得还是有必要先理清这些基本概念再说。 一、单节点实例 单节点实例还是比较简单的,平时做个测试,写个小程序如果需要用到缓存的话,启动一个Redis还是很轻松的,做为 阅读全文
摘要:
一、Redis基础知识 1.1 Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能, 阅读全文