聚合文章列表
18 浏览

Python分布式流处理系统Kafka

来源于微信magedu-Linux,本文主要介绍了一下kafka的基本概念,并结合一些实验帮助理解kafka中的一些难点,如多个consumer的容错性机制,offset管理。什么是KafkaKafka是一个分布式流处理系统,流处理系统使它可以像消息队列一样publish或者subscribe消息,分布式提供了容错性,并发处理消息的机制。Kafka的基本概念kafka运行在集群上,集群包含一个或多个服务器。kafka把消息存在topic中,每一条消息包含键值(key),值(value)和时间戳(timestamp)。kafka有以下一些基本概念:Producer-消息生产者,就是向kafkabroker发消息的客户端。Consumer-消息消费者,是消息的使用方,负责消费Kafka服务器上的消息。Topic-主题,由用户定义并配置在Kafka服务器,用于建立Producer和Consumer之间的订阅关系。生产者发送消息到指定的Topic下,消息者从这个Topic下消费消息。Partition-消

消息系统 2018-01-09 发布
27 浏览

Apache Flink:使用EventTime与WaterMark进行流数据处理

在实际开发过程中,我们可能需要接入各种流数据源,比如在线业务用户点击流数据、监控系实时收集到的事件流数据、从传感器采集到的实时数据,等等,为了处理方便他们可能会写入Kafka消息中间件集群中某个/某些topic中,或者选择其它的缓冲/存储系统。这些数据源中数据元素具有固定的时间属性,是在流数据处理系统之外的其它系统生成的。比如,上亿用户通过手机终端操作触发生成的事件数据,都具有对应的事件时间;再特殊一点,可能我们希望回放(Replay)上一年手机终端用户的历史行为数据,与当前某个流数据集交叉分析才能够得到支持某类业务的特定结果,这种情况下,基于数据所具有的事件时间进行处理,就具有很重要的意义了。下面,我们先从Flink支持的3个与流数据处理相关的时间概念(TimeNotion):ProcessTime、EventTime、IngestionTime。有些系统对时间概念的抽象有其它叫法,比如,GoogleCloudDataflow中称为时间域(TimeDomain)。在Flink中,基于不同的TimeNotion来处理流数据,具有不同

消息系统 2018-01-09 发布
18 浏览

架构师学习资料分享

架构师的理解所谓架构师,思考的是全局的东西,是如何组织你的系统,以达到业务要求,性能要求,具备可扩展性(scalability),可拓展性(extendability),前后兼容性等。可能涉及到的东西包括了从硬件到软件的方方面面,实在是一言难尽。架构师需要学习写什么既然java架构师,首先你要是一个高级java攻城尸,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,连接池,线程池...:;java反射技术,写框架必备的技术,但是有严重的性能问题,替代方案java字节码技术。获取方式第一步:扫描底部二维码关注职梦人生第二步:后台回复关键词:003图片,视频资料收集于网络,版权归原作者所有,本文仅供学习交流小编整理不易,希望大家拿到资料,好好学习。哈哈下次整理其他行业资源供大家下载学习,欢迎关注职梦人生,陪你一起度过芳华岁月,不负此生。往期阅读:python视频

软件架构 2018-01-09 发布
AD 友情赞助
31 浏览

从搭建vue-脚手架到掌握webpack配置(一.基础配置)

学习vue的过程肯定会接触到vue的单文件组件,进而接触到vue-cli(vue工程构建的脚手架工具),但是vue-cli创建的工程对初学者很不友好,vueinitwebpack-simpleproject-name创建的项目又太过简单和片面。本教程会分几篇文章逐步深入配置webpack,想要后续更新可以关注哦~接下来我们从初始化到写配置再到添加loader和插件逐步构建一个可用的vue工程化环境,让初学者亲自搭建vue-cli之余还了解到webpack常用的一些配置项。一些官方文档webpackvue-loader.babelrc(babel配置)postcss(插件转样换式工具)和babelrc会在后面简单提及npm(用到插件就多去插件库查下用法)vue-loadervue-loader,是用于编译vue项目中组件化文件*.vue,把其转换为JavaScript的webpackloader。这是vue工作最重要也是一定会用到的loader,所以提前提一下。创建工程前提你已经安装了node、npm环境mk

Vue.js 2018-01-09 发布
24 浏览

Vue项目组件化工程实践方案

