自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

沉潜飞动

人非生而知之者,孰能无惑?惑而不从师,其为惑也,终不解矣。

原创 JVM参数优化(基础篇)

文中内容主要是自己关于JVM参数优化的一些总结,参考了网上很多大神的文章,有参数有说明,这里是为了记录下,也是为了可以给别人做个垫脚石。刚入坑不久,很多地方还不是很透彻,之后会继续研究。

2017-06-30 11:27:55

阅读数 6147

评论数 0

原创 storm笔记:Trident状态

Trident中有对状态数据进行读取和写入操作的一流抽象工具。状态既可以保存在拓扑内部,比如保存在内容中并由HDFS存储,也可以通过外部存储(比如Memcached或Cassandra)存储在数据库中。而对于Trident的API而言,这两种机制没有任何区别。Trident以容错的方式管理状态,以...

2017-06-09 22:58:47

阅读数 2971

评论数 0

原创 JDK 工具一览

Java 坑如此大,需要慢慢填。本文是列出JDK自带的一些工具,介于篇幅,简单列出工具列表及工具的作用。至少先做到知道有哪些工具,然后才能在实际中用到。

2017-04-26 15:57:23

阅读数 1508

评论数 0

原创 storm笔记:Trident应用

Trident是基于Storm的实时计算模型的高级抽象。它可以实现高吞吐(每秒数百万条消息)的有状态流处理和低延迟分布式查询。如果以前使用过高级批处理工具(比如Pig或Cascading),则对Trident的概念会非常熟悉,比如连接、聚合、分组、功能处理和过滤等。除此之外,Trident还增加了...

2017-04-01 14:35:02

阅读数 3570

评论数 0

原创 解决方案之任务队列

在一些系统中,会有对某些任务状态进行跟踪,如果任务失败需要重新执行任务。本文主要是针对这种请求提出解决方案,因为时间原因,方案还没有在代码中实现。但是经过和朋友的推演,是目前能想到的比较有效的方案了。鉴于本人才疏学浅,如果有某位大神有更好的解决方案,请一定不吝赐教,感谢不尽。。。

2016-08-14 20:32:13

阅读数 7336

评论数 0

原创 storm笔记:storm集群

Strom集群结构是有一个主节点(nimbus)和多个工作节点(supervisor)组成的主从结构,主节点通过配置静态指定(还有一种主从结构是在运行时动态选举,比如zookeeper)。通常这种主从结构存在出现单点故障的风险,Storm通过特殊处理规避这种风险,后面将解释Storm的半容错结构。

2016-01-25 10:17:35

阅读数 6758

评论数 0

原创 storm笔记:storm基本概念

