8 liuhuiteng

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 5k+

Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)

应用场景前两天我们已经介绍了两种Spring Cloud Stream对消息失败的处理策略: 自动重试:对于一些因环境原因(如:网络抖动等不稳定因素)引发的问题可以起到比较好的作用,提高消息处理的成功率。 自定义错误处理逻辑:如果业务上,消息处理失败之后有明确的降级逻辑可以弥补的,可以采用这种方式,但是2.0.x版本有Bug,2.1.x版本修复。 那么如果代码本身存在逻辑错误,无论重试多少次都不可能成功,也没有具体的降级业务逻辑,之前在深入思考中讨论过,可以通过日志,或者降级逻辑记录的方式把错误消

2020-08-06 09:15:25

Spring Cloud Stream 使用延迟消息实现定时任务(RabbitMQ)

应用场景我们在使用一些开源调度系统(比如:elastic-job等)的时候,对于任务的执行时间通常都是有规律性的,可能是每隔半小时执行一次,或者每天凌晨一点执行一次。然而实际业务中还存在另外一种定时任务,它可能需要一些触发条件才开始定时,比如:编写博文时候,设置2小时之后发送。对于这些开始时间不确定的定时任务,我们也可以通过Spring Cloud Stream来很好的处理。 为了实现开始时间不确定的定时任务触发,我们将引入延迟消息的使用。RabbitMQ中提供了关于延迟消息的插件,所以本文就来具体介绍

2020-08-06 09:09:50

Spring Cloud Alibaba基础教程:Nacos的集群部署

前情回顾: 《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》 《Spring Cloud Alibaba基础教程:支持的几种服务消费方式》 《Spring Cloud Alibaba基础教程:使用Nacos作为配置中心》 《Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解》 《Spring Cloud Alibaba基础教程:Nacos配置的多环境管理》 《Spring Cloud Alibaba基础教程:Nacos配

2020-08-06 09:04:15

Nacos部署中的一些常见问题汇总

