自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手把手教你实现通俗易懂Netty 实现自定义协议!

关于协议,使用最为广泛的是HTTP协议,但是在一些服务交互领域,其使用则相对较少,主要原因有三方面:HTTP协议会携带诸如header和cookie等信息,其本身对字节的利用率也较低,这使得HTTP协议比较臃肿,在承载相同信息的情况下,HTTP协议将需要发送更多的数据包;HTTP协议是基于TCP的短连接,其在每次请求和响应的时候都需要进行三次握手和四次挥手,由于服务的交互设计一般都要求能够承载高并发的请求,因而HTTP协议这种频繁的握手和挥手动作会极大的影响服务之间交互的效率;...

2020-05-30 18:19:16 374 2

原创 指数退避算法

今天简单跟大家聊下指数退避算法(Exponential Backoff ),关于指数避退算法的话题开始前首先向大家抛出几个问题:指数退避算法是什么呢?为什么要用指数退避算法呢?指数退避算法的应用场景有哪些呢?代码如何实现呢?带着这些疑问诸君且向下看。指数退避算法到底是什么呢?wiki上有这么一段解释:"Exponential backoff is an algorithm that uses feedback to multiplicatively decrease the rate of some p

2020-05-29 17:54:24 4716 2

原创 值得收藏RabbitMQ 的可复用可扩展的分布式事务消息架构完美方案

前提分布式事务是微服务实践中一个比较棘手的问题,在笔者所实施的微服务实践方案中,都采用了折中或者规避强一致性的方案。参考Ebay多年前提出的本地消息表方案,基于RabbitMQ和MySQL(JDBC)做了轻量级的封装,实现了低入侵性的事务消息模块。本文的内容就是详细分析整个方案的设计思路和实施。环境依赖如下: JDK1.8+ spring-boot-start-web:2.x.x spring-boot-start-jdbc:2.x.x spring-boot-sta

2020-05-29 17:11:54 259

原创 通彻的了解 Redis 6.0 的客户端缓存!

近日 Redis 6.0.0 GA 版本发布 ,包括了客户端缓存 (Client side caching)、ACL、Threaded I/O 和 Redis Cluster Proxy 等诸多更新。我们今天就依次聊一下客户端缓存的必要性、具体使用、原理分析和实现。为什么需要客户端缓存?我们都知道,使用 Redis 进行数据的缓存的主要目的是减少对 MySQL 等数据库的访问,提供更快的访问速度,Redis 的性能大致是普通关系型数据库的 10 ~ 100 倍。所以,如下图所示,Redis

2020-05-27 16:22:30 139

转载 剖析Elasticsearch的IndexSorting:一种查询性能优化利器厉害我的哥哥

因为IndexSorting是在ES6.0之后才作为实验性的功能加入,相关的介绍资料还比较少,所以大部分人对它不够了解。另一方面是,想要理解它为什么能够优化性能、适合哪些场景、内部如何实现、有何副作用等,也需要花一翻功夫。所以本文专门对IndexSorting进行一个介绍,并分析它的作用、实现、适用场景等。如果你的场景能用上IndexSorting,那么它肯定会给你带来一个巨大的性能提升!什么是IndexSorting?IndexSorting是ES的新功能在Elasticsearch中,Ind

2020-05-27 16:09:10 308

原创 JVM性能调优监控工具强悍版

现实企业级Java应用开发、维护中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 ...... 这些问题在日常开发、维护中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解决这些问题是Java程序员进阶的必备要求。本文将对一些常用的JVM性能调优监控工具...

2020-05-25 19:17:24 140

原创 设计模式在Spring中的运用

.简单工厂(非23种设计模式中的一种)实现方式:BeanFactory。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。实质:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。实现原理:bean容器的启动阶段: 读取bean的xml配置文件,将bean元素分别转换成一个BeanDefinition对象。 然后通过BeanDefinition

2020-05-23 11:25:35 133

原创 延时队列的6中说法,最后一种技术含量高哟

一口气说出 6种 延时队列的实现方法,面试官也得服原创程序员内点事程序员内点事1周前五一期间原计划是写两篇文章,看一本技术类书籍,结果这五天由于自律性过于差,禁不住各种诱惑,我连电脑都没打开过,计划完美宣告失败。所以在这能看出和大佬之间的差距,人家没白没夜的更文,比你优秀的人比你更努力,难以望其项背,真是让我自愧不如。知耻而后勇,这不逼着自己又学起来了,个人比较喜欢一些实践类的东西,既学习到知识又能让技术落地,能搞出个demo最好,本来不知道该分享什么主题,好在最近项目紧急招人中,而我有幸...

2020-05-20 16:54:57 214

原创 Hive的数据倾斜和解决方法

在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀的分配到各个reduce中,就是解决数据倾斜的根本所在。规避错误来更好的运行比解决错误更高效。在查看了一些资...

2020-05-14 17:05:34 127

原创 Hive之基本进阶操作

hive------------------ 在hadoop处理结构化数据的数据仓库。 不是: 关系数据库 不是OLTP 实时查询和行级更新。hive特点----------------- hive存储数据结构(schema)在数据库中,处理的数据进入hdfs. OLAP HQL / HiveQLhive安装----------------- 1.下载hive2.1-tar.gz 2.tar开 .

