- 博客(87)
- 资源 (26)
- 问答 (1)
- 收藏
- 关注
基于Kafka的多台远程服务器上的网页文件接入到本地的技术方案以及Flume+Kafka调研
第一章 需求
对方的网页文件接入到我方服务器。每个文件要知道其:网站、采集时间等。
通过消息队列将多个远程服务器上的【数据文件】源源不断的接入到本地服务器,数据文件是下载下来的网页,传输过来的时候还要带上来自的网站和下载日期等信息。
目前讨论消息队列用Kafka。
第二章 基本方案
1、我现在能想到的就是:
远程服务器编写程序, 不停读取文件的内容成为一个字符串,然后再加上来自的网站、下载日期等信息,组合成一个JSON字符串,通过调用kafka的生产者API将字符串写入Kafka。
2、JSON数据格式设计:
{ “source”: “来源网站名” , “filename” : “html文件名”, “download-date”: “下载日期” , ”content” : “一个html文件的全部字符串 “ }
注:假设.js \.css \.png文件都不需要
3、消息主题的设计:
一个网站对应一个topic,对应到本地的一个文件夹。
4、其他:
如果只是传输文件,不考虑加上网站、下载日期等信息的话,我知道的用Flume可能更方便,但是要加上网站、下载日期的信息(类似主题订阅的功能),flume就不太方便了?
5、可能存在的顾虑:网页数据文件对数据顺序性的要求的程度。
Kafka单分区的情况小支持消息有序性, 多分区下确保消息有序的方案还需深入调研。
如果之后一个主题下对应的网页文件没有特别的传输顺序要求,这一块应该会容易处理很多。
2019-03-13
大数据框架Kafka调研资料共50页
Kafka
Kafka特性
Kafka拓扑结构
ISR(In-Sync Replica)
Topics和日志
日志中的Offset
分区和消费组
消费者Pull消息的好处
工作流程
消息写入流程
等
2019-03-13
Java并发编程的艺术_非扫描
Java并发编程的艺术_非扫描
本书特色
本书结合JDK的源码介绍了Java并发框架、线程池的实现原理,帮助读者做到知其所以
然。
本书对原理的剖析不仅仅局限于Java层面,而是深入到JVM,甚至CPU层面来进行讲解,
帮助读者从更底层看并发技术。本书结合线上应用,给出了一些并发编程实战技巧,以及线上处理并发问题的步骤和思
路。
读者对象
·Java开发工程师
·架构师
·并发编程爱好者
·开设相关课程的大专院校师生
如何阅读本书
阅读本书之前,你必须有一定的Java基础和开发经验,最好还有一定的并发编程基础。如
果你是一名并发编程初学者,建议按照顺序阅读本书,并按照书中的例子进行编码和实战。如
果你有一定的并发编程经验,可以把本书当做一个手册,直接看需要学习的章节。以下是各章
节的基本介绍。
第1章介绍Java并发编程的挑战,向读者说明进入并发编程的世界可能会遇到哪些问题,
以及如何解决。
第2章介绍Java并发编程的底层实现原理,介绍在CPU和JVM这个层面是如何帮助Java实
现并发编程的。
第3章介绍深入介绍了Java的内存模型。Java线程之间的通信对程序员完全透明,内存可
见性问题很容易困扰Java程序员,本章试图揭开Java内存模型的神秘面纱。
第4章从介绍多线程技术带来的好处开始,讲述了如何启动和终止线程以及线程的状态,详细阐述了多线程之间进行通信的基本方式和等待/通知经典范式。
第5章介绍Java并发包中与锁相关的API和组件,以及这些API和组件的使用方式与实现细
节。
第6章介绍了Java中的大部分并发容器,并深入剖析其实现原理,让读者领略大师的设计
技巧。
第7章介绍了Java中的原子操作类,并给出一些实例。
第8章介绍了Java中提供的并发工具类,这是并发编程中的瑞士军刀。
第9章介绍了Java中的线程池实现原理和使用建议。
第10章介绍了Executor框架的整体结构和成员组件。
第11章介绍几个并发编程的实战,以及排查并发编程造成问题的方法。
2019-03-13
redis设计与实现(第二版)-带重点标记
redis设计与实现(第二版)-带重点标记
《Redis 设计与实现》一书全面而完整地讲解了 Redis 的内部运行机制, 对 Redis 的大多数单机功能以及所有多机功能的实现原理进行了介绍, 展示了这些功能的核心数据结构以及关键的算法思想。 通过阅读本书, 读者可以快速、有效地了解 Redis 的内部构造以及运作机制, 从而学会如何更高效地使用 Redis 。
本书介绍了以下内容:
字符串(string)、散列(hash)、列表(list)、集合(set)和有序集合(sorted set)这五种类型的键的底层实现数据结构。
Redis 的对象处理机制以及数据库的实现原理。
事务实现原理。
订阅与发布实现原理。
Lua 脚本功能的实现原理。
SORT 命令的实现原理。
BITOP 、 BITCOUNT 等二进制位处理命令的实现原理。
慢查询日志的实现原理。
RDB 持久化和 AOF 持久化的实现原理。
Redis 事件处理器的实现原理。
Redis 服务器和客户端的实现原理。
复制(replication)、Sentinel 和集群(cluster)这三个多机功能的实现原理。
本书的特色是:
带有丰富的图示和表格, 帮助读者更好地理解书中的知识点。
关注功能的高层设计思路而不是底层的实现代码, 让读者无须花时间研读代码就可以了解到 Redis 的内部实现。
提供带有中文注释的 Redis 源码, 帮助有需要的读者做进一步的学习。
为了帮助有需要的读者进一步了解 Redis 的实现细节, 本书附带了一份包含详细中文注释的 Redis 3.0 版本源码可供参考: https://github.com/huangz1990/redis-3.0-annotated 。
2019-03-13
java内存模型与并发技术
阿里巴巴专家讲座——java内存模型与并发技术。
主要内容:
学习java并发理论基础:Java Memory Model
学习java并发技术基础:理解同步是如何工作
分析程序什么时候需要同步
几个典型的并发设计策略
2019-03-13
ssh实践项目
ssh实践项目
1、本示例是在BAE官方示例的基础上进行修改,使之能够成功部署到新浪SAE上。
2、部署方法是将sdps.war 上传到新浪对应的SVN上(具体svn地址怎么和应用对应,请参考SAE文档)。
3、工程的WebRoot也可以打包成war,可以使用jar命令打包 ,切换到WebRoot目录后 “jar cvf sdps */ .”。
4、上传到SAE后,有一定的反应时间,大约1分钟左右,访问应用会报 404 或 503 错误,耐心等待多刷新几次即可。
5、SAE的java环境自带 servlet的包,所以lib里面只需要包括 第三方的包即可。
6、SAE 的 Java环境是基于 jetty ,可以先在本地运行jetty进行调试。
7、sae-eclipse.zip 里面是sae 的eclipse插件,官方有教程如何使用,可以方便更新文件。
2015-10-11
c# .net 时间格式化,怎样设置英国时区?
2015-08-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人