开个帖子,汇总一下读者经常提到的一些问题 问题一:Ubuntu下启动Nacos报错问题描述 使用命令sh startup.sh -m standalone启动报错: ./startup.sh: 78: ./startup.sh: [[: not found./startup.sh: 88: ./startup.sh: [[: not found./startup.sh: 90: ./startup.sh: [[: not found./startup.sh: 96: ./startup.s...

2020-08-06 08:58:39

基于Flume的美团日志收集系统(一)架构和设计

背景 美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流。美团的日志收集系统基于Flume设计和搭建而成。 《基于Flume的美团日志收集系统》将分两部分给读者呈现美团日志收集系统的架构设计和实战经验。 第一部分架构和设计,将主要着眼于日志收集系统整体的架构设计,以及为什么要做这样的设计。 第二部分改进和优化,将主要着眼于实际部署和使用过程中遇到的问题,对Flume做的功能修改和优化等。 1 日志收集系统简介 日志收集是大数据的..

2020-08-06 08:53:05

CentOS6上Hadoop集群中服务器cpu sys态异常的定位与解决

问题现象 在zabbix系统中,对Hadoop集群的历史监控数据分析时,发现在执行大Job任务时,某些服务节点的cpu sys态很高; 具体以hadoop_A服务节点为例,在10:15-10:40这个时间段,cpu user态为60%,而sys态则高达35%; 对于整个Hadoop集群,并不是所有的节点都会出现sys过高的问题,产生此类问题的都是部署CentOS6系统的节点。 定位分析 1. 根据zabbix系统中cpu sys很高的问题发生时间,找到触发问题的大Job,以便于后面的问题重..

2020-08-06 08:47:30

深入解析String#intern

在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。 8种基本类型的常量池都是系统协调的,String类型的常量池比较特殊。它的主要使用方法有两种: 直接使用双引号声明出来的String对象会直接存储在常量池中。 如果不是用双引号声明的String对象,可以使用String提供的intern方法。intern 方法会从字符串常量池中查询当前字符串是否存在,若不..

2020-08-06 08:36:21

AC算法在美团上单系统的应用

1.背景 在美团,为了保证单子质量,需要对上单系统创建的每一个产品进行审核。为了提高效率,审核人员积累提炼出了一套关键词库,先基于该词库进行自动审核过滤,对于不包括这些关键词的产品信息不再需要进行人工审核。因此,如何在页面中快速的检测是否包含了这些关键词就变得非常重要。 对于上述问题我们描述为如下的形式: 给定关键词集合P={p1,p2,……,pk},在目标串T[1…m]中找到出现了哪些关键词。 很容易想到的方法就是针对每个单词去匹配一遍,最后总结出都哪些单词匹配成功。 考虑KMP算法,单个关..

2020-08-06 08:19:37

OpenTSDB 造成 Hbase 整点压力过大问题的排查和解决

业务背景 OpenTSDB 是一款非常适合存储海量时间序列数据的开源软件,使用 HBase 作为存储让它变的非常容易扩展。我们在建设美团性能监控平台的过程中,每天需要处理数以亿计的数据,经过几番探索和调研,最终选取了 OpenTSDB 作为数据存储层的重要组件。OpenTSDB 的安装和配置过程都比较简单,但是在实际的业务应用中,还是会出现这样那样的问题,本文详细介绍我们在OpenTSDB 实际使用过程中遇到的 HBase 整点压力过大的问题,期望对大家有些参考意义。 问题的出现 性能监控平台使用..

2020-08-06 08:14:02

Docker系列之二:基于容器的自动构建

自动构建系统是从美团的自动部署系统发展出来的一个新功能。每当开发人员提交代码到仓库后,系统会自动根据开发人员定制的构建配置,启动新的Docker容器,在其中对源代码进行构建(build),包括编译(如Java、C++和Go)、预处理(如Javascript和CSS)、压缩(如图片)等操作,生成最终需要上线的程序包。 美团的代码发布系统有中央控制节点,负责代码的拉取、应用的构建和上传等任务。随着业务的迅速增长,应用发布项的数目和单个发布项的服务器数量也随之增长,中控节点的任务加重,几个问题也变得亟待解决..

2020-08-05 10:55:25

Mock Server实践

背景 在美团服务端测试中,被测服务通常依赖于一系列的外部模块,被测服务与外部模块间通过REST API或是Thrift调用来进行通信。要对被测服务进行系统测试,一般做法是,部署好所有外部依赖模块,由被测服务直接调用。然而有时被调用模块尚未开发完成,或者调用返回不好构造,这将影响被测系统的测试进度。为此我们需要开发桩模块,用来模拟被调用模块的行为。最简单的方式是,对于每个外部模块依赖,都创建一套桩模块。然而这样的话,桩模块服务将非常零散,不便于管理。Mock Server为解决这些问题而生,其提供配..

2020-08-05 10:49:53

使用模板快速编写测试用例

在高速发展的互联网公司,由于产品的开发迭代太快,产品测试经常遇到以下几个问题: 1. 如何在快速的产品开发迭代中迅速地完成对产品功能的测试? 2. 面对用户众多、环境多样,如何尽可能地测试全面? 3. 公司扩张迅速、新人多、经验不足,如何使新人迅速上手进而独当一面? 下面介绍一种使用模板来设计测试用例的方法,这个模板包含产品测试需要覆盖的主要方面,每个方面都有使用说明,有经验的QA使用模板可以避免遗漏,新人可以借助此模板的引导,快速掌握创建测试用例的系统方法。 测试用例模板和说明如下: ..

2020-08-05 10:44:17

Node.js Stream - 实战篇

前面两篇(基础篇和进阶篇)主要介绍流的基本用法和原理,本篇从应用的角度,介绍如何使用管道进行程序设计,主要内容包括: 管道的概念 Browserify的管道设计 Gulp的管道设计 两种管道设计模式比较 实例 所谓“管道”,指的是通过a.pipe(b)的形式连接起来的多个Stream对象的组合。 假如现在有两个Transform:bold和red,分别可将文本流中某些关键字加粗和飘红。 可以按下面的方式对文本同时加粗和飘红: // source: 输入流// dest: 输出目..

2020-08-05 10:16:18

美团数据库运维自动化系统构建之路

本文整理自美团点评技术沙龙第10期:数据库技术架构与实践。 美团点评技术沙龙由美团点评技术团队主办,每月一期。每期沙龙邀请美团点评及其它互联网公司的技术专家分享来自一线的实践经验,覆盖各主要技术领域。 目前沙龙会分别在北京、上海和厦门等地举行,要参加下一次最新沙龙活动?赶快关注微信公众号“美团点评技术团队”。 本次沙龙主要围绕数据库相关的主题,内容包括美团数据库自动化运维系统构建、点评侧MySQL自动化服务平台RDS、美团数据库中间件、和小米高级DBA带来的Redis Cluster的大规模运维实..

2020-08-05 10:11:00

大众点评订单系统分库分表实践

原大众点评的订单单表早就已经突破两百G,由于查询维度较多,即使加了两个从库,优化索引,仍然存在很多查询不理想的情况。去年大量抢购活动的开展,使数据库达到瓶颈,应用只能通过限速、异步队列等对其进行保护;业务需求层出不穷,原有的订单模型很难满足业务需求,但是基于原订单表的DDL又非常吃力,无法达到业务要求。随着这些问题越来越突出,订单数据库的切分就愈发急迫了。 这次切分,我们的目标是未来十年内不需要担心订单容量的问题。 先对订单库进行垂直切分,将原有的订单库分为基础订单库、订单流程库等,本文就不展开讲了..

2020-08-05 09:31:43

MGW——美团点评高性能四层负载均衡

本文整理自美团点评技术沙龙第14期:美团背后的故事-你不知道的美团云。 美团点评技术沙龙由美团点评技术团队主办,每月一期。每期沙龙邀请美团点评及其他互联网公司的技术专家分享来自一线的实践经验,覆盖各主要技术领域。 目前沙龙会分别在北京、上海和厦门等地举行,要参加下一次最新沙龙活动?赶快关注微信公众号“美团点评技术团队”。 本期沙龙包括三场讲座:美团云Docker平台、美团云对象存储系统、美团四层负载均衡网关MGW。其他几场讲座的图文实录会陆续发表,请继续关注。 在高速发展的移动互联网时代,负载均..

2020-08-05 09:03:54

业务赋能利器之外卖特征档案

应用背景及现状 美团外卖业务自2013年9月启动至今已运营三年时间。截至2016年12月,美团点评整个外卖平台的日订单超过900万。从发展速度和体量上看,外卖业务仍处在迅猛发展的上升期。与早期飞速增长的状态相比,随着规模的不断扩大,业务的发展需要更健康、高效,这就对业务对象、业务环节的整体业务运营管理提出更高的要求。 特征档案平台向各业务提供了用户/商户筛选和档案管理服务,同时提供了数据查询、存储、生成、导出等数据管理功能,能够提高运营工作效率。当前用户特征档案平台覆盖全部的外卖用户,有特征标签近2..

2020-08-05 08:35:50

美团点评移动网络优化实践

本文根据第16期美团点评技术沙龙“移动开发实践(上海站)”演讲内容整理而成。 第18期沙龙:高可用系统背后的基础架构(3月25日)火热来袭!快快点击报名吧。 网络优化对于App产品的用户体验至关重要,与公司的运营和营收息息相关。这里列举两个公开的数据: “页面加载超过3秒,57%的用户会离开。” “Amazon页面加载延长1秒,一年就会减少16亿美金营收。” 在做网络优化前,我们首先要为网络通信质量设立一个标尺。 在美团点评,监控团队开发了基于端到端的客户端监控平台。这里要先解释一下“端到端..

2020-08-05 08:30:23

Android OOM案例分析

在Android(Java)开发中,基本都会遇到java.lang.OutOfMemoryError(本文简称OOM),这种错误解决起来相对于一般的Exception或者Error都要难一些,主要是由于错误产生的root cause不是很显而易见。由于没有办法能够直接拿到用户的内存dump文件,如果错误发生在线上的版本,分析起来就会更加困难。本文从一个具体的案例切入,介绍OOM分析的思路及相关工具的使用。 案例背景 在美团App 7.4~7.7版本期间,美食业务的OOM数量居高不下,远高于历史水平,..

2020-08-05 08:13:31

从0到1:构建强大且易用的规则引擎

引言 2016年07月恰逢美团点评的业务进入“下半场”,需要我们在各个环节优化体验、提升效率、降低成本。技术团队需要怎么做来适应这个变化?这个问题直接影响着之后的工作思路。 美团外卖的CRM业务步入成熟期,规则类需求几乎撑起了这个业务所有需求的半边天。一方面规则唯一不变的是“多变”,另一方面开发团队对“规则开发”的感受是乏味、疲惫和缺乏技术含量。如何解决规则开发的效率问题,最大化解放开发团队成为目前的一个KPI。 规则引擎作为常见的维护策略规则的框架很快进入我的思路。它能将业务决策逻辑从系统逻辑中..

2020-08-04 09:31:16

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。