自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

guoyunyuhou的专栏

没有过不去的坎 只有过不完的坎

  • 博客(65)
  • 资源 (3)
  • 收藏
  • 关注

原创 Paxos太难懂?五张图读懂Paxos协议

鉴于大多数对Paxos协议的阐述都过于羞涩难懂,便画了下面五张图来阐述一下Paxos的主要流程,在学习下面的图例文章时,必须要对Paxos的基础概念有一些认知;包括但不限于以下概念。1 、先入为主一个参与者必须批准它收到的第一个提案2、多数派一个提案者一定要获得多数参与者的通过才会结束提案3、参与者可重复接受提案一个参与者只要尚未相应过任何编号大于Mn的提案者请求,...

2019-04-24 18:24:33 3881

原创 HiveMQ broker maven项目转化及运行环境搭建

一 安装目标1 实现在本地环境开发和运行hiveMq Server端二 安装软件准备 (仅windows)♦1 JDK 11 hiveMQ broker运行环境目前仅支持jdk11及以上版本;推荐oracle官方版本jdk-11.0.3_windows-x64_bin♦2 gradle hiveMQ的默认构建方式为gradle,本地需要安装gradle环...

2019-06-03 17:34:13 1624 2

原创 最实用的lambda表达式示例,快速掌握java8新特性

package com.caocao.share.box.test.lambda;import com.google.common.collect.Lists;import org.junit.Test;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import ja...

2018-11-28 17:19:00 218

转载 rateLimiter令牌桶限流算法

RateLimiter是guava提供的基于令牌桶算法的实现类,可以非常简单的完成限流特技,并且根据系统的实际情况来调整生成token的速率。通常可应用于抢购限流防止冲垮系统;限制某接口、服务单位时间内的访问量,譬如一些第三方服务会对用户访问量进行限制;限制网速,单位时间内只允许上传下载多少字节等。下面来看一些简单的实践,需要先引入guava的maven依赖。一 有很多任务

2018-01-31 17:19:32 599

转载 三种方式实现分布式锁

方案一:数据库乐观锁乐观锁通常实现基于数据版本(version)的记录机制实现的,比如有一张红包表(t_bonus),有一个字段(left_count)记录礼物的剩余个数,用户每领取一个奖品,对应的left_count减1,在并发的情况下如何要保证left_count不为负数,乐观锁的实现方式为在红包表上添加一个版本号字段(version),默认为0。异常实现流程-- 可能会发生的异常情

2018-01-19 17:00:29 2431

转载 前后端分离的思考与实践

前言为了解决传统Web开发模式带来的各种问题,我们进行了许多尝试,但由于前/后端的物理鸿沟,尝试的方案都大同小异。痛定思痛,今天我们重新思考了“前后端”的定义,引入前端同学都熟悉的NodeJS,试图探索一条全新的前后端分离模式。随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定

2018-01-09 13:45:33 182

转载 ThreadPoolExecutor机制

ThreadPoolExecutor机制 一、概述 1、ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程调度,线程池管理等等服务; 2、Executors方法提供的线程服务,都是通过参数设置来实现不同的线程池机制。 3、先来了解其线程池管理的机制,有助于正确使用,避免错误使用导致严重故障

2017-11-20 13:53:26 219

转载 HashMap源码解读

一、HashMap概述  HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。  值得注意的是HashMap不是线程安全的,如果想要线程安全的HashMap,可以通过Co

2017-11-17 15:22:34 173

转载 Java中的字符串常量池详细介绍

Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid";,另一种就是使用new这种标准的构造对象的方法,如String str = new String("droid");,这两种方式我们在代码编写时都经常使用,尤其是字面量的方式。然而这两种实现其实存在着一些性能和内存占用的差别。这一切都是源于JVM为了减少字符串对象的重复创建,其维护了一个特殊的内存,这

2017-11-13 10:37:57 248

转载 漫谈单点登录

1. 摘要( 注意:请仔细看下摘要,留心此文是否是您的菜,若浪费宝贵时间,深感歉意!!!)SSO这一概念由来已久,网络上对应不同场景的成熟SSO解决方案比比皆是,从简单到复杂,各式各样应有尽有!开源的有OpenSSO、CAS ,微软的AD SSO,及基于kerberos 的SSO等等……这些优秀的解决方案尽显开发及使用者的逼格,当然需求所致无谓好坏高低,满足实际之需才是王道!

