自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 微服务架构下的监控需要注意哪些方面?

微服务架构在带来灵活性、扩展性、伸缩性以及高可用性等优点的同时,其复杂性也给运维工作中最重要的监控环节带来了很大的挑战,从用户的角度看,微服务架构下的监控应该注意哪些方面?微服务架构虽然诞生的时间并不长,却因为适应现今互联网的高速发展和敏捷、DevOps 等文化而受到很多企业的推崇。微服务架构在带来灵活性、扩展性、伸缩性以及高可用性等优点的同时,其复杂性也给运维工作中最重要的监控环节带来了很大...

2018-12-30 11:04:29 180

原创 像调试java一样来调试Redis lua

高并发的系统中,redis的使用是非常频繁的,而lua脚本则更是锦上添花。因为lua脚本本身执行的时候是一个事务性的操作,不会掺杂其他外部的命令,所以很多关键的系统节点都会用redis+lua来实现一致性的操作请求。但是在实际开发过程中,由于redis lua脚本调试难的问题,导致大量的时间耗费在了这上面。如果有什么方案能够让我们像利用IDEA调试java一样简便去调试redis lua脚本,那该...

2018-12-29 11:10:50 331

原创 JVM之ParNew和CMS日志分析

今天这篇文章主要是对生产环境中(Java7)常用的两种垃圾收集器(ParNew:年轻代,CMS:老年代)从日志信息上进行分析,做一下总结,这样当我们在排查相应的问题时,看到 GC 的日志信息,不会再那么陌生,能清楚地知道这些日志是什么意思,GC 线程当前处在哪个阶段,正在做什么事情等。ParNew 收集器ParNew 收集器是年轻代常用的垃圾收集器,它采用的是复制算法,youngGC 时一...

2018-12-28 11:17:51 292

原创 下一代的微服务架构基础是ServiceMesh?

今年,ServiceMesh(服务网格) 概念在社区里头非常火,有人提出 2018 年是 ServiceMesh 年,还有人提出 ServiceMesh 是下一代的微服务架构基础。作为架构师,如果你现在还不了解 ServiceMesh 的话,是否感觉有点落伍了?那么到底什么是 ServiceMesh?它的诞生是为了解决什么问题?企业是否适合引入 ServiceMesh?通过这篇文章,将为你一一...

2018-12-27 16:54:16 226

原创 比Hive快800倍!大数据实时分析领域黑马开源ClickHouse

一. 概述随着物联网 IOT 时代的来临,IOT 设备感知和报警存储的数据越来越大,有用的价值数据需要数据分析师去分析。大数据分析成了非常重要的环节。当然近两年开启的开源大潮,为大数据分析工程师提供了十分富余的工具。但这同时也增加了开发者选择合适的工具的难度,尤其对于新入行的开发者来说。学习成本,框架的多样化和复杂度成了很大的难题。例如 Kafka,Hdfs,Spark,Hive 等等组合才能...

2018-12-27 12:36:11 889

原创 优秀Java程序员应该了解的GC工作原理

一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率 ,才能提高整个应用程序的性能。一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效...

2018-12-26 11:12:09 175

原创 常被问到的十个 Java 面试题

在这篇文章中,我试图收录最有趣和最常见的问题。此外,我将为您提供正确的答案。接下来,就让我们来看看这些问题。 1. 以满分十分来评估自己——你有多擅长 Java?如果你并不完全确信你自己或是你对 Java 的熟练程度,那么这会是一个非常棘手的问题。如果有这种情况,你应该把打分调低一点。之后,你大概会得到与你承认的水平相符的问题。因此,假如你给自己满分,却不能回答一个有点难的问题,那...

2018-12-25 11:00:22 124

原创 利用Docker容器的不安全部署获取宿主机权限

前言滥用容器( container)及逃逸的方法有多种,本文将讨论最基本的一种,即滥用docker socket来逃逸容器并在宿主机上以root身份执行代码。实验环境设置由于我们将使用容器,因此你必须安装docker。创建网络首先,我们在创建容器的地方创建一个docker网络:docker network create pwnage启动易受攻击的容器在本示例中...

