资深大数据架构师杨津萍:说说日志采集、存储及分析那些事儿
【51CTO.com原创稿件】互联网及各行各业信息化的快速发展,企业和单位需要处理的数据量越来越大。日志数据是常见的一种海量数据,以京东,淘宝等拥有大量用户群体平台为例,他们可能每小时日志数量可达百亿规模,特别是在6.18,双11大促活动期间,海量的日志数据暴增,给技术团队带来严峻的挑战。2017年12月1日,在51CTO主办的WOTD2017全球软件开发技术峰会《技术架构遇到业务架构》分会场上,大数据架构师杨津萍进行了主题为《海量日志架构的设计及优化》的精彩演讲,他从日志系统在优化、部署、监控方向如何更适应业务的需求入手,重点从多种日志系统的架构设计对比、后续调优等实际现象与问题做了详细的解读。演讲结束,记者也在第一时间采访了他。杨津萍从业十余年,专攻WEB架构及大数据架构,曾任京东大数据架构师。他是开源的热衷人员,如Hadoop、Hive、shark等有过开源贡献。根据多年的实战经验,在采访中,他与记者分享了在海量日志分析处理方面积累的丰富经验。根据应用场景,杨津萍将日志系统的架构分为三种:一是,简单的日志处理,可能就是一个
MVP那些事儿(1) 用场景说话
目录MVP那些事儿(1)……用场景说话MVP那些事儿(2)……MVC架构初探MVP那些事儿(3)……在Android中使用MVC(上)MVP那些事儿(4)……在Android中使用MVC(下)MVP那些事儿(5)……中介者模式与MVP的关系【知识点】MVP那些事儿(6)……MVC变身为MVPMVP那些事儿(7)……Kotlin实现MVP【知识点】MVP那些事儿(8)……当MVP遇到Lifecycle【知识点】MVP那些事儿(9)……探究MVP的最佳实践MVP那些事儿(10)……MVVM双向绑定MVP那些事儿(11)……基于MVVM的ArchitectureComponents引言随着这几年移动互联网的快速发展,移动互联网技术也得到了推动,辅助架构设计型的框架和思想层出不穷,从井喷的2015年到现在,开发者们越来越离不开这些高性能、高效率的工具,而制造这些工具的公司或个人,也被推到神坛,受猿们的膜拜。与此同时,Google在今年的io大会上发布了自己的官方框架ArchitectureComponent
关于在线教育行业MySQL数据库加密的安全事件案例
摘要:2017上半年,安华金和推出国内首款MySQLTDE数据库加密产品,采用数据库引擎代码改造技术,通过替换原生MySQL中的执行文件mysqld,实现数据在存储层的加、解密功能,还能避免以往加密过程中数据库文件导入导出的繁琐程序,最大程度减少性能损失。2017上半年,安华金和推出国内首款MySQLTDE数据库加密产品,采用数据库引擎代码改造技术,通过替换原生MySQL中的执行文件mysqld,实现数据在存储层的加、解密功能,还能避免以往加密过程中数据库文件导入导出的繁琐程序,最大程度减少性能损失。国内数据库安全领域在MySQL加密技术上常年空白,安华金和MySQL加密产品也是在收集调研了多个行业用户的需求后,推出市场的,这一投石问路的创新之举立刻吸引了众多用户关注,目前,安华金和已为政府、人社、教育、企业等多行业多个用户完成MySQLTDE加密产品的成功部署,无论从加密效果还是性能影响上,首次发布的MySQLTDE加密产品均表现不俗,以案例充分体现产品价值。本文,以其中某教委用户的MySQL加密项目为例,呈现MySQLT
JSP adbc tag 连接 MySQL 数据库中文变?
前言我也不知道该怎么起标题了。这个标题大概就是我搜索错误是用到的关键词最近在写JSP。昨天用到了数据库,但是遇到了一个超级崩溃的错误。我的SQL语句中如果出现了中文,在数据库中执行的时候中文就变成了?错误的样子:我执行这个select*frombookwhereauthorlike'%金庸%'在数据库执行日志看就是select*frombookwhereauthorlike'%??%'这种错误当时大概思路是先查了一遍我的数据库和表以及字段的数据类型,没发现问题在请求数据查询的地方,直接写了一条固定的SQL语句。发现问题是出现在这里然后尝试各种解决方式无效。偶然想到了查询数据库日志,尝试,查到了日志可是没解决问题思路早上起来突然想到。会不会是整个MySQL的编码方式于是在网上找了篇参考文章来自CSDN的参考文章查看修改mysql编码方式整个过程查数据库的执行日志查询数据库实时执行参考自CSDN博主春夏秋冬又一年1.进入mysql,修改设置:
TechBridge 技術週刊 - (第 109 期) 這樣重構到底對不對
[英]Gapminder:Unveilingthebeautyofstatisticsforafactbasedworldview.Gapminder是一套針對教育的基金會,希望透過資料統計、視覺化互動等工具與專案來增進人們對於世界的認知,裡面不僅提供資料下載,也提供圖表工具讓老師可以免費在課堂上使用,其中的DollarStreetproject更是有趣,將各收入層家庭的玩具放在一起比較,讓你感受貧富差距的衝擊。
webpack之深入浅出externals
我们通常在做项目时可能会把第三方库打包到bundle中,比如下面这张图如果不想把第三方库打包到bundle中,这就有了externals。官方的使用externals比较简单,只需三步——1.在HTML中引入第三方库的cdn2.在webpack中配置externalsexternals:{jquery:"jQuery",}3.在js中引用const$=require("jquery");$("#content").html("
helloworld
");好,现在我们可以随心所欲的使用jquery插件并保证不会打包到bundle中。external是怎么办到的呢?下面我们通过bundle的源码来分析下原理。这里的/*0*/和__webpack_require__分别指打包前js对应的模块函数(详细过程见我上一篇博客),这里就不细说了。这里可以看到module.exports=jQuery,就是说我们externals中的key指的是require的东西,value指的就是它,【系统设计】“查询推荐好友”服务在不同架构风格下如何设计?
场景描述“查询推荐好友”是一个典型的社交服务场景,通常的需求是:用户未登录情况下,系统返回推荐好友列表:ABCDE,在用户登录态情况下,需要将用户已经关注过的人从系统默认给出的推荐好友列表中去掉,比如如果登录的用户U已经关注了用户A,那么U查询得到的推荐好友列表就应当是:BCDEF,A不会返回。业务逻辑非常清晰,在实际服务设计过程中,会发现这个case隐含了匿名访问和登录状态访问两个case,在不同的架构风格下,应当如何去设计呢?可能遇到的问题是什么呢?接下来逐一探讨。单体架构服务实现我们先来看看这个case在单体服务下应当如何去实现。没什么好考虑的,所有逻辑交给业务逻辑层完成,包括“判定用户是否有登录态”这一逻辑。通常这里的登录态使用web容器自带的session管理功能完成。用户登录之后,会在web容器中产生一个Session对象,并将sessionId写回到浏览器cookie中,客户端下次请求时戴上sessionIdcookie,web容器读取cookie中的sessionId找到对应用户的Session对象,取出用
滴滴出行构建业务中台应对软件复杂度的具体对策与实践
【51CTO.com原创稿件】经历5年发展,滴滴出行已拥有4.5亿用户、超过2100万车主,业务覆盖400+城市。在创业初期,为了快速拥抱业务,架构的建设在体系化、完善度等方面会有所不足。随时间推移,架构在可持续性、稳定性等方面需不断进步。。2017年12月1日,在51CTO主办的WOTD2017全球软件开发技术峰会主会场上,滴滴出行执行总监赖春波做了主题为《如何构建滴滴出行业务中台》的精彩演讲,从中可以了解到滴滴出行构建业务中台的原因及在过程中遇到的问题和应对的策略。在峰会现场,赖春波老师也接受了我们的专访,进一步交流构建业务中台的一些实践经验。赖春波·滴滴出行执行总监构建业务中台的原因2015年末,滴滴出行在短时间内形成了包括快车、出租车、专车、顺风车、代驾等多业务的垂直化架构。滴滴启动了中台战略整合业务系统。决定构建业务中台主要出于四方面考虑:专业深度、人力资源、用户体验、全局打通专业深度。由于是多业务垂直化的架构,会有多个团队开发同样的架构,这就需要很多的工程师。每个团队都是用最快速的方式构建流程,所以技术很难做深。这样
高性能、高可用、高扩展ERP系统架构设计
高性能、高可用、高扩展ERP系统架构设计ERP之痛曾几何时,我混迹于电商、珠宝行业4年多,为这两个行业开发过两套大型业务系统(ERP)。作为一个ERP系统,系统主要功能模块无非是订单管理、商品管理、生产采购、仓库管理、物流管理、财务管理等等。作为一个管理系统,大家的一般开发习惯就是使用.Net或Java技术,建立一个单块(单进程)架构的应用,只有一个SQLServer或MySql数据库。然后在项目文件中分一下各个模块,三层结构方式组织代码编写开发。最后测试,交付上线。起初,因为数据量不大,系统性能还不错,各种列表查询,报表查询,Excel数据导出功能等用的都很流畅。但是随着公司业务发展,订单量日积月累,后期各种业务部门的报表查询、数据导出需求不断增多,我们渐渐就感觉系统运行越来越慢。于是我们可能最先想到的解决方案就是,优化系统瓶颈数据库这个大头。我们可能的一种尝试就是将数据库单独放置到一个服务器,实现数据库和应用程序分离,或者是建立各种数据库表索引,优化程序代码等方法。经过这样一番研究优化,系统某些功能可能性
微服务配置内容《网上copy》=========》如何创建一个高可用的服务注册中心
微服务配置内容—>如何创建一个高可用的服务注册中心前言:首先要知道什么是一个高可用的服务注册中心,基于springboot建成的服务注册中心是一个单节点的服务注册中心,这样一旦发生了故障,那么整个服务就会瘫痪,所以我们需要一个高可用的服务注册中心,那么在Eureka中,我们通过集群来解决这个问题。啥叫集群呢?就是多配几个,一个服务注册中心挂了,还有另一个。另外要注意jdk的版本需要1.8或1.8以上,否则无法执行。1但这里我遇到了一个奇怪的问题:本来我的jdk版本是1.6的,我需要更换。但是怎么配置环境2变量,在命令行输入java-version仍然是1.6,这里并不是配错了,而是在安装JDK1.6时,3自动将java.exe、javaw.exe、javaws.exe三个可执行文件复制到了C:\Windows4\System32目录,我们所执行的java命令正是这个java.exe所以我们先需要将这3个可执行5文件删除,然后再配置jdk1.8另附java环境搭建方法https://jingyan.baidu.com/ar
Werner Vogels脑中的未来世界@AWS re:Invent 2017
2017年11月30日,拉斯维加斯。这是WernerVogels第六次站在AWSre:Invent主题演讲的舞台上。作为AWS的CTO,多年来他发起、参与并见证了无数的变化,但是有一件事情一直没有变过——他一直在想象一件事:未来的开发会发生怎样的变化?“虽然我无法预测五年后的世界会变成什么样子,正如同五年之前的我无法预测今天一样。但是有一点我们非常清楚:靠我们自己是无法把AWS建设成今天这样的。不是我们去教育开发者们应该如何开发软件,而是他们教会我们应该去开发怎样的软件。”“举个例子,当年我们之所以开发DynamoDB,是因为我们听到了开发者对于另一种数据库的需求。然而当我们发布DynamoDB的时候,我们并不知道开发者们会需要IAM层面的访问控制功能。是开发者们教会我们DynamoDB的服务应该要怎样去做。”“我们的发展路线图掌握在你们手中。”以后的App开发会是怎样的?想象的能力建立在观察的积累之上,观察的积累建立在用心的基础上。技术提供方与技术需求方之间的交流,本质上是人与人之间的交流。当客户有意或无意间说出一句话的
WebView面试详解
一、WebView常见的一些坑1.webview在androidapi16以及之前版本的安全漏洞,该漏洞是因为程序没有正确的限制webview.addjavascriptinterface方法,让远程攻击者可以使用java的反射机制利用该漏洞执行任意的java对象方法。2.webview动态添加到其他布局的时候,在activity销毁的生命周期时,需要主动调用webview.removeallviews和webview的ondestory方法释放内存,否则会导致内存泄漏。3.jsbridge,js桥可以允许远程网页端与android的native端进行通信,通俗的说就是使用js桥可以在android代码中调用网页的js方法,也可以让js调用原生的代码4.webview.onpagefinished方法,该方法并不靠谱,按照api上面的说法,在web页面完全加载完成的时候会回调该方法,但在实际应用过程中,该方法在跳转url的时候会被多次调用,更加靠谱的方法是使用onprogresschange方法代替该方法的功能,当ne
js 事件冒泡和事件捕获
事件流:指的是网页中元素接受事件的顺序,它是一个概念,而不是具体的实际的东西事件冒泡:指的是内层元素的事件,会触发包含着此元素的外层元素的事件,触发的顺序是:由内而外的例如:12
灵活的overflow
说到overflow对于CSSer而言并不会陌生,用来控制内容溢出的现象。而很多时候我们还会使用text-overflow来控制内容溢出的显示。一般是直接截取,另一种是截取之后让文本后面带有三个点的省略号。不过有意思的是,我们今天要说的灵活overflow。前两天@kizmarh发的博文,让我眼前一亮。再次让我不得不佩服国外的工程师的创新能力。大家可能会说是什么效果呢?又是什么效果才能称得上是灵活的overflow呢?别的不多说,先上一个效果:初看效果,好象并没有两样。如果想看到与众不同的效果,大家可以在上面的Demo做一下相关的操作。比如,将容器慢慢的变小,或者选择复选框,就能看到不同的效果:那么这样的效果是怎么实现的呢?这就是接下来要介绍的。很多同学可能会使用CSS的媒体查询来制作响应式的网站。而在当时当日,有些组件不能只依赖于视窗的宽度来做为条件的判断。而是依赖于不同的条件做出不一样的响应。有一个很好的解决方案是ContainerQueries,而它的前身是ElementQueries
Entity Framework——建模建库
1数据库初始化策略选择三种初始化策略:1)CreateDatabaseIfNotExists:默认的策略。如果数据库不存在,那么就创建数据库。但是如果数据库已存在,而且实体发生了变化,就会出现异常。2)DropCreateDatabaseIfModelChanges:模型改变时,原来的数据库会被删除,自动重新创建一个新的数据库。3)DropCreateDatabaseAlways:每次运行都会删除原来的数据库,然后重新生成数据库。4)Null:在Codefirst模式下,当实体结构改变时,运行程序不会自动生成表,改变实体结构与改变表结构互不影响,上述策略无法应对的问题是:分别改变实体模型和数据库表结构。即,当使用CreateDatabaseIfNotExists策略时,修改实体模型会抛异常(Themodelbackingthe
NuGet和travis实践
工作中接触到了yara,yara项目在windows上编译是通过vs2015编译的,其中用到了openssl和jansson的第三方库,其中作者VictorM.Alvarez用的是nuget进行三方库管理的,感觉这个解决方案还不错,可能比自己去下载源码编译lib稍微方便一点儿,所以记录一下。vsSolution实际测试下面就以openssl库为例进行一下测试。首先需要在项目的根目录下创建一个NuGet.Config的文件,这个应该是方便vs的NuGet进行索引
【Win 10 应用开发】在后台播放视频
【Win10应用开发】在后台播放视频从1607(14393)版本开始,MediaPlayer类就可以在前台与后台之间无缝播放,你不必再考虑前台与后之间的通信,所以从14393开始,你就不需要再用BackgroundMediaPlayer类了。无论多媒体资源是前台还是后台播放,都由MediaPlayer类负责。与此同时,在XAML控件体系中,MediaElement类也由MediaPlayerElement类替代。这些内容老周就不多说了,因为SDK文档的更新日志上都有说明。不管是音频或是视频都统一到MediaPlayer类中,正因为如此,实现后台播放视频就显得很是Easy了。不废话,下面咱们来个示例来说明说明。这个示例简单,老周就不用Page了,UI的根直接来个Grid吧。