我们暂时给提取出来的脚手架取名叫vde-cli,通过vde-cli脚手架生成的组件库工程目录结构如下:核心功能组件库工程的packages文件夹就是用来存放组件库里面的各种组件了,这里不需要通过手动创建文件的方式创建组件,直接通过一条创建组件的命令完成。每个组件都有一个单独的组件文件夹,组件文件夹下都至少包含"index.vue","example.vue","readme.md"这三个文件,这几个文件都是通过创建组件传递的参数加指定的模板生成,创建组件的命令如下:npmrungenerate两个参数分别是组件的名称和后面用来在文档和例子工程里显示的导航名称。组件库的对外主文件是工程的src/index.js,只要是通过上面的命令创建的组件,这个文件都会自动更新(省去你手工更新的时间)Doc文档工程Doc文档工程就是用来展示你组件文档的一个小型单页面系统。组件的文档就是存放在每个组件文件夹下的readme.md文件,我们通过vue-markdown-lo

Vue.js 2018-01-09 发布
18 浏览

webpack多入口文件页面打包配置

大多数情况下,我们使用webpack来打包单页应用程序,这个时候只需要配置一个入口,一个模板文件,但也不尽是如此,有时候也会碰到多页面的项目,而且以我的经验来看,这种情况出现的频率还不低,例如项目比较大,无法进行全局的把握,或者项目需要多次的更新迭代等,都适合做成多页面程序,这就涉及到了webpack的多页面文件的打包配置问题。手动配置单页应用程序和多页应用程序的webpack配置文件其实绝大部分都还是相同的,只不过多页的配置需要在单页配置的基础上顾及到多个页面罢了,loader、output、plugins这些基本都不需要改动,需要改动的一般都是入口文件entry,如果你用到了抽离css样式的插件extract-text-webpack-plugin、自动模板插件html-webpack-plugin的话,那么还需要对这两个插件进行额外的改写,大多数情况下,我们也都只需要改动这三个地方,所以本文就只简单说下这三个位置,如果在实际的项目中还有其他的地方需要改动,参照这三个位置即可。示例的文件目

CSS 2018-01-09 发布
AD 友情赞助
15 浏览

一个优秀的项目经理与JQuery的故事