2017-11-09 13:36:13 252

转载 探究类加载机制

转载请注明出处:http://blog.csdn.net/ns_code/article/details/17881581类加载过程    类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示:    其中类加载的过程包括了加载、验证、准备、解析、初始化五个

2017-11-08 15:44:01 134

转载 数字证书原理

文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出! 1、基础知识      这部分内容主要解释一些概念和术语,最好是先理

2017-08-21 15:49:35 267

转载 JS中 window.location.search的作用

用该属性获取页面 URL 地址:window.location 对象所包含的属性属性描述hash从井号 (#) 开始的 URL(锚)host主机名和当前 URL 的端口号hostname当前 URL 的主机名href完整的 URLpathn

2017-08-16 18:54:16 284

转载 分布式开放消息系统(RocketMQ)的原理与实践

分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题:消息的顺序问题消息的重复问题RocketMQ作为阿里开源的一款高性能、高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ 有哪些关键特性?其实现原理是怎样的?关键特性以及其实现原理一、顺序消息消息有序指的是可以按照消息

2017-08-08 09:05:22 459

原创 垃圾收集算法分类

一 标记清除算法 mark-sweep标记对象的判定(可达性 gcroots)不足: 1 效率问题2 空间问题 : 标记清除之后会产生大量不连续的内存碎片, 空间碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发垃圾收集动作二 复制算法(copying) 解决效率的问题将可用的内存按容量分为大

2017-08-07 15:10:48 321

转载 浏览器与CDN缓存

前端缓存分为浏览器缓存和cdn缓存 关于是否缓存,是浏览器缓存还是CDN缓存,缓存保留多长时间,由cache-control控制请求:响应:特别说明: Cache-control: public 表示缓存的版本可以被代理服务器或者其他中间服务器识别(浏览器,cdn都能缓存)。Cache-control: private 意味着

2017-08-04 10:17:43 3694

转载 sharding-jdbc整合mybatis

最近忙于项目已经好久几天没写博客了,前2篇文章我给大家介绍了搭建基础springMvc+mybatis的maven工程,这个简单框架已经可以对付一般的小型项目。但是我们实际项目中会碰到很多复杂的场景,比如数据量很大的情况下如何保证性能。今天我就给大家介绍数据库分库分表的优化,本文介绍mybatis结合当当网的sharding-jdbc分库分表技术(原理这里不做介绍)  首先在pom文件中引

2017-08-02 17:48:34 2747

转载 diamond淘宝框架使用

一、概况diamond是淘宝内部使用的一个管理持久配置的系统,它的特点是简单、可靠、易用,目前淘宝内部绝大多数系统的配置,由diamond来进行统一管理。diamond为应用系统提供了获取配置的服务,应用不仅可以在启动时从diamond获取相关的配置,而且可以在运行中对配置数据的变化进行感知并获取变化后的配置数据。持久配置是指配置数据会持久化到磁盘和数据库中。dia

2017-08-02 09:38:28 2248

转载 大规模分布式跟踪系统的理论

概述当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具。Dapper--Google生产环境下的分布式跟踪系统,应运而生。那么我们就来介绍一个大规模集群的

2017-08-01 16:50:14 597

转载 一致性哈希

本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用相关的话题。分布式缓存问题假设我们有一个网站,最近发现随着流量增加,服务器压力越来越大,之前直接读写数据库

2017-07-11 14:42:24 360

转载 解决Mysql读写分离数据延迟

MySQL的主从同步机制非常方便的解决了高并发读的应用需求,给Web方面开发带来了极大的便利。但这种方式有个比较大的缺陷在于MySQL的同步机制是依赖Slave主动向Master发请求来获取数据的,而且由于服务器负载、网络拥堵等方面的原因,Master与Slave 之间的数据同步延迟是完全没有保证的。短在1秒内,长则几秒、几十秒甚至更长都有可能。 由于数据延迟问题的存在,当应用程序在Mas

2017-06-21 15:13:23 2213

原创 volatile与synchronized的区别

volatile主要用在多个线程感知实例变量被更改了场合,从而使得各个线程获得最新的值。它强制线程每次从主内存中讲到变量,而不是从线程的私有内存中读取变量,从而保证了数据的可见性。关于synchronized,可参考:JAVA多线程之Synchronized关键字--对象锁的特点比较:①volatile轻量级,只能修饰变量。synchronized重量级,还可修饰方法②volati

2017-06-20 17:32:48 270

转载 深度解析JVM

每个Java开发者都知道Java字节码是执行在JRE((Java Runtime Environment Java运行时环境)上的。JRE中最重要的部分是Java虚拟机(JVM),JVM负责分析和执行Java字节码。Java开发人员并不需要去关心JVM是如何运行的。在没有深入理解JVM的情况下,许多开发者已经开发出了非常多的优秀的应用以及Java类库。不过,如果你了解JVM的话,你会更加了解Jav

2015-05-04 18:13:01 612

转载 Hadoop常见错误解析

1:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out Answer:程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。修改办法:修改2个文件。       /etc/security/limits.

2015-04-01 10:42:29 3101

原创 Hadoop2.2.0使用笔记总结(一)

1、执行Mapreduce程序卡住安装完毕后执行wordcount程序时,mapreduce任务卡住,注意修改hosts文件,将ip地址映射到主机名2、非root用户对文件是否有读写权限?       dfs.permissions       false 3、eclipse执行mapReduce程序报空指针Eclipse运行mapreduce需要配置hadoop环

2015-03-24 13:55:49 520

原创 2014工作总结

2014年是一个过去,即将迎接的是2015年的挑战,但2014年对我来说,绝对是一个具有重要意义的一年。2014年,接触到了不少的项目,更多的时间是忙碌的,个人感觉在技术和业务上都有显著的提升,也是非常感谢帮助过我的人们,和我一起战斗的同事,谢谢你们,一起加班赶工的日子过的很充实。2014年底已经是离家北漂的第三个年头,也是从事软件开发的第三个年头,互联网技术的更新换代之快,让当初以为只要

2015-02-06 11:14:41 502

原创 hadoop2.20+hive+sqoop+mysql数据处理案例

一、业务说明使用Hadoop2及其他开源框架,对本地的日志文件进行处理,将处理后需要的数据(PV、UV...)重新导入到关系型数据库(Mysql)中,使用Java程序对结果数据进行处理,组织成报表的形式在数据后台进行展示。 二、为什么使用Hadoop(开发动机)现有的日志处理方式,是采用纯的java程序来计算的,对于大数据的日志文件来说,这种方案在处理速度、IO占用、数据备份及资源

2015-02-05 18:24:33 2099 3

转载 Hadoop推测执行(以空间换取时间)

1. 背景Speculative Task,又叫推测式任务,是指在分布式集群环境下,因为程序bug,负载不均衡或者资源分布不均,造成同一个job的多个task运行速度不一致,有的task运行速度明显慢于其他task(比如:一个job的某个task进度只有10%,而其他所有task已经运行完毕),则这些task拖慢了作业的整体执行进度,为了避免这种情况发生,Hadoop会为该task启动sp

2015-01-15 15:59:42 1428

转载 Hadoop机架感知

背景    分布式的集群通常包含非常多的机器,由于受到机架槽位和交换机网口的限制,通常大型的分布式集群都会跨好几个机架,由多个机架上的机器共同组成一个分布式集群。机架内的机器之间的网络速度通常都会高于跨机架机器之间的网络速度,并且机架之间机器的网络通信通常受到上层交换机间网络带宽的限制。    具体到Hadoop集群,由于hadoop的HDFS对数据文件的分布式存放是按照分块blo

2015-01-15 15:10:35 424

转载 Hadoop2.2.0+HA+zookeeper3.4.5详细配置过程+错误处理(二)

Hadoop2.2.0+HA+zookeeper3.4.5详细配置过程+体系结构+错误处理(2)       这篇文章,主要是针对zookeeper和hadoop集群的整体测试,以及自己在实际过程遇到的问题和解决思路。                    如有转载,请注意明出处!        http://blog.csdn.net/yczws1/a

2015-01-04 14:22:46 1360

转载 Hadoop2.2.0+HA+zookeeper3.4.5详细配置过程+错误处理(一)

Hadoop2.2.0+HA+zookeeper3.4.5+体系结构+错误处理        心血之作,在熟悉hadoop2架构的过程耽误了太长时间,在搭建环境过程遇到一些问题,这些问题一直卡在那儿,不得以解决,耽误了时间。最后,千寻万寻,把问题解决,多谢在过程提供帮助的大侠。这篇文章中,我也会把自己遇到的问题给列出来,帮助后来者进一步的学习。       这篇文章结合自己实际测试

2015-01-04 14:20:48 863

原创 Hadoop2异常分析(二):Sqoop导出数据错误

sqoop错误: Error during import: No primary key could be found for table tab1. Please specify one with --split-by or perform a sequential import with '-m 1'.出现这种问题,一般是因为,创建导入的表并没有创建主键,此时要为命令加上额外的参数

2014-12-30 17:39:32 1325

原创 Hadoop2异常分析(一):hdfs移动数据至 hive,为什么原数据没有了?

在向hive表中添加数据的时候,location指定的位置如果是本地文件,则会将本地文件复制一份至表中;但是如果指定location数据在hdfs上面(通常情况下),则只是对数据进行移动,你会发现这个过程非常快;

2014-12-30 17:33:55 1072

原创 Hadoop2调优(一):如何控制job的map任务和reduce任务的数量

在运行MapReduce任务的时候如何避免这种情况!100多个map任务,但是只有1个reduce任务;此时在mapred-site.xml中修改配置mapred.map.tasks10As a rule of thumb, use 10x the number of slaves(i.e., number of tasktrackers).          

2014-12-30 17:28:18 1737

原创 javaWeb Note1

HTML1.HTML: 超文本标记语言,即HTML(Hypertext Markup Language),是用于描述网页文档的一种标记语言 2.最简单的一个html文件的内容应该包括 html开头、head、body是互相嵌套的我的第一个网页                     百度

2013-05-23 16:32:35 1055

原创 基础补充和加强——希望对后来的人有所帮助

银行业务调度系统篇我觉得,总的逻辑是要在main方

2013-04-30 17:50:33 1023

原创 银行业务调度系统笔记

银行业务调度系统1、模拟实现银行业务调度系统逻辑,具体需求如下: Ø  银行内有6个业务窗口,1 -

2013-04-29 22:02:48 682

转载 InvocationHandler的invoke方法如何被调用?

关键问题是它们内在的联系。虽然可以看源代码,包括类库。但是把它们抽象出来,有助于理解。 在客户类(即以下代码的Client类),语句Manager managerProxy =  (Manager) Proxy.newProxyInstance(managerImpl.getClass().getClassLoader(), managerImpl.getClass()

2013-04-25 17:12:47 705

转载 Java正则表达式:我最期望弄懂的知识,希望对大家都有帮助

在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包。  可粗略估计一下,除了偶尔用Linux的外,其他Linu x用户都会遇到正则表达式。正则表达式是个极端强大工具,而且在字符串模式-匹配和字符串模式-替换方面富有弹性。在Unix世界里,正则表达式几乎没有什么限制,可肯定的是,它应用非常之广泛。

2013-04-22 22:27:50 806

原创 Java高新技术笔记:反射、多线程、泛型、枚举、javaBean、代理

(一些地方的空白是由于截图效果)1、IDE: Integrated Development Environment2、集成开发环境两个主流:Eclipse和netBeans3、preference: 偏爱4、Compiler: 编译器;5.Switcha javaspace:

2013-04-16 22:00:58 1296

mqtt&iot;物联云平台技术调研及实现

mqtt协议简介,iot平台的搭建指南,mqtt服务端mosquotto及apollo的服务端实现,基于eclipse pho的客户端实现

2018-09-12

干货!资深java工程师面试要点大全+一年整理.pdf

本人面试五年的经验,涵盖几乎所有java面试要点!成为java资深开发工程师必须掌握的知识点总结

2018-09-11

Hive学习笔记

对Hive的学习过程总结,包括Hive的基本使用,Hive的调优,UDF函数的使用说明!

2015-04-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除