单环境,多分支并行开发方案(流量染色/istio)
需求 同一套环境, 两个微服务serviceA和serviceB, 且分别有2个版本original, v1 调用链路: serviceA -> serviceB 具体分为以下几种情况 如果serviceA和serviceB都有v1版本 serviceA(v1) -> serviceB(v1) 如果serviceA有v1版本, serviceB没有 serviceA(v1) -> serviceB(original) 如果serviceA没有v1版本, 而serviceB没有 serviceA(original) -> serviceB(v1) 技术方案流量染色 什么是流量染色 在元数据中心(这里可以代指我们的k8s集群),维护每个环境对应的服务列表;在流量的入口处,对请求添加标识;在基础框架层,对流量标识进行解析、透传 和 服务路由。 实际操作一般是在我们的 HTTP...
gRPC配置参数使用记录
参考: 参数配置 service_config 重试
ab压测工具使用
Apache Benchmark(简称ab) 是Apache安装包中自带的压力测试工具 ,简单易用 安装(centos)123yum -y install httpd-toolsorapt -y install apache2-utils ab参数说明1234567891011121314151617181920212223242526272829303132333435363738394041424344454647-n:一个要执行的次数。默认为1。【-n和-c一般成对出现。eg[-c 10 -n 1000]:同时处理10个请求,每组运行(1000/10)次,必须满足n能整除c】-c:单次发出的并发请求数。默认为1。【-n和-c一般成对出现。eg[-c 10 -n 1000]:同时处理10个请求,每组运行(1000/10)次,必须满足n能整除c】-t:测试所进行的最大秒数。用于测试的最大秒数是50000【等价于-n 50000】,它可以使对服务器的测试限制在一个固定的总时间以内。-p postfile:File containing data to POST....
学习nacos - 注册中心,配置中心
Nacos是SpringCloudAlibaba的组件,而SpringCloudAlibaba也遵循SpringCloud中定义的服务注册、服务发现规范。因此使用Nacos和使用Eureka对于微服务来说,并没有太大区别。 主要差异在于: 依赖不同 服务地址不同 注册中心pom 1234567<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.2.6.RELEASE</version> <type>pom</type> <scope>import</scope></dependency> 1234<dependency> ...
关于DataRowException, internal schema representation is probably ...异常的调试记录
异常:DataRowException, internal schema representation is probably out of sync with real database schema 123456789起初异常信息打印的不全, 但是浑然不知,后来在打印信息里发现flink并没有打印出应该打印的日志,然后去查了下,是缺少依赖包包加上<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.25</version> <!-- 注意,若无type为jar则报错--> <type>jar</type></dependency> 全部异常信息 1234567891011121314151617181920212223242526272829303132333435ERROR...
记录flink + docker, 部署jar,执行任务程序
首先安装flink,这里以1.13.1举例(docker安装的话,jobmanager和taskmanager需要分开部署)flink-docker-github-repository (这个参数flink文档中没找到)关于query.server.port: 6125不用去管,这个不填也会默认自动生成: 12yml中的内容不说了, 下面贴几张关于Flink生产配置最佳实践的图, 钉钉公开课趣头条实时平台负责人分享https://www.bilibili.com/video/BV1iE411r7S6 Flink在yarn上运行,每个TaskManager的slot个数怎么设置?经验公式:slot个数tm个数=并行度并行度=kafka的分区个数(10分区)slot的个数要小于yarn设置的单个container最大可以申请的cpu核数(5个 8-36个)。那么就是...
Kettle是什么
kettle中文网 免费开源的基于java的企业级ETL工具ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少,这里我介绍一个我在工作中使用了3年左右的ETL工具Kettle,本着好东西不独享的想法,跟大家分享碰撞交流一下!在使用中我感觉这个工具真的很强大,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,其中最主要的我们通过熟练的应用它,减少了非常多的研发工作量,提高了我们的工作效率
job和trans的参数详解
pan调用示例 sh pan.sh -rep=initech_pdi_repo -user=pgibbons -pass=lumburghsux -trans=TPS_reports_2011 -param:db_ip=$db_ip -param:db_name=$db_name 参数 参数说明 rep 企业或数据库存储库名称 user 仓库用户名 pass 仓库密码 trans 要启动的转换的名称(在存储库中显示) dir 包含转换的存储库目录,包括前导斜杠 file 如果调用的是本地 KTR 文件,则为文件名,如果不在本地目录中,则包括路径 level 日志级别(基本、详细、调试、行级别、错误、无) logfile 将日志输出写入的本地文件名 listdir 列出指定存储库中的目录 listtrans 列出指定存储库目录中的转换 listrep 列出可用的存储库 exprep 将所有存储库对象导出到一个 XML 文件 norep 防止 Pan 登录到存储库。如果您已经设置了...
一些开发中需要注意的问题点
注意点1234567891011121314151617181920212223242526272829303132333435361. 过滤记录或者字段选择等组件, 无法出现上面步骤中的字段的时候,尝试在上面步骤中再次点击确定2. 两个数据流join前必须先进行排序操作。3. 数据流从计算器或join操作流出,并将流入另一join操作之前,需要插入一个字段选择插件。4. 表输入插件中,填写查询语句时,语句末尾不能加分号。~~ kettle8.2以上无此问题5. sql脚本插件中,填写sql语句时,语句末尾必须加分号,否则不会执行。~~ kettle8.2以上无此问题6. 引用变量时,采用${变量名}的方式引用,以免出现问题。此种引用方式还可以在变量内容后接其他字符串,例如:${key}_20151217会被解析为:value_2015217。7. job中执行多个trans时,如何确定trans执行的先后顺序?根据连接线的先后顺序执行,如果需要优先执行则先连接从开始到该trans的连线即可。8....
关于记录集合里面的记录数
记录集合里面的记录数 该数量是指组件与组件之间通信的【缓存队列】的size大小,Kettle内部用List实现该缓存队列,每一条语句都会被封装成一个 RowSet对象,每个组件之间都会有个List<RowSet>队列,源step每次会往该队列写一条数据,目标step每次会从队列读取一条数据。 kettle里面转换是并行的,数据是一条一条流经每个组件,队列大小采用默认的10000条即可。 但是当使用到【阻塞数据直至步骤完成】、【阻塞数据】相关组件时,则需要根据业务数据量扩大该size的大小。 否则,数据会一直在某两个组件之间的缓存队列中存放,当数量达到一定大小时,就会卡主不动。 缓存队列的大小对作业没有影响,查看源码发现,缓存队列由inputRowSet 和 outputRowset组成,底部实现是ArrayList,初始化创建的时候,默认容量为10,并不会直接创建设定长度的 数组。并且使用ArrayList的特性:当要添加的数据量超过数组的容量时候,ArrayList会动态扩容,size扩大1.5倍