2020-05-14 16:30:31 183

原创 常见 MySQL 的慢查询优化方式!

慢查询日志概念MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记.

2020-05-13 20:37:58 127

原创 如何实时监控 Flink 集群和作业?

Flink 相关的组件和作业的稳定性通常是比较关键的,所以得需要对它们进行监控,如果有异常,则需要及时告警通知。本章先会教会教会大家如何利用现有 Flink UI 上面的信息去发现和排查问题,会指明一些比较重要和我们非常关心的指标,通过这些指标我们能够立马定位到问题的根本原因。接着笔者会教大家如何去利用现有的 Metrics Reporter 去构建一个 Flink 的监控系统,它可以收集到所有作业的监控指标,并会存储这些监控指标数据,最后还会有一个监控大盘做数据可视化,通过这个大盘可以方便排查问题。实

2020-05-11 17:18:55 1475

原创 JAVA 线上故障排查完整套路!牛掰!

线上故障主要会包括 CPU、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如 jstack、jmap 等工具也是不囿于一个方面的问题的,基本上出问题就是 df、free、top 三连,然后依次 jstack、jmap 伺候,具体问题具体分析即可。CPU一般来讲我们首先会排查 CPU 方面的问题。CPU 异常往往还是比较好定位的。原因包括业务逻辑问题(死循环)、频繁 gc 以及上下文切换过多。而最常见的往往是业务逻辑(或者框架逻辑)导

2020-05-11 17:17:45 225

原创 18.Flink之Flink Connector

如何正确使用 Flink Connector?Posted by董亭亭2019年9月03日董亭亭快手 实时计算引擎团队负责人董亭亭,快手大数据架构实时计算引擎团队负责人。目前负责Flink引擎在快手内的研发、应用以及周边子系统建设。2013年毕业于大连理工大学,曾就职于奇虎360、58集团。主要研究领域包括:分布式计算、调度系统、分布式存储等系统。本文主要分享 Fl...

2020-05-09 15:25:48 371

原创 17.Flink之详解 Metrics 原理与实战

Apache Flink 进阶教程(八):详解 Metrics 原理与实战2019年12月17日作者 | 刘彪整理 | 毛鹤本文由 Apache Flink Contributor 刘彪分享,本文对两大问题进行了详细的介绍,即什么是 Metrics、如何使用 Metrics,并对 Metrics 监控实战进行解释说明。什么是 Metrics?Flink 提供的 Metric...

2020-05-09 15:24:56 393

原创 16.Flink之网络流控及反压剖析

Apache Flink 进阶教程(七):网络流控及反压剖析2019年12月17日作者 | 张俊整理 | 张友亮(Apache Flink 社区志愿者)本文根据 Apache Flink 系列直播整理而成,由 Apache Flink Contributor、OPPO 大数据平台研发负责人张俊老师分享。主要内容如下: 网络流控的概念与背景 TCP的流控机制 ...

2020-05-09 15:24:04 222

原创 RPC 的超时设置,一不小心就是线上事故!

上面这张监控图,对于服务端的研发同学来说再熟悉不过了。在日常的系统维护中,『服务超时』应该属于监控报警最多的一类问题。尤其在微服务架构下,一次请求可能要经过一条很长的链路,跨多个服务调用后才能返回结果。当服务超时发生时,研发同学往往要抽丝剥茧般去分析自身系统的性能以及依赖服务的性能,这也是为什么服务超时相对于服务出错和服务调用量异常更难调查的原因。这篇文章将通过...

2020-05-06 11:36:37 160

原创 Apache Flink在滴滴的应用与实践

Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态计算。可部署在各种集群环境,对各种大小的数据规模进行快速计算。滴滴基于 Apache Flink 做了大量的优化,也增加了更多的功能,比如扩展 DDL、内置消息格式解析、扩展 UDX 等,使得 Flink 能够在滴滴的业务场景中发挥更大的作用主要内容包括: 服务...

2020-05-06 10:22:56 214

原创 14.Flink之数据类型和序列化五星

Apache Flink 进阶教程(五):数据类型和序列化2019年12月13日作者 | 马庆祥整理 | 毛鹤本文根据 Apache Flink 系列直播整理而成,由 Apache Flink Contributor、360 数据开发高级工程师马庆祥老师分享。文章主要从如何为 Flink 量身定制的序列化框架、Flink 序列化的最佳实践、Flink 通信层的序列化以及问答环节四部...

2020-05-02 21:03:42 196

原创 15.Flink之Flink 作业执行深度解析

Apache Flink 进阶教程(六):Flink 作业执行深度解析2019年12月13日作者 | 岳猛整理 | 毛鹤本文根据 Apache Flink 系列直播课程整理而成,由 Apache Flink Contributor、网易云音乐实时计算平台研发工程师岳猛分享。主要分享内容为 Flink Job 执行作业的流程,文章将从两个方面进行分享:一是如何从 Program 到物...

2020-05-02 20:36:20 252

空空如也

空空如也

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

TA关注的人

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