2018-12-24 11:04:27 587 1

原创 清清楚楚地搭建MongoDB数据库(以搭建4.0.4版本的副本集为例)

数据的目录文件层次设计 我们一般采用多实例的方式,而不是将所有的数据库尽可能地放在一个实例中。主要基于以下考虑:1:不同业务线对应的数据库放在不同的实例上,部分操作的运维时间容易协调等到。2:相互独立,减少相互干扰。不会因为某个业务的激增或某个开发Team的代码问题,拖累太多的数据库。3:实例资源容易控制,例如内存等。从上图可以知道,mongo二进制文件是多个实例公...

2018-12-22 14:23:36 881

原创 玩转不同业务场景,这些RabbitMQ特性会是得力助

我是在解决分布式事务的一致性问题时了解到的RabbitMQ,当时主要是要基于RabbitMQ来实现我们分布式系统之间对有事务可靠性要求的系统间通信。 提到RabbitMQ,不难想到的几个关键字:消息中间件、消息队列。当时在大学学习操作系统这门课,消息队列不难想到生产者消费者模式。(PS:操作系统这门课程真的很好也很重要,其中的一些思想在我工作的很长一段时间内给了我很大帮助和启发,给我提...

2018-12-22 11:13:49 315

原创 Java程序员月薪30K和月薪3K差别在哪?

开工作经验,项目经验,学历背景,单从技术点分析,哪些方面可以判断一个java程序员的技术扎实程度,怎样才能知道他值多少月薪?凭啥人家月薪30000,你月薪3000?月薪30K的Java程序员怎样判断一个程序员的技术是否扎实?除了项目实战外,在面试等情况下,最好能给被考核人一台可以上Google的电脑,然后给其一段自己的空间和时间,比如一个人在小会议室里10-20分钟。然后,另接一台显示器,...

2018-12-21 11:37:19 564 1

原创 Java程序员学习Spring Boot,先看看这16条实践总结吧~

Spring Boot是最流行的用于开发微服务的Java框架。在本文主要分享的是在专业开发中使用Spring Boot所采用的最佳实践。这些内容是基于个人经验和一些熟知的Spring Boot专家的文章。在本文中重点介绍Spring Boot特有的实践(大多数时候,也适用于Spring项目)。以下依次列出了最佳实践,排名不分先后。1、使用自定义BOM来维护第三方依赖Spring Boot项目...

2018-12-20 12:20:59 460

原创 科班出身程序员和培训出来的程序员区别在哪?

科班出身只是代表你要从事的职业和你的专业是一致的,代表着你具备了得天独厚的优势,至于是不是优势看你上班好不好学,平时逃课没,上班是认真听还是玩手机。一般而言科班出来的理论性比较强,实践能力稍微差点,毕竟学校主要引导的思路的学习,有些人觉得学校就应该上来实践化的学习和社会接轨,那不就成职业学院了,如果学校都变成了社会了,请问大家心目中是不是还有象牙塔,其实上大学很多时候就是留下一个美好的念想,让自己...

2018-12-19 13:50:24 8751

原创 微服务生命周期的9个任务事项

微服务实施需要明确每一步怎么做,可能存在的问题和解决思路、方法。如果能有相应的经验和理论指导,将会大大有助于我们设计和构建微服务体系。但由于目前大部分人员都是关注微服务开发框架或工具,甚少讨论微服务架构方法论。因此,进行微服务规划,在一个相对较高的层次来探讨、研究微服务的设计和实现显得尤为重要。理论方法论就象灯塔、导航,为我们指明了方向,虽然也会有这样那样的问题,但只要方向对了,就不会南辕北辙,总...

2018-12-18 11:05:59 556

原创 15个Spring的核心注释示例

众所周知,Spring DI和Spring IOC是Spring Framework的核心概念。让我们从org.springframework.beans.factory.annotation和org.springframework.context.annotation包中探索一些Spring核心注解。我们经常将这些称为“Spring核心注解”,我们将在本文中对它们进行讲解。这是所有已知的Spr...

2018-12-17 12:34:10 159

原创 深入理解Java PriorityQueue

ava中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示。本文从Queue接口函数出发,结合生动的图解,深入浅出地分析PriorityQueue每个操作的具体过程和时间复杂度,将让读者建立对PriorityQueue建立清晰而深入的认识。总体介绍前面以Java ArrayDeque为例讲解了Stack和Queue,其实还有一种特殊的队列叫做PriorityQueue,即优...

2018-12-16 18:45:08 147

原创 如何在Rails应用程序中使用Kafka?

背景介绍有那么一段时间,我们的系统需要用到分布式流式处理和消息系统,而 Apache Kafka 似乎成了我们建立业务关键型应用程序的坚实基础。它可用于很多场景下,比如产品更新管道、订单跟踪、实时用户通知、商户账单等。接下来的故事讲述了我们如何将 Kafka 引入到我们的 Rails 单体代码库中,内容包括技术细节、我们面临的挑战以及我们在此过程中所做的技术决策。眼前的挑战第一个问题是 K...

2018-12-16 11:11:03 251

原创 Spring源码探究:容器

结合源码分析 Spring 容器与 SpringMVC 容器之间的关系问题问题描述:项目中发现,自定义切面注解在 Controller 层正常工作,在 Service 层却无法正常工作。为了便于分析,去掉代码中的业务逻辑,只留下场景。自定义注解,打印时间/**Description: 自定义打印时间的注解Created by jiangwang3 on 2018/5/9....

2018-12-14 11:30:44 243

原创 如何优雅的处理异常?SpringBoot全局异常与数据校验

要思考的问题在现在的前后端交互中,通常都规范了接口返回方式,如返回的接口状态(成功|失败)以及要返回的数据在那个字段取,或者说失败了以后提示信息从接口哪里返回,因此,如果想做全局异常,并且异常发生后能准确的返回给前端解析,那么需要异常发生时返回给前端的格式与正常失败场景的格式一致。项目建立利用idea 工具,很容易的搭建一个SpringBoot项目,要引入的maven依赖如下:<g...

2018-12-13 11:23:38 586 1

原创 Java程序员必会的13种热门技能

一个程序员的受欢迎程度,要经过很多个维度的衡量,特整理了招聘人员、CTO、其他高层执行人员认为必须具备的技术,战略和软技能,找出今年最抢手的开发技能,供大家参考:1、Java2016年,开发人员掌握Java总不会错。Java能力是目前为止被高层执行人员和招聘人员誉为最频繁的追捧技能。Java已被证明是当今市场中高度可移植和宝贵的技能。2、大数据大数据相较于去年继续扩大,而且在这几年里也没有...

2018-12-12 11:12:40 197

原创 Flume+Kafka双剑合璧玩转大数据平台日志采集

概述大数据平台每天会产生大量的日志,处理这些日志需要特定的日志系统。一般而言,这些系统需要具有以下特征:构建应用系统和分析系统的桥梁,并将它们之间的关联解耦;支持近实时的在线分析系统和类似于Hadoop之类的离线分析系统;具有高可扩展性。即:当数据量增加时,可以通过增加节点进行水平扩展。为此建议将日志采集分析系统分为如下几个模块:数据采集模块:负责从各节点上实时采集数据,建议选用F...

2018-12-11 10:50:42 316

原创 终极对决!Dubbo 和 Spring Cloud 微服务架构到底孰优孰劣?

微服务架构是互联网很热门的话题,是互联网技术发展的必然结果。它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。虽然微服务架构没有公认的技术标准和规范或者草案,但业界已经有一些很有影响力的开源微服务架构框架提供了微服务的关键思路,例如Dubbo和Spring Cloud。各大互联网公司也有自研的微服务框架,但其模式都于这二者相差不大。微服务主要的优势如下:1...

2018-12-10 14:48:01 656

原创 拜托!面试请不要再问我Spring Cloud底层原理

概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理。实际上,Spring Cloud是一个全家桶式的技术栈,包含了很多组件。本文先从其最核心的几个组件入手,来剖析一...

2018-12-08 15:29:32 204

原创 应该在同一个Kafka主题中放入几种事件类型吗?

采用Apache Kafka等流平台,有个很重要的问题是:将使用哪些主题?特别是,如果要将一堆不同的事件作为消息发布到Kafka,是将它们放在同一主题中,还是将它们拆分为不同的主题?主题最重要的功能是允许使用者指定它想要使用的消息子集。在一个极端情况下,所有数据都放在一个主题中可不是一个好主意,因为这意味着消费者无法选择感兴趣的事件 - 给他们的只会是所有的内容。在另一个极端,拥有数百万个不同的...

2018-12-07 15:01:06 397

原创 历史性难题——如何为Kafka挑选合适的分区数?

如何为Kafka挑选合适的分区数?很多人都为这个问题伤过脑筋。从吞吐量方面考虑,增加合适的分区数可以很大程度上提升整体吞吐量,但是超过对应的阈值之后吞吐量不升反降。如果应用对吞吐量有着一定程度上的要求,建议在投入生产环境之前对同款硬件资源做一个完备的吞吐量相关的测试,以找到合适的分区数阈值期间。在创建完主题之后,虽然我们还是能够增加分区的个数,但是基于key计算的主题需要严谨对待。当生产者向K...

2018-12-07 14:41:21 149

原创 批处理ETL已死,Kafka才是数据处理的未来?

最近的一些数据发展趋势推动了传统的批处理抽取 - 转换 - 加载(ETL)架构发生了巨大的变化:数据平台要在整个企业范围内运行;数据源的类型变得更多;流数据得到了普遍性增长。在 QCon 旧金山 2016 会议上,Neha Narkhede 做了“ETL 已死,而实时流长存”的演讲,并讨论了企业级数据处理领域所面临的挑战。该演讲的核心前提是开源的 Apache Kafka 流处理平台能够提供灵活...

2018-12-06 14:52:55 1110

原创 微服务架构下的监控需要注意哪些方面?

微服务架构在带来灵活性、扩展性、伸缩性以及高可用性等优点的同时,其复杂性也给运维工作中最重要的监控环节带来了很大的挑战,从用户的角度看,微服务架构下的监控应该注意哪些方面?微服务架构虽然诞生的时间并不长,却因为适应现今互联网的高速发展和敏捷、DevOps 等文化而受到很多企业的推崇。微服务架构在带来灵活性、扩展性、伸缩性以及高可用性等优点的同时,其复杂性也给运维工作中最重要的监控环节带来了很大的...

2018-12-05 14:33:35 267

原创 干货 | 微服务化的 10 个设计要点

微服务生态微服务有哪些要点呢?先看下图是 SpringCloud 的整个生态。设计要点一:API 网关在实施微服务的过程中,不免要面临服务的聚合与拆分,当后端服务的拆分相对比较频繁的时候,作为手机 App 来讲,往往需要一个统一的入口,将不同的请求路由到不同的服务,无论后面如何拆分与聚合,对于手机端来讲都是透明的。有了 API 网关以后,简单的数据聚合可以在网关层完成,这样就不用在手机...

2018-12-04 14:39:01 174

原创 实战Kafka ACL机制

1.概述  在Kafka0.9版本之前,Kafka集群时没有安全机制的。Kafka Client应用可以通过连接Zookeeper地址,例如zk1:2181:zk2:2181,zk3:2181等。来获取存储在Zookeeper中的Kafka元数据信息。拿到Kafka Broker地址后,连接到Kafka集群,就可以操作集群上的所有主题了。由于没有权限控制,集群核心的业务主题时存在风险的。2.内...

2018-12-03 14:49:58 1338

原创 Kafka 如何做到 1 秒发布百万条消息

Kafka 是分布式发布-订阅消息系统,是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。现在被广泛地应用于构建实时数据管道和流应用的场景中,具有横向扩展,容错,快等优点,并已经运行在众多大中型公司的生产环境中,成功应用于大数据领域,本文分享一下我所了解的 Kafka。Kafka 高吞吐率性能揭秘Kafka 的第一个突出特定就是“快”,而且是那种变态的“快”...

2018-12-02 14:35:04 508

空空如也

空空如也

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

TA关注的人

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