本文是对jQuery的起源的初步探索。先通过两个函数来扩展原生DOM的操作,然后引入命名空间以及对其重构,接着将该命名空间扩大到Node上,改造一个自己的Node2,引出jQuery。引子首先,我有一个需求===========>要获得一个

  • 标签的所有兄弟元素。JSBin
      选项1选项2选项3选项4选项5选项6
    此时你刚学完原生DOM操作,知道有nextSiblingpreviousSiblingparentNode。你发现貌似没有直接一下子获得全部兄弟元素的API啊,身为一个优秀的90后,你果断手写一

    jQuery 1900-01-01 发布
  • 24 浏览

    快速开发基于 HTML5 网络拓扑图应用--入门篇(一)

    快速开发基于HTML5网络拓扑图应用--入门篇(一)计算机网络的拓扑结构是引用拓扑学中研究与大小,形状无关的点、线关系的方法。把网络中的计算机和通信设备抽象为一个点,把传输介质抽象为一条线,由点和线组成的几何图形就是计算机网络的拓扑结构。网络的拓扑结构反映出网中各实体的结构关系,是建设计算机网络的第一步,是实现各种网络协议的基础,它对网络的性能,系统的可靠性与通信费用都有重大影响。拓扑在计算机网络中即是指连接各结点的形式与方法;在网络中的工作站和服务器等网络单元抽象为“点”;网络中的电缆等抽象为“线”。影响网络性能、系统可靠性、通信费用。拓扑还分为:总线拓扑、星型拓扑、环形拓扑树形拓扑以及网状拓扑。这篇文章写的案例就是总线拓扑中的一个分支,我们一步一步来搭建这个拓扑图形。示例图片:拓扑图形组件ht.graph.GraphView(以下简称GarphView)是HT框架中2D功能最丰富的组件,其相关类库都在ht.graph包下。GarphView具有基本图形的呈现和编辑功能,拓扑节点连线及自动布局功能,电力和电信等

    HTML5 2018-01-09 发布
    21 浏览

    W3C官方推荐使用新发布的HTML5.2

    W3C于2017年12月14日发布了HTML规范5.2更新版本,并官方建议用户使用。此次更新增加了dialog标签等新功能、弃用了HTML插件系统等原有功能,并整合了其他W3C委员会的进展,如对支付请求API(PaymentRequestAPI)和演示API(PresentationAPI)的支持。新版本的规范在iframe标签上新增了一些重要属性用于支持新的JavaScriptAPI。其添加了allowpaymentrequest属性以允许iframe控制支付请求API的访问。这也意味着嵌入了第三方内容的页面能够控制该第三方内容是否可向用户请求获取支付凭证,进而让可嵌入的购物车工具可以利用新的API。来自Forrester的BrendanMiller阐述了支付请求API所带来的好处,他说:该新标准让开发者可以创建一个简化的结帐页面,用户可以重复使用保存的付款和地址信息来加快结账速度,并减少错误输入。支付请求API已经可在Chrome、Edge和技术预览版的Safari中使用。HTML

    HTML5 2018-01-09 发布
    AD 友情赞助
    21 浏览

    9款用HTML5/CSS3制作的动物、人物动画

    今天我们要来分享一些设计非常独特的人物和动物动画效果,它们都是通过HTML5和CSS3制作而成,有一些动画是利用纯CSS3实现的,一起来看看。1、纯CSS3绘制可爱的蚱蜢还有眨眼动画今天我们要分享一个利用纯CSS3绘制的蚱蜢动画,非常可爱,之前我们也分享过很多利用纯CSS3绘制的人物、动物等很有特点的效果,比如纯CSS3绘制可爱小男孩动画、纯CSS3AndroidLogo动画绘制等。这款CSS3蚱蜢还有眨眼的动画,非常酷。在线演示/源码下载2、HTML5Canvas头发飘逸动画很酷的HTML5动画HTML5Canvas动画非常炫酷,很多有创意的开发者可以利用HTML5的Canvas特性创造出很多不错的动画特效。今天我们要分享一款HTML5Canvas头发飘逸动画,该动画模拟头发飘动的效果,加上可爱的人脸,可以说非常有技术含量,更富有创意。在线演示/源码下载3、HTML5/SVG实现随风摇摆的动画树今天的这款HTML5动画非常有特点,它是一棵随风摇动的树,但是这棵树是模拟出来的,外观并不是那么逼真

    HTML5 2018-01-09 发布
    21 浏览

    C#事件(event)解析

    本文来自于cnblogs,文章适合一些初学者学习,主要讲解了一些概念和一些代码案例。事件(event),这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂。而这些东西却往往又是编程中常用且非常重要的东西。大家都知道windows消息处理机制的重要,其实C#事件就是基于windows消息处理机制的,只是封装的更好,让开发者无须知道底层的消息处理机制,就可以开发出强大的基于事件的应用程序来。先来看看事件编程有哪些好处。在以往我们编写这类程序中,往往采用等待机制,为了等待某件事情的发生,需要不断地检测某些判断变量,而引入事件编程后,大大简化了这种过程:-使用事件,可以很方便地确定程序执行顺序。-当事件驱动程序等待事件时,它不占用很多资源。事件驱动程序与过程式程序最大的不同就在于,程序不再不停地检查输入设备,而是呆着不动,等待消息的到来,每个输入的消息会被排进队列,等待程序处理它。如果没有消息在等待,则程序会把控制交回给操作系统,以运行其他程序。-事件简化了编程。操作系统只是简单地将消息传送给对象,由对象的事件驱动程序确定事

    .Net 2018-01-09 发布
    16 浏览

    .Net 如何模拟会话级别的信号量,对http接口调用频率进行限制(有demo)

    现在,因为种种因素,你必须对一个请求或者方法进行频率上的访问限制。比如,你对外提供了一个API接口,注册用户每秒钟最多可以调用100次,非注册用户每秒钟最多可以调用10次。比如,有一个非常吃服务器资源的方法,在同一时刻不能超过10个人调用这个方法,否则服务器满载。比如,有一些特殊的页面,访客并不能频繁的访问或发言。比如,秒杀活动等进行。比如,防范DDOS,当达到一定频率后调用脚本iis服务器ip黑名单,防火墙黑名单。如上种种的举例,也就是说,如何从一个切面的角度对调用的方法进行频率上的限制。而对频率限制,服务器层面都有最直接的解决方法,现在我说的则是代码层面上的频率管控。本文给出两个示例,一个是基于单机环境的实现,第二个则是基于分布式的Redis实现。--------------------以第一个API接口需求为例,先说下单机环境下的实现。按照惯性思维,我们自然会想到缓存的过期策略这种方法,但是严格来讲就HttpRuntime.Cache而言,通过缓存的过期策略来对请求进行频率的并发控制是不合适的。HttpRunti

    .Net 2018-01-09 发布
    AD 友情赞助
    16 浏览

    .NET Core+MySql+Nginx 容器化部署

    .NETCore容器化@Docker.NETCore容器化之多容器应用部署@Docker-Compose.NETCore+MySql+Nginx容器化部署GitHub-Demo:Docker.NetCore.MySql1.引言上两节我们通过简单的demo学习了docker的基本操作。这一节我们来一个进阶学习,完成ASP.NETCore+MySql+Nginx的容器化部署。本文是基于CentOS7.4环境进行演示,示例项目可以访问Docker.NetCore.MySql进行下载。2.HelloMySQL同样我们还是以循序渐进的方式来展开。首先来基于Docker来试玩一下MySQL。2.1.创建MySql实例//拉取mysql镜像dockerpullmysql$dockerimages$REPOSITORYTAGIMAGEIDCREATEDSIZEd

    .Net 2018-01-09 发布
    20 浏览

    如何访问及调用类中私有成员及方法

    本文为原创文章、源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称、作者及网址,谢谢!开发工具:VS2017语言:C#DotNet版本:.NetFrameWork4.0及以上系统:Win10X64一、首先建立一个控制台APP,并命名为ConsoleApp,如下图所示:二、新建一个Person类,并在类里面添加两个成员,一个是name字段,另外一个是Display方法,该方法带有一个“前缀”输入参数prefix,用于加在name字段前面,如下代码所示:classPerson{stringname;voidDisplay(stringprefix){Console.WriteLine($"{prefix},{name}");}}三、将System.Reflection引用进来,这里是本随笔的关键所在,如下图所示:usingSystem.Reflection;四、如何设置及访问name字段?在这里我们使用反射技术,使用Type类里的反射机制进行访问,1)公用部分,具体代码如下:

    .Net 2018-01-09 发布
    17 浏览

    从零收拾一个hybrid框架(一)-- 从选择JS通信方案开始

    Native调用JS的几种通信方案JS是一个脚本语言,在设计之初就被设计的任何时候都可以执行一段字符串js代码,换句话说,任何一个js引擎都是可以在任意时机直接执行任意的JS代码,我们可以把任何Native想要传递的消息/数据直接写进JS代码里,这样就能传递给JS了evaluatingJavaScript直接注入执行JS代码大家在PC上用电脑,用Chrome的时候都知道,可以直接用’javascript:xxxx’来简单的执行一些JS代码,弹个框,这个方法只有安卓可以用,因为iOS必须先将url字符串生成Request再交给webview去load,这种’javascript:xxxx’生成request会失败loadUrl浏览器用’javascript:’+JS代码做跳转地址WKWebView官方提供了一个Api,可以让WebView在加载页面的时候,自动执行注入一些预先准备好的JSWKUserScriptWKWebView的addUserScript方法,在加载时机注入JS调用Native的几种通信方案假跳转的请

    JavaScript 2018-01-08 发布
    22 浏览

    前端每周清单第 46 期: 2017 Node.js / GraphQL / Vue.js 盘点,前端性能优化与可用性保障

    前端每周清单第46期:2017Node.js/GraphQL/Vue.js盘点,前端性能优化与可用性保障作者:王下邀月熊编辑:徐川前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点;分为新闻热点、开发教程、工程实践、深度阅读、开源项目、巅峰人生等栏目。欢迎关注【前端之巅】微信公众号(ID:frontshow),及时获取前端每周清单。新闻热点国内国外,前端最新动态IntelCPU爆重大设计缺陷,浏览器中同样可以越权访问:近日IntelCPU被爆存在设计缺陷,普通的用户程序能够识别受保护区域的内核布局及其中内容;所有能访问虚拟内存的CPU,都可能被越权访问,而该问题的修复方案可能带来极大的处理器性能下降。同时根据Mozilla安全研究人员验证表明,相同的技术能够用于浏览器中读取不同源的隐私内容;各大浏览器厂商在致力于规避该问题,譬如限制performance.now()的执行间隔,或者默认禁用SharedArrayBuffer等。FuseBox3.0发布

    JavaScript 2018-01-08 发布
    18 浏览

    三个点如何改变JavaScript对象的rest和spread属性

    在JavaScript中合并多个对象是一个很常见的事情。但在JavaScript中,到目前为止并没有一种很方便的语法来进行合并。在ES5中,通过使用Lodash的_.extend(target,[sources])(或者其他选项),在ES2015中引入了Object.assign(target,[sources])。幸运的是,对象的spread语法(ECMAScript第3阶段建议)是如何操作对象,提供了一个简短且易于遵循的语法。constcat={legs:4,sound:'meow'};constdog={...cat,sound:'woof'};console.log(dog);在上面的例子中,...cat将cat对象复制到一个新的dog对象中。.sound属性的值woof放在最后面。这篇文章我们来了解对象的rest和spread语法。来看如何实现对象的克隆、合并以及属性重写等。下面对可枚举属性简短的概括,以及如何区分自己与继承属性。这些是理解

    JavaScript 2018-01-08 发布
    22 浏览

    (翻译)前端构建工具的比较

    原文地址:https://survivejs.com/webpack/appendices/comparison/在以前,是可以将你的脚本写在一起。时代已经改变,现在将JavaScript代码分开来可能是一个复杂的工作。随着单页应用程序(SPA)的兴起,这个问题已经升级。他们倾向于依靠一些有用的系统(来解决这个问题)。出于这个原因,有多种策略来加载它们。您可以立即加载它们,或者考虑需要它们时加载。Webpack支持许多这样的策略。Node和npm的流行,给它的包管理器提供了更多的使用环境。在npm普及之前,很难使用依赖项。有一段时间,人们开发出了前端特定的包管理器,但npm最终赢得了胜利。现在依赖管理比以前更容易了,尽管还需要克服一些挑战。任务运行程序与打包历史上,已经有很多构建工具。Make可能是最着名的,它仍然是一个可行的选择。专门的任务运行程序,如Grunt和Gulp,是专门为JavaScript开发人员创建的。通过npm提供的插件使得任务运行程序都强大而且可扩展。甚至可以使用npm脚本作为任务运行程序。这很常

    JavaScript 1900-01-01 发布
    22 浏览

    假如全世界所有程序员组成一个王国

    有一天程序员们受够了这个世界他们不但每天要加班遭受产品经理的压迫还要时刻提防被拉去「祭天」遂决定联合起义…这一天所有的程序员都受收到了一封邮件“你还在日夜加班吗?”“你还在被产品狗嘲讽吗?”“你还在被老板压榨吗?”“这一切,该结束了!”“联合起来!让补丁打满这个千疮百孔的世界!”C/C++方面军在地下(底层)攻势势如破竹Java军团攻势虽然略慢,但是能够到处跑着打(runeverywhere)Python军团短时间内就被镇压,然后团灭(人生苦短)HTML军团轻松混进敌人后方没人认为html是拿来编程的C#和VB军团在win国内无人能敌但是却苦于走不出国门某军团成员因大括号前是否应该换行产生分歧…3042年10月24日程序猿们流放了项目经理枪毙了产品经理推翻了CEO等上流阶级最后统治了全世界。猿类崛起之统一语言▲接下来就是建国了▼这一天码农们宣布成立HelloWorld共和国定都Github然后是挑选官方语

    程序员 2018-01-08 发布
    18 浏览

    如何建设全功能团队

    在这篇文章中,作者带我们一起回顾了分工历史,对于技术团队影响以及建设全功能团队的必要性。enjoy~团队的开发人员撇开需求沉浸在想象中的“完美”程序中;测试人员迷茫的点击着按钮试图搞明白这到底是个什么功能;设计师造出了没有尽头的楼梯,更糟的是,客户爱上了这个设计;团队领导四处救火,力有不逮。种种迹象表明,我们得打破分工带来的壁垒,建设全功能团队——大多数人能完成大多数种类工作的团队。在一次闲聊中,女友的母亲说起实习大夫必须轮岗一年才会进行分科学习,我质疑道:“对于致力于心脏病治疗的医生来说,他岂不是在不相干的学习上浪费了一年时间么?”,她母亲笑着说:“不这么作,你怎么确信病人的确患有心脏病呢?”不知道为什么,我眼前突然浮现出这样的场景?测试人员在怯生生的询问:“这是一个缺陷么(而不是操作系统/浏览器的限制)?”亚当与大头针工厂亚当·斯密于1973年在描述大头针工厂的专业化生产时提出了社会分工的好处:提高熟练程度、减少任务切换时的开销、便于机器的应用。我们似乎可以非常自然得推导出重复设计、重复编码、重复测试可以增加相应岗位员工技术熟

    程序员 2018-01-08 发布
    AD 友情赞助