07 2018 档案
摘要:IP介绍 IP的英文是Internet Protocol的缩写,意思为网络之间互联协议,就是为了计算机网络互相连接进行通信而设计的协议。它规定了计算机在因特网上进行通信时候所应该遵守的规则。 IP地址是指互联网协议地址,IP地址是IP协议提供的一种统一的地址格式,它为互联网上 每一个网络和每一台主机
阅读全文
摘要:什么是负载均衡? 负载均衡(Load Balance)其意思就是将计算任务分摊到多个操作单元上进行执行,以达到最优化资源使用,最大化吞吐,最小响应时间,同时避免系统过载,来共同完成工作任务。利用多台服务器提供单一服务,这种方式叫做服务器农场或者服务器集群。 为什么需要负载均衡 当系统面临大量用户访问
阅读全文
摘要:发布订阅中的角色 1. 发布者(publisher) 2. 订阅者(subscriber) 3. 频道(channel) 消息通信模式 Redis中发布者和订阅者都是客户端,而频道是沟通它们两之间的桥梁。 发布者将信息发布到频道上,订阅者去订阅该频道后就能收到发布者所发布的消息。这个就是类似于生产者
阅读全文
摘要:在应用程序中,经常需要全局唯一的ID作为数据库主键。如何生成全局唯一ID? 首先,需要确定全局唯一ID是整型还是字符串?如果是字符串,那么现有的UUID就完全满足需求,不需要额外的工作。缺点是字符串作为ID占用空间大,索引效率比整型低。 如果采用整型作为ID,那么首先排除掉32位int类型,因为范围
阅读全文
摘要:TOPK算法 TOPK问题是非常经典的处理海量数据的问题。TOPK问题就是给出一堆数,在里面找出最大、最常出现的等一系列问题。 通常情况下,数量级都是千万级别的,数据量特别大,而且内存使用是有限制的,所以肯定不能先排序,然后再遍历取出K个数。 堆排序做TopK算法有如下几个特点: 1、不会改变数据的
阅读全文
摘要:什么是代码审查 代码审查(code review)是一种可以有效帮助提升代码质量的途径,它是对源代码进行系统化的审查,可以找出及修正软件开发初期未发现的错误及可以对代码进行优化指导,目的在于提升代码质量及开发者技术水平。 代码审查的好处 1. 帮助提高代码质量,修正代码错误,让软件产品的问题更少更容
阅读全文
摘要:什么是HDFS? Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS来源于google的GFS的一篇论文,这篇论文发表于2003年,HDFS是GFS的开源实现。提供了高可靠性、高扩展性、高吞吐率的数据存储服务。HDFS是Had
阅读全文
摘要:Java包装类(Wrapper Class) 我们知道java基本数据类型有int、float、double、boolean、char 等。基本数据类型是不具备对象的特性的,比如基本类型不能调用方法、功能简单。为了让基本数据类型也具备对象的特性, Java 为每个基本数据类型都提供了一个包装类,这样
阅读全文
摘要:ZooKeeper介绍 ZooKeeper 是一个开源高可用的分布式协调框架,是Google公司的Chubby的开源实现,基于对 Paxos 算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得 ZooKeeper 解决很多分布式问题。 ZooKeeper官网 : htt
阅读全文
摘要:Redis慢查询介绍 了解Redis慢查询前先看看Redis客户端执行一个命令的生命周期,下图就是Redis查询生命周期流程图。 一.步骤 1. 客户端发送命令。 2. Redis服务端接收到命令,因为Redis是单线程,所以这里是需要排队的。 3. Redis服务端执行命令。 4. Redis服务
阅读全文
摘要:认识异常 异常是导致程序中断的运行的一种指令流,如果不对异常进程正确处理,则会导致程序的中断执行,造成程序不必要的损失。 Java中的异常 在 Java 中一个异常的产生,主要有如下三种原因: Java 内部错误发生异常,Java 虚拟机产生的异常。 编写的程序代码中的错误所产生的异常,例如空指针异
阅读全文
摘要:java是一门面向对象的编程语言,有三大特性封装,继承,多态。 封装 封装概述 利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。 数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节, 只保留一些对外接口使之与外部发生联系。用户无需知道对象内部的细节, 但可以通过
阅读全文
摘要:什么是 REST REST 是 REpresentational State Transfer 的缩写,维基百科上解释是表述性状态传递,是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。REST 是一种基于 Web 标准的软件架构,一种设计风格而不是标准,与技术无关,
阅读全文
摘要:前言 领域驱动设计是一个开放的设计方法体系,目的是对软件所涉及到的领域进行建模,以应对系统规模过大时引起的软件复杂性的问题,本文将介绍领域驱动的相关概念。 一.软件复杂度的根源 1.业务复杂度(软件的规模) 软件的需求决定了系统的规模。当需求呈现线性增长的趋势时,为了实现这些功能,软件规模也会以近似
阅读全文
摘要:广度(BFS)和深度(DFS)优先算法这俩个算法是图论里面非常重要的两个遍历的方法。 下面一个例子迷宫计算,如下图 解释: 所谓广度,就是一层一层的,向下遍历,层层堵截,看下面这幅图,我们如果要是广度优先遍历的话,我们的结果是V1 V2 V3 V4 V5 V6 V7 V8。 广度优先搜索的思想: ①
阅读全文
摘要:Golang调度器 先看看golang调度的由来。 一. 单进程时代不需要调度器 在早期操作系统是单进程的,一个进程拥有整个系统的所有资源,所以也不需要调度器。 但是单进程的操作系统也有明显的缺点: 1. 采用单一的执行流程,计算机只能一个任务一个任务处理。 2. 进程阻塞所造成CPU资源的浪费。
阅读全文