本文主要介绍storm中的基本概念,从基础上了解strom的体系结构,便于后续编程过程中作为基础指导。主要的概念包括:topology(拓扑)、stream(数据流)、spout(水龙头、数据源)、bolt(螺栓,数据筛选处理)、stream group(数据流分组)、reliability(可靠...

2016-01-21 14:53:37

阅读数 3974

评论数 2

原创 storm笔记:Storm+Kafka简单应用

这几天工作需要使用storm+kafka,基本场景是应用出现错误,发送日志到kafka的某个topic,storm订阅该topic,然后进行后续处理。场景非常简单,但是在学习过程中,遇到一个奇怪的异常情况:使用KafkaSpout读取topic数据时,没有向ZK写offset数据,致使每次都从头开...

2016-01-21 09:51:29

阅读数 14402

评论数 5

原创 HTTP状态码总结

众所周知,每一个HTTP响应都会带有一个HTTP状态码(HTTP Status Code),是用来表示HTTP服务器响应状态的代码。它由RFC 2616规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。作为web开发者,平时经常2...

2016-01-07 16:46:13

阅读数 3096

评论数 2

翻译 编程的乐趣与苦恼

职业的乐趣 编程为什么有趣?作为回报,它的从业者期望得到什么样的快乐?   首先是一种创建事物的纯粹快乐。如同小孩在玩泥巴时感到愉快一样,成年人喜欢创建事物,特别是自己进行设计。我想这种快乐是上帝创造世界的折射,一种呈现在每片独特、崭新的树叶和雪花上的喜悦。   其次,快乐来自于开发对其他人有用...

2014-06-21 08:55:12

阅读数 6172

评论数 4

原创 设计模式:建造者模式

之前说过了单例模式,这周突然想说说建造者模式,另外一个比较常用的创建型设计模式。 维基百科解释是:建造者模式,又名生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。 每种设计模式的出现,都是为了解决一些编...

2020-03-22 23:21:16

阅读数 13

评论数 0

原创 从单体架构到微服务架构

微服务的优势众多,在现在如果有谁没有听过微服务架构,可以从这里了解一下。本文主要聊一聊是否值得花时间将单体架构重构为微服务架构? 微服务架构是一种架构风格,专注于软件研发效能,主要包括单位时间内实现更多功能,或者软件从想法到上线的整个持续交付的过程。在当前的互联网环境中,业务变化迅速,也促使了微...

2020-03-22 23:06:51

阅读数 21

评论数 0

原创 别让非理性思维毁了你的人生

本文是盖瑞·马库斯的《怪诞脑科学:战胜焦虑、混乱、拖延的自控术》一书读后感,借用作者给出的13条建议,结合自己的理解分享给大家。

2020-02-23 22:45:59

阅读数 307

评论数 0

原创 实现DevOps的三步工作法

实现DevOps的三步工作法:流动原则、反馈原则、持续学习与实验原则。

2020-02-09 23:23:07

阅读数 181

评论数 0

原创 微服务中服务注册和发现的可行性方案

在 微服务的基建工作 中提到过,在云原生、微服务时代,如果还是手动修改服务地址,是几乎不可完成的工作,需要一种机制完成自动上报和获取服务地址的支撑组件,可以保障服务的快速上线和下线,这就是服务注册/发现组件。 为了表述方便,从系统规模定义几个阶段: - 巨型应用架构时期:很多应用都是一个巨型服...

2020-01-29 17:36:51

阅读数 193

评论数 0

原创 Java中的单例模式(完整篇)

个人认为单例模式是设计模式中最简单也是最常用的一种,是对有限资源合理利用的一种方式。这个模式看似简单,但是其中蕴含了关于并发、类加载、序列化等一系列深层次的知识,如果理解不够深,就有可能在高并发时遇到难以预期的异常,或者会造成资源浪费。

2020-01-25 19:22:35

阅读数 23

评论数 0

原创 微服务的基建工作

微服务的出现是为了研发效能的提升:相同的人数可以处理更多的需求、维护更多的产品,可以更快的交付产品。基于这点,微服务的基础组件,就从解放人力,减少人为失误出发。

2020-01-05 18:11:33

阅读数 45

评论数 0

原创 什么是微服务?

什么是微服务?我所理解的微服务,就六个字:“高内聚,低耦合”。没错,就是这个在软件开发过程中被反复提到的六个字,各类设计模式、架构设计、从入门到放弃等各种书中总会提到,从初级到高级到骨灰级程序员、架构师挂在嘴边的也是这六个字。只不过,在微服务概念之前,这六个字被用在类、模块、组件上,微服务则是将它...

2020-01-01 18:51:40

阅读数 26

评论数 0

原创 并发与并行 同步或异步

并发与并行 我们都知道,程序猿是一种逻辑性极强的生物,他们不擅言辞,不擅表达,但是他们能够用一种神秘的语言与机器进行沟通,知道怎么让机器听他们的。机器是线性思维,为了能够更高效的与机器沟通,程序猿主动或被动或潜移默化的转变思维模式,思维逐渐变得线性。最直观的表现就是,程序猿一次只能做一件事情,如果...

2019-12-31 18:53:44

阅读数 24

评论数 0

原创 深入理解Java虚拟机:JVM高级特性与最佳实践(第2版) 读后感

写这篇读后感的缘由是这本书的第三版即将面世了,先拜谢周教授,相信很多人得益于周教授的这本书。 14年入手的第二版,当时准备跳槽,需要理论知识武装一下。于是囫囵吞枣的扫了第一遍,就两个字,不懂,那种感觉就仿佛身在雾中,一切都看不通透,感觉浑身不舒服,想来是自己水平太渣了。 那个时间点是在工作2年,加...

2019-12-12 11:31:22

阅读数 74

评论数 0

原创 微服务编程范式

目前很多互联网公司都采用微服务架构,微服务的优点和缺点被反复说到,这里不在重复赘述,只结合工作中的一些实践,说说要用微服务要注意的点,厚颜写做编程范式,其实就是一些技巧而已。

2019-11-09 19:52:08

阅读数 59

评论数 0

翻译 程序员什么时候该考虑辞职

经常有程序员在讨论要不要辞职,以及现在辞职是不是一个明智之举。这是很严肃的话题,因为这个决定会对程序员的职业生涯和生活产生非常深远的影响。很多人想要辞职但是因为怕被贴上“爱跳槽”的标签而裹足不前。从我观察的结果来看,很多程序员趋向于为了所谓的“声誉”而呆在老公司,但是在后期将两者相比较,“呆在老公...

2019-11-09 15:11:12

阅读数 31

评论数 0

原创 瞎说八道之更换手机的成本

现在手机越来越便宜,换手机是比较常见的一件事,所以各大厂商为了降低更换手机的成本,也是各种手段费尽心思:一键换机、云账号。。。但是这些方式都建立在一个基础上,就是同品牌手机才能用。如果是跨品牌换机,那真是要经历九九八十一难,百转千回才能顺利使用新机。像我这种懒人,可能还要在很长一段时间继续使用旧手...

2019-11-09 14:46:56

阅读数 53

评论数 0

原创 源码安装NGINX

本文主要记录一次从源码安装Nginx过程,参考的是Nginx官网。

2019-11-09 14:39:00

阅读数 33

评论数 0

原创 蓝绿部署、金丝雀发布(灰度发布)、AB测试

随着微服务架构的普及,线上服务越来越多,随之而来的就是部署越来越频繁;随着互联网行业的兴旺,产品迭代的频率也是越来越快,服务上线速度逐步提升。有上线、有部署,就有风险。有风险,就对业务有影响,然后就有了一系列减少这种风险的部署方案:蓝绿部署、金丝雀发布(灰度发布),也有适应产品迭代频率的AB测试。

2019-10-26 17:10:02

阅读数 121

评论数 0

原创 spring-cloud-config 非对称加密 keystore 文件加载异常

因为配置内容可能涉及到某些敏感信息,所以可以简单的在Spring Cloud Config中使用非对称加密实现敏感信息的安全存储。但是在使用过程中,却碰到一些奇葩的问题,无论是官方文档还是一些大神的博文,都没有明确解决。当然,这个问题的出现与我的配置有关,很多人可能并没有碰到。这里把问题描述下,万...

2017-10-12 16:16:19

阅读数 6022

评论数 1

原创 代码质量管理:SonarQube + Jenkins Pipeline配置

本文主要是介绍通过Jenkins Pipeline与SonarQube集成,对代码进行扫描,这里使用的是Jenkins2.19.1,SonarQube6.4。

2017-09-13 15:53:25

阅读数 6243

评论数 5

原创 java.lang.OutOfMemoryError:GC overhead limit exceeded

简单来说,java.lang.OutOfMemoryError: GC overhead limit exceeded发生的原因是,当前已经没有可用内存,经过多次GC之后仍然没能有效释放内存。

2017-09-11 16:36:20

阅读数 24807

评论数 0

原创 中文字节长度引起的数据丢失

最近在写一个应用监控的项目,使用netty作为数据传输。因为刚开始写,没有使用Protobuf之类的作为编码工具,只是使用的是netty自带的`LengthFieldBasedFrameDecoder`作为报文解析工具,自定义编码解码类,实现数据传输。 在对中文进行转换字节的时候一定要注意,千万不...

2017-08-30 16:18:07

阅读数 668

评论数 0

原创 ResourceManager HA 配置

ResourceManager(RM)负责跟踪集群中资源使用情况,调度应用程序(比如MapReduce作业)。在Hadoop 2.4之前,ResourceManager存在单点故障,需要通过其他方式实现HA。官方给出的HA方案是Active/Standby两种状态ResourceManager的冗...

2017-07-11 16:31:38

阅读数 3102

评论数 0

原创 YARN 架构

YARN的基本思想是将资源管理和作业调度/监控的功能分为独立的守护进程。这样就出现了一个全局的 ResourceManager(RM) 和每个应用程序的 ApplicationMaster(AM)。应用程序可以是一个job作业或者一组job作业的有向无环图(DAG)。ResourceManager...

2017-07-11 09:23:45

阅读数 2370

评论数 0

原创 使用 QJM 实现 HDFS 的 HA

hadoop官方提供了两种HDFS的HA配置方案,两种方案殊途同归,但是需要的钱、精力和技术不同。如果对HDFS架构熟悉的话,就应该知道,NameNode通过FsImage和EditLog两个文件管理DataNode的数据,Secondary NameNode会定期合并EditLog,以减少Nam...

2017-07-10 11:12:12

阅读数 1047

评论数 2

原创 HDFS 架构

Hadoop文件存储的基础是HDFS(Hadoop Distributed File System),HDFS的实现依赖于NameNode和DataNode,DataNode用来存储具体数据,NameNode用来管理多个DataNode中分别存储的是什么。理解起来也不难,因为HDFS是分布式的文件...

2017-07-05 17:05:11

阅读数 1834

评论数 0

原创 常用消息队列对比

作为中间件,消息队列是分布式应用间交换信息的重要组件。消息队列可驻留在内存或磁盘上, 队列可以存储消息直到它们被应用程序读走。通过消息队列,应用程序可以在不知道彼此位置的情况下独立处理消息,或者在处理消息前不需要等待接收此消息。所以消息队列可以解决应用解耦、异步消息、流量削锋等问题,是实现高性能、...

2017-03-08 17:00:56

阅读数 25267

评论数 10

原创 HTTP长连接和短连接

一直听别人说HTTP长连接,只知道长连接比短连接更节省资源、更快捷,但是并不真的知道原因。知其然不知其所以然,对于技术来说,这种状态是比较危险的。所以,还是要挖一下原理,即使挖的比较浅,也要迈出这一步。HTTP是应用层协议,传输层使用的是TCP协议,网络层使用的是IP协议。

2017-03-01 22:47:11

阅读数 720

评论数 0

原创 Zookeeper客户端错误:Packet len* is out of range!

这是一个生产环境使用zookeeper异常的情况,错误是java.io.IOException: Packet len8854970 is out of range!。

2017-03-01 11:36:04

阅读数 11236

评论数 6

原创 RabbitMQ运维

这是一次比较苦逼的运维,完全不熟悉的系统、不清楚环境、不清楚配置,两眼一抹黑。为啥?就是因为原来的负责人撤了、交接人休假、再次交接人也休假,再再次交接人只有一份不全的文档。而我是再、再、再次交接人,连文档也没有。更要命的是,这是生产环境,大家都懂得,生产环境就是不能出问题,自封一个“奉命于危难之间...

2016-07-31 02:18:03

阅读数 3842

评论数 0

转载 微服务架构下的数据一致性:可靠事件模式

在《微服务架构下的数据一致性:概念及相关模式》中介绍了在微服务中实现数据一致性的三种方式,包括可靠事件模式、业务补偿模式、TCC模式。本文重点说一下可靠事件投递。 1. 可靠事件模式可靠事件模式属于事件驱动架构,微服务完成操作后向消息代理发布事件,关联的微服务从消息代理订阅到该事件从而完成相应的业

2016-07-16 16:04:44

阅读数 10848

评论数 3

转载 微服务架构下的数据一致性:概念及相关模式

从2014年开始,微服务逐渐进入大家的实现,被认为是下一代实现信息化的有效手段。设计到系统,其中绕不开的就是数据一致性,从本地事务,到后来的分布式事务,都能够有效的保证数据一致性。但是在微服务架构中,这两种方式都不是最好的选择。1. 使用本地事务和分布式事务保证一致性在传统的单击应用中,最简单、最...

2016-07-09 17:23:29

阅读数 13529

评论数 2

原创 初始化Ubuntu工作环境

去年6月份开始使用Ubuntu 14.04 LTS,当时是在公司电脑上装的,因为是第一次搭建工作环境,很多东西不是很随心意。终于等到16.04 LTS版发布,就重装系统,公司的那个老爷本也不用了。 ubuntu desktop是一个很简单的桌面系统,比较适合菜鸟级的使用,学习曲线比较平缓。本文主...

2016-05-19 17:52:16

阅读数 5348

评论数 0

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