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

山行AI

山行AI(原开发架构二三事),后续专注于AI应用领域
专栏作者
291
文章
643499
阅读量
56
订阅数
从头分析flink源码第六篇之ExecutionGraph的生成
上一篇中我们梳理了jobGraph提交过程中taskmanager、jobmanager、resourcemanager各组件的启动流程,本篇我们接着上一篇中的内容来分析一下从jobGraph生成ExecutionGraph的源码执行流程。
山行AI
2021-09-14
6690
从头分析flink源码第五篇之提交jobGraph时各组件内部都发生了什么?
上几篇文章中我们分析了一个flink wordcount任务生成streamGraph和jobGraph的过程。接下来,我们继续从jobGraph生成后开始来分析executionGraph的生成过程及任务的提交过程,本文主要分析任务提交过程中各组件的执行逻辑,如TaskManager、ResourceManager、JobManager等。本文只涉及到本地运行wordcount时各组件的内部运行逻辑分析,不包括其他资源管理模式如yarn或Kubernetes模式下任务的提交流程(后续会专门行文来分析)。文章较长,代码较多,不喜慎入。
山行AI
2021-09-14
1.1K0
从头分析flink源码第三篇之jobGraph的生成
上一篇中我们分析了一个简单的flink wordcount程序由DataStream的transformation列表转换成StreamGraph的过程,紧接着上文的步骤,本文我们着重分析一下从streamGraph生成jobGraph的过程。
山行AI
2021-07-01
1.7K1
hystrix并发不友好?sentinel怎么样?
最近公司压测,业务系统压测效果一直不是很好,细问之下才知道,在业务系统中会调用很多下游服务。为了控制调用下游服务的时间,防止太长的响应时间拖垮应用,他们针对每一个下游应用的调用处都使用hystrix进行线程池隔离来进行保护应用。而在使用时加入了execution.isolation.thread.timeoutInMilliseconds来控制每次请求的超时熔断降级,其主要目的是用于处理系统rpc调用中的慢调用,在rpc调用超时的时候会进入fallback逻辑。这种模式虽然在一定程度上能保护应用,而且能够达到超时快速失败的效果,但是在高并发场景下,稍微慢一些的慢调用多起来之后,整个线程池很快就会打满,对系统产生影响。虽然与本文的重点内容无关,但我还是想先来分析一下hystrix线程池隔离超时熔断降级的原理。
山行AI
2021-04-16
1K0
lettuce和hbase中对netty的使用你都了解吗?
在使用lettuce作为redis连接池时,在上一节中我们知道,lettuce中维护连接有两种使用连接池的方式,目前一种已经废弃,另一种大家正在使用的版本是apache commons pool。咱们来回顾下。
山行AI
2020-07-24
2K0
flink的local模式启动全流程源码分析
这是一个执行WordCount的操作,我们以这个demo为入口来对整个执行流程进行分析记录。
山行AI
2020-05-22
1.9K0
ElasticSearch源码分析之RestClient连接池
从上面的代码示例可以看出RestClient的实例化是依赖于RestClientBuilder的build方法,也就是应用了builder模式。HttpHost实例的构造方法入参为ip和端口。
山行AI
2020-04-22
8K0
php系列一之composer的安装与使用
简单来说,composer 之于 php 相当于 maven 和 gradle 之于 java,npm 之于 nodejs,pip 之于 python,go mod 之于 golang。是 php 中的一款依赖管理的工具。
山行AI
2019-11-20
4.4K0
mysql的一则事务锁的问题Lock wait timeout exceeded.m
出现这个问题感觉还是挺疑惑的,因为测试环境已经稳定运行了几个月的时间,一直没有出现过mysql事务锁的问题,于是开始着手查问题。
山行AI
2019-07-16
3.9K0
nio使用中的java.nio.file.FileSystemNotFoundException分析析
在使用nio加载文件时,在idea中运行没有问题,但打成jar包后在windows和linux下都有问题: public static void main(String[] args) throws Exception{ // SpringApplication.run(MarketCollectApplication.class,args); URI uri = MarketCollectApplication.class.getClassLoader().getReso
山行AI
2019-06-28
4.4K0
关于netty你需要了解的二三事.md
在nio编程中,select和bind可以不按顺序调用,也可以不在同一个线程中。netty中这是在boss线程中做的事情,可能会出现先select再绑定端口的情况。 这样做的好处就是统一化select逻辑,但是因为要支持tcp,udp,sctp等传输协议,每种协议都是不同类型的channel,所以将注册分离开已达到最大的代码重用。所以, select逻辑都在NioEventLoop的run方法里,而不同协议支持的注册和bind端口由不同类型的channel实现。netty在注册的时候先注册了个0,表示不对任何事件感兴趣,在绑定的时候,才又注册了accept事件。 这就是boss线程和worker线程分离开的原因。
山行AI
2019-06-28
1.8K0
hystrix工作原理及源码解析
如果你想返回一个Observable对象则使用HystrixObservableCommand,这里使用的是HystrixCommand:
山行AI
2019-06-28
1.6K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档