首页
学习
活动
专区
工具
TVP
发布

山行AI

山行AI(原开发架构二三事),后续专注于AI应用领域
专栏作者
291
文章
643608
阅读量
56
订阅数
flink on yarn的一则jar冲突问题,你遇到过没?
近期准备对实时计算平台进行升级,调研阶段使用yarn client手动向yarn集群上提交flink任务时出现了一个小插曲。提交任务时,一直提示失败,来yarn的web控制台发现日志有报错信息,错误如下:
山行AI
2021-08-18
1.5K0
flink源码分析之kafka consumer的执行流程
线上flink任务稳定运行了两个多月了,突然之间收到了消息堆积较多的报警,kafka上看到的现象是消息堆积较多。问过业务人员得知,对应的流表在前一天重新刷了一遍数据,在我们的这个任务中有两次维表关联,而且内层有一个split操作会造成外层维表关联的数据量膨胀(最大可能为80倍,即split之后产生了80条新记录)。开始了问题分析之路。
山行AI
2021-04-29
2.8K0
flink on yarn 模式下提示yarn资源不足问题分析
在实时计算平台上通过YarnClient向yarn上提交flink任务时一直卡在那里,并在client端一直输出如下日志:
山行AI
2020-12-14
7.3K0
lettuce和hbase中对netty的使用你都了解吗?
在使用lettuce作为redis连接池时,在上一节中我们知道,lettuce中维护连接有两种使用连接池的方式,目前一种已经废弃,另一种大家正在使用的版本是apache commons pool。咱们来回顾下。
山行AI
2020-07-24
2K0
spring-data-redis中lettuce pipeline的坑之解决篇
我们先来了解下在spring-data-redis中是如何包装lettuce的连接的,然后会根据这些信息得到上一篇文章中留下的那个问题的解。
山行AI
2020-07-14
5.8K3
lettuce 在spring-data-redis包装后关于pipeline的坑,你知道吗?
在日常开发过程中,如果想要构建一个高并发高吞吐量的系统,redis基本是成了标配。回想下现在比较常用的客户端也就是jedis、redission、lettuce这几种,jedis算是比较老牌的redis client了,redission底层基于netty并以其各种丰富的数据结构和特性而广受欢迎,lettuce则属于后起之秀,底层集成了Project Reactor提供天然的反应式编程,通信框架集成了Netty使用了非阻塞IO,5.x版本之后融合了JDK1.8的异步编程特性,在保证高性能的同时提供了十分丰富易用的API。Jedis客户端实例不是线程安全的,所以需要通过连接池来使用Jedis,Redisson的API是线程安全的,所以可以操作单个Redisson连接来完成各种操作,Lettuce的API也是线程安全的,所以可以操作单个Lettuce连接来完成各种操作。在跑完不同客户端的benchmark后,我选择了使用lettuce来作为整个平台的redis client。
山行AI
2020-07-14
5.1K0
redis Serializer的坑小记
最近入职了新公司,负责实时流平台、特征系统和推荐系统的开发工作。其中特征系统通过流平台将特征指标实时处理供推荐系统使用。其中有一处关于用户是否是当天新注册用户的判断,第一反应当然是bitmap,由于我们当前在用的主要缓存为redis,于是最先采取的选型自然是从redis开始的。
山行AI
2020-06-29
1.2K0
ElasticSearch源码分析之RestClient连接池
从上面的代码示例可以看出RestClient的实例化是依赖于RestClientBuilder的build方法,也就是应用了builder模式。HttpHost实例的构造方法入参为ip和端口。
山行AI
2020-04-22
8K0
AQS源码分析之ReentrantLock
在该方法内部会调用非公平锁java.util.concurrent.locks.ReentrantLock.NonfairSync#tryAcquire和 acquireQueued和addWaiter方法,这些方法会在后面进行分析。
山行AI
2020-03-25
3340
AQS源码分析二之Condition
reentrantLock.newCondition()方法返回的对象类型是ConditionObject类型,ConditionObject是AbstractQueuedSynchronizer的内部类,它对象的创建依赖于外部类的对象,在它里面可以调用外部类中的方法。
山行AI
2020-03-25
5480
AQS源码分析之CyclicBarrier
六个线程都会在await方法处等待,等到六个线程都到位后才会并发往下执行,接下来我们基于源码来分析下其内部实现原理。
山行AI
2020-03-25
3910
AQS源码分析之CountDownLatch
tryAcquireShared方法在调用时只有在state值为0时才会返回1,否则会一直返回-1。
山行AI
2020-03-25
3450
AQS源码分析之ThreadPoolExecutor Worker
它的主要作用是在对worker进行interrupt操作时需要先获取worker的独占锁。
山行AI
2020-03-25
1.6K0
Elasticsearch源码分析七之集群选举流程分析
org.elasticsearch.node.Node#start方法中有ZenDiscovery初始化的部分:
山行AI
2020-03-12
1.1K0
Elasticsearch源码分析三之线程池
我们先来看一看ThreadPool的签名:public class ThreadPool implements Scheduler,ThreadPool实现了Scheduler,我们就来围绕Scheduler和ThreadPool中的方法和属性进行分析。首先来看一个类的结构图:
山行AI
2020-03-11
1.2K0
Elasticsearch源码分析二之Node节点创建与启动流程分析
紧接着昨天的Bootstrap的初始化来进行开篇,对应的是org.elasticsearch.bootstrap.Bootstrap#setup方法,详见代码片段:
山行AI
2020-03-11
1K0
Elasticsearch源码分析六之AllocationDeciders
上面的图为类继承关系图的一部分,下面针对具体的配置进行分析。本文及本系列源码都是针对es的7.5.1版本。Shard Allocation,Shard Move,Shard Rebalance会利用这些Decider,再决定是否进行分片分配,分片迁移,分片均衡等操作。
山行AI
2020-03-10
1.4K0
redis高可用模式比较及一致性hash
Sentinel为Redis提供高可用。利用Sentinel,在无人干预的情况下,可用让Redis服务抵御一定程度的故障。主要发挥以下几个方面的作用:
山行AI
2019-09-09
3.1K0
vue之router文档
查看 dist 目录. 注意,dist 目录下的文件是最新稳定版,不会同步更新到 dev 分支上的最新代码
山行AI
2019-07-25
5.3K0
javascript之Promise对象知识点整理
Promise规范https://promisesaplus.com/中对Promise的状态的定义:
山行AI
2019-07-25
5540
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档