首页
Search
1
Kafka、RocketMQ消息队列总结
990 阅读
2
Flink on Kubernetes 计算和存储分离落地实践
989 阅读
3
Linux免密登陆-ubuntu
914 阅读
4
构建智能灵活的 Ribbon 负载均衡策略
91 阅读
5
Redis集群部署方案
898 阅读
大数据
Flink
后端
Java
笔记
运维
游客
Search
标签搜索
大数据
Flink
离线
实时
Redis
OpenJDK
Java
笔记
JVM
Elasticsearch
GC
Hadoop
Hudi
Flink CDC
K8S
数据湖
TOTC
累计撰写
307
篇文章
累计阅读
104.3万
次
首页
栏目
大数据
Flink
后端
Java
笔记
运维
页面
搜索到
27
篇与
TOTC
的结果
返回首页
2018-07-07
数据同步工具DataX、Sqoop和Canal
DataX无法分布式部署,需要依赖调度系统实现多客户端,可以在传输过程中进行过滤,并且可以统计传输数据的信息,因此在业务场景复杂(表结构变更)更适用,同时对于不同的数据源支持更好,同时不支持自动创建表和分区。支持流量控制,支持运行信息收集,及时跟踪数据同步情况。
2018年07月07日
822 阅读
80 点赞
2018-06-16
Kafka、RocketMQ消息队列总结
Kafka 同一个partition内的消息只能被同一个组中的一个consumer消费,当消费者数量多于partition的数量时,多余的消费者空闲。每个partition为一个目录,partiton命名规则为topic名称+有序序号,每个partion(目录)相当于一个巨型文件被平均分配到多个大小相等segment(段)数据文件中,默认保留7天的数据。Kafka支持以Partition为单位对Message进行冗余备份,每个Replication集合中的Partition都会选出一个唯一的Leader,所有的读写请求都由Leader处理,其他Replicas从Leader处把数据更新同步到本地。Offset:消息在Partition中的编号,编号顺序不跨Partition。消费失败不支持重试,组与组之间的消息是否被消费是相互隔离互不影响的。kafka可以横向扩展,堆积能力强,当你需要进行大量数据的持久化。kafka的ack机制:在kafka发送数据的时候,每次发送消息都会有一个确认反馈机制,确保消息正常的能够被收到。重复消费(已经消费了数据,但是offset没提交),每次消费时更新每个topic+partition位置的offset在内存中,多台服务器集群,offset要做去重处理。消息丢失,producer同步模式(ack)、异步模式(buffer满了不清理),consumer自己手动维护偏移量。{lamp/}RocketMQ Topic分片再切分为若干等分,其中的一份就是一个Queue。一个broker对应一组消息文件commitLog,所有topic的消息都存在commitLog中,consumerqueue保存的是消息在commitLog中的地址 。broker主从(单Master、多Master、Master-Slave(异步复制)、Master-Slave(同步双写))。consumer第一次默认从master节点拉取消息,未消费的数据量占物理内存的比例,当超过40%时,会返回建议的拉取节点id。RocketMQ不保证消息不重复。消息丢失(在各个层都可能发生),producer同步(send不报错)异步(重写回调方法),生产者返回消息状态,开启重试消费。顺序消息,必须Producer单线程顺序发送,且发送到同一个队列,一个queue对应一个consumer,Broker重启,由于队列总数发生变化,哈希取模后定位的队列会变化,产生短暂的消息顺序不一致。RocketMQ可以严格的保证消息有序。但这个顺序,不是全局顺序,只是分区(queue)顺序。要全局顺序只能一个分区,kafka是放同一个topic。一个Queue最多只能分配给一个Consumer。Queue是Topic在一个Broker上的分片等分为指定份数后的其中一份,是负载均衡过程中资源分配的基本单元。{lamp/}消费并行度 Kafka消费并行度和分区数一致;RocketMQ消费并行度分两种情况,顺序消费方式并行度同Kafka完全一致,乱序方式并行度取决于Consumer的线程数,如Topic配置10个队列,10台机器消费,每台机器100个线程,那么并行度为1000。
2018年06月16日
990 阅读
20 点赞
2018-03-17
金融资产管理项目-银企直连
银企直连主要是与银行系统、其它子系统交互和为其它子系统提供接口的系统。主要功能 银行机构管理:维护全国各个银行网点的基本信息,可从Excel导入由财务公司提供的模板,支持页面变更,同时对外提供接口,由其它子系统增量更新。财银关系管理:维护财务公司和成员单位银行账户上下级的关系,只有维护过的账户才能通过银企直连正常连接银行做交易。归集策略设置:按设定的策略将成员单位的资金归集到财务公司基础策略:绑定相关类型的定时任务、金额、归集类型(指定金额、按比例、保留余额),每个策略都可以绑定多个成员单位,绑定后即为归集策略。临时策略:和归集策略为多对一的关系,有生效日期、失效日期,如果生效日期是当天,冻结相应的归集策略。生效归集策略时临时策略会失效,删除和失效临时策略时归集策略会生效。除此之外,还包含下拨策略设置、手动归集、支付状态修改、支付失败处理、归集业务入账、归集资金抹账,手工解冻、查余额、查状态、刷明细、查明细、查账户信息等功能。该系统提供和各大银行前置机交互的能力,如中国银行、工商银行、交通银行、建设银行、农业银行,交互接口文档分别由各银行研发中心提供。后台常驻线程 交易状态刷新轮询任务:归集状态刷新、支付状态刷新,循环刷新各个银行。判断银行客户端是否存在,按银行将库中状态为交易待查的交易向银行查询,因为各银行系统对外部系统请求时间间隔都有限制,所以需要注意刷新时间间隔,根据银行编号、重发类型计算重发时间间隔,若在间隔范围内,则发送银行。每个银行每种交易都需要配置相应的报文模板,以bankCode+transCode命名,采用模板引擎,例如FreeMarker;同样,每个银行系统返回的报文解析都不相同的。除此之外,还有交易重发轮询任务(将库中待发送银行的交易发送银行),银行接口状态刷新任务(检查各个银行的前置机是否联通),入账管理任务(轮询待入账的数据重发记账)。定时任务 银行当日明细刷新:循环去银行获取该账号的当日交易明细,解析后进行分类入库,代理收款的需要冻结金额,银行端归集的需要记账,指令归集和支付的需要对比是否有已抹账的数据分别入库或更新状态。还有账户当日余额刷新、银行历史明细刷新、归集策略切换定时任务,这些都需要在数据库添加基础数据。对外提供的接口 信息服务接口:外部系统从银企获取银企维护的基础数据或交易数据刷新服务接口:由管理端手动出发触发调银行交易服务交口:提供线上支付渠道,调银行接口来进行交易调用银行接口 信息查询:主要获取账户的基本信息、余额等流水刷新:获取指定账号的当日或历史交易流水支付交易:支付转账、归集等交易接口银企与银行系统的通讯都需要通过前置机加密,每个银行都需要部署前置机,交易日志详情都可在前置机下查看,农行的前置机从银行刷回数据不会返回给请求的系统,会以文件的形式保存到前置机指定目录下,由于应用环境和前置机不在同一台机器,可以通过部署ftp的形式共享文件。
2018年03月17日
462 阅读
4 点赞
2017-12-03
金融项目微调OpenJDK,编译源码
系统版本:Ubuntu 16.04 LTS系统类型:64位操作系统编译出来的是64位的JDK,可以通过设置参数--with-target-bits=32生成32位编译结果。OpenJDK源码下载 https://hg.openjdk.java.net/jdk8/jdk8,点击左侧zip下载到到本地直接解压即可。微调源码使该JDK编译打包后的jar其他JDK无法识别,应用系统必须和JDK配套部署,例如银行自己开发的一套企业金融资产管理系统,交付第三方财务公司使用时,同时提供jar包和JDK,这样就增强了系统的安全性。安装GCC或CLang,例如,安装GCC的命令为:sudo apt-get install build-essential在编译过程中需要依赖FreeType、CUPS等若干第三方库,OpenJDK全部的依赖库如下:OpenJDK除了使用C、C++编写外,还使用了Java语言,因此还需要一个编译期可用的小版本JDK(如JDK7),官方称为“Bootstrap JDK”。编译命令:1.执行bash configure --enable-debug --with-jvm-variants=serverconfigure会检查依赖项、参数配置和构建输出目录结构等。2.执行make images编译整个OpenJDK,images(product-images)是编译出整个JDK镜像,其他参数还有:hotspot:只编译HotSpot虚拟机 hotspot-<variant>:只编译特定模式的Hot Spot虚拟机 docs-image:产生JDK的文档镜像 test-image:产生JDK的测试镜像 all-images:相当于连续调用product、docs、test三个编译目标 bootcycle-images:编译两次JDK,其中第二次使用第一次的编译结果作为Bootstrap JDK clean:清理make命令产生的临时文件 dist-clean:清理make和configure命令产生的临时文件编译后产生的JDK路径:build/配置名称/jdk,把它复制到JAVA_HOME目录,就可以作为一个完整的JDK来使用。重新编译前先执行make clean和makedist-clean命令清理目录。
2017年12月03日
1,316 阅读
43 点赞
2017-03-11
Memcache部署流程
建安装目录 mkdir -p /application/search/libeventmkdir -p /application/search/memcached安装libevent tar zxvf libevent-2.0.21-stable.tar.gzcd libevent-2.0.21-stable./configure -prefix= /application/search/libeventmakemake installtar zxvf memcached-1.4.21.tar.gz注:安装memcached时需要指定libevent的安装位置./configure -prefix=/application/search/memcached --with-libevent=/application/search/libeventmakemake instal启动memcached/application/search/memcached/bin/memcached -d -m 1024 -u search -l 172.16.0.6 -p 12015 -c 512 -P/application/search/searcher/memcached/bin/memcached 可执行程序路径11211 端口号1024m 分配1024M内存-d 在后台运行Memcached在实现分布集群部署时,Memcached服务端的之间是没有通讯的,服务端是伪分布式,实现分布式是由客户端实现的,客户端实现了分布式算法把数据保存到不同的Memcached 服务端。分布式缓存需考虑如下三点:1、缓存本身的水平线性扩展的问题。2、缓存大病罚下的本身性能问题。3、避免缓存的单点鼓掌问题。分布式缓存存在的问题:1、内存本身的管理问题。内存的分配,管理和回收机制。2、分布式管理和分布式算法。3、缓存键值管理和路由。
2017年03月11日
533 阅读
3 点赞
1
...
3
4
5
6