几年前好像在新浪微博的玩法里面的页面游戏。玩法就是共四五个人,每人发一些卡片。然后一个人选择一张卡片,给这张

你的好友小程序已上线,除了攻略我们还有点别的
等你点&新浪科技&关注都等出蜘蛛网了导读程序小小真烧脑,历经一年风云搅这个玩意好不好,用了你才能知道一月九日终赴约,移动互联变天了到底我要怎么玩,新浪科技喂你饱文|新浪科技 汇总整理什么是小程序?这个不重要,后边的才是重点。反正就是跟App差不多的东西,你可以直接在微信里就可以用,不用特别麻烦去下载一个App,这对内存小的手机是个福音。可以直接用来 买电影票、打车、点外卖、买机票、买衣服、订酒店……也就是说你吃穿住行用娱所有的微信小程序都全部给你承包了……怎么开始使用小程序?首先你的微信版本必须是最新的6.5.3版本;常见的可以进入小程序的五种方法:1、在微信搜索框内搜索一个小程序的一个精准名字即可(这里的意思就是说,你想搜索摩拜单车的话,你搜索单车是没法实现的,搜索摩拜,也不可以,只能搜索摩拜单车),它的搜索逻辑跟内容无关,只能搜索部分品牌名,或者小程序全名,从一点来讲,小程序有点过于克制了。2、扫描小程序的二维码,特别说明的一点,小程序的打开,使用微信内部的识别二维码的方式是不行的,只能通过扫一扫才可以实现;如果使用识别二维码操作,会出现以下提示:3、还有一种办法就是好友分享;如果想分享一个小程序到朋友圈,张小龙告诉你,对不起,咱们没这个功能,你只能分享给你的朋友和微信群。但是有一个比较好的地方就是,朋友能看到你的当前操作页面,以卡片式的形式存在。举个例子,如果你正在使用腾讯视频,而你正在看的是鬼吹灯(绝对没有收广告费,因为最近就是在看这个~),分享给朋友的话,你看的是第几集,朋友打开的时候就是第几集,朋友看到的卡片式页面,显示的就是当前的简介内容。4、微信公众号关联:公众号的介绍中,会有关联的小程序信息,进入小程序之后,可以看到小程序所属的公众号信息。一个公众号可以绑定5个小程序,但是1个小程序只能被一个公众号绑定;5、小程序在微信里还是有一个展示的入口的,并不是像之前说的那样,没有一个集中的展示入口,这个入口在“发现-小程序”这里。当然这个首先是需要你使用过一个小程序之后,才会出现这个入口,所以可以先使用上述4个方法先使用一下。点击小程序进去可以看到之前使用过的小程序的历史记录;据微信官方称,该功能正在灰度测试,所以在后续使用上,是完全有可能直接就出现在发现这个页面里,而不是需要使用过才能找到,对第一次使用的人更友好。我怎么快速地找到小程序?1、安卓用户:在这一点上,使用安卓的人就有福利了,因为小程序可以直接添加到桌面上,但是从桌面上打开小程序,是要首先打开微信App的,启动会有些慢,不如手机App的体验好;张小龙在开发小程序的过程中国,就已经在朋友圈晒过图片了:2、苹果用户:那有人说如果我用的是iOS的话,岂不是得哭瞎,不必担心,小程序是可以支持置顶到微信聊天界面的,只需要点击小程序右上角的 [···] 就可以发现操作方式了:但比较悲哀的事就是用户在聊天界面只能置顶一个小程序……这一点上真的是很坑爹……我不想用小程序了怎么办1、删除:直接左划删除即可,我猜安卓是长按删除(群众吐槽:你就不能找个安卓手机试一下吗?)当然删除的时候,会同时提醒你,删除此使用数据将同时删除其数据。2、取消置顶:再次进入小程序,界面左上角会出现一个”X“号,只需要点击即可取消置顶;我真的就收不到小程序的消息了吗?问这个问题的人,一定是在使用App的时候,跟我一样遇到了特别烦人的问题,就是你又得使用这个App,但是你使用的频次比较少,同时你在使用的时候又必须收到App的消息通知,然后这个App总会有事儿没事儿的刷一个存在感,一天还不止一次,你又不能把所有通知关闭,于是小程序的不打扰就是最好的温油~这一点上小程序做得特别好,并不是像大家说的那样,小程序不会提供消息通知,它还是会的,比如下面的一种使用场景:你可以收到小程序的 模板消息&和 客服消息这一点上,小程序的消息推送实际上是通过绑定的微信公众号来进行推送的。在小程序上面有哪些可以抓住的机会?按照馒头商学院的说法,红利会出现在工具类需求上,内容服务也会涌现,同时微信小程序会向传统领域进行渗透,这里可以有一个农村包围城市的机会,就是先前没有抓住公众号和移动互联网机遇的,可以在这里弯道超车,具体体现在以下几个方面:1、小程序商城2、小程序委托开发业务3、小程序开发培训4、小程序开发者社区5、提供小程序源码和套件6、小程序数据采集和数据分析7、云计算服务8、各种SAAS服务目前已知的问题1、App和小程序之间的割裂性;以京东为例,京东的小程序只支持微信支付或者货到付款,这个很容易理解,因为之前京东在微信端本来就是有入口的;另外,如果使用京东购物,京东可以识别到你的收货地址,但是下单之后,在App里看不到相关的订单信息;还有一个就是,如果需要更改用户信息的话,就必须通过微信内部的购物模块来更改:微信-发现-购物-个人中心-账号管理以美团外卖为例,美团外卖小程序登陆的时候,是直接默认微信登陆的,如果在App上使用的是别的登陆方式,那你想使用的优惠券等等是没有的;以滴滴为例,滴滴没法微信登陆,进入之后需要允许使用定位,如果不允许的话就会一直在页面中弾弹弹(弹走鱼尾纹~),退不出去;虽然说我使用滴滴肯定要使用定位,但是这个退不出去就是产品的用户体验问题了;小程序版本的看不到地图也看不到车辆位置,比如我送女朋友回家,叫了一个滴滴,我肯定要知道女朋友走到什么地方;滴滴需要登录自己的账户体系,不支持微信登陆等等;2、小程序会出现在后台程序中,当把小程序杀掉进程之后,微信的进行也会被关闭;如果你在上班时间看电影的话,那这个方法还是蛮好的……免得你 退退退 退不出来,可以用这个简单粗暴的办法;3、问题还是和后台相关:在小程序界面,点击右上角的【···】回到聊天界面之后,视频会一直在后台播放,会增加耗电量,但是根据微信官方的说法,这个小程序的后台存在,是根据手机手机来优化的,具体怎么优化没有说。4、不太好的用户体验:本来那些不常用的微信群可能你不去找,那就会躺在你的微信深处,再也不会打扰你,就像有的时候我不提,你也不太会想起你的前女友一样(……),但是小程序来了,这些群又被炸活了……小程序只能替代一些比较低频次使用需求的App,比如我就只会在看电影的时候才会买票,而我看电影的频次的确是很低的,我又要比价,又要忍受内存限制,这个时候小程序还是有用的,我首先卸载的就是电影类的App,但是高频次的譬如外卖类的我还是不会卸载的(经常加班的我哭晕在厕所……)很明显的,有些公司会为了做而做,毕竟你不做,你的竞争对手在做,还有你的用户群也逼着你做,虽然他们不一定会用,就跟有人吐槽新浪科技的头像难看一样……说人家都扁平化了,你却还是80年代的样子(我复古不行吗?我一个90后的小编喜欢梁朝伟有错吗?)另外一个小程序开发还是需要成本的,没财力的公司只能一个人对着镜子哭……相反的,如果用户体验做的太好的话,一定程度上是给他人做嫁衣裳,用户全部跑到微信上而不是你的App里,是对App有一定的冲击力的;用户粘性肯定会变差,用户可能觉得小程序好用而卸载App,用户粘性就会大大降低,就没法拿靠消息通知和打扰用户所获得的日活量去骗投资人的钱了,当然这也有利于更公平的市场竞争,就是良币驱逐劣币了。5、几个不确定性的原则:根据馒头商学院所述,会有以下几个不确定性存在:1、需要走审核和发布的流程,在效率上是不够快捷的,这个比H5要慢,因为H5可以直接推送到用户的手机上就可以了;2、小程序并没有僵尸粉,需要挖空心思去给用户找到价值,让用户主动找到你。3、人工只能、大数据、智能硬件和物联网更加适合小程序的服务提供,这样可以更加便捷操作,自然而然提升用户粘性;目前已上线的常用小程序感谢博卡精选榜的整理,图片来源亿欧集团公众号声明文中引用的他人文章的内容,都已经做出标注,或者在图片上有直接体现,主要来源:知晓程序、博卡精选榜、朋友圈和网络资料,如果侵权,请告知。同时,如果你非要找一个小程序的应用商店的话,可以用
这个网址(并没有收广告费,只是单纯的分享)长按下方图片识别关注& 新浪科技
微信号:myweiblog
扫描并关注抽取红包、50元话费与圈内人交流、分享
游戏资讯哪家强?就这里(⊙v⊙)
我要分享:
点击标题下「创业头条」可快速关注摘要没钱别慌!5年后最&吃香&的行业竟是...
非常科学电子警察的工作原理,强大到没朋友!
科学家警告称,生态链遭到毁灭性破坏正引发最新一次物种大灭绝  据国外媒体报道,美国斯坦福大学、普林斯顿大学和地球步入新一轮大灭绝:人类将首先消失
AOI第四季度初步财务业绩:销售收入万美元,同比增长59.9%;GAAP税后净收入万美元,非GAAP税后净收入万美元,均高于预测。【器件】AOI Q416营收同增60% 高于预期
Facebook 是巴西人的......李毅吧?外国人的微商、李毅吧和今日头条都是它……| 灵感早读
作者:不用相亲的 Benson新年好啊,在看这篇文章的你也许正前往拜年的路上,又或者你已经亲朋戚友欢聚一堂,如果乔布斯还在世,他也许会到访藤原浩的“停车场”
从单纯依靠CIO变革,到联合其它部门重塑流程,将会成为企业填补IT与商业之间断层的关键一步。CEO需要再度思考技术对于企业的真正意义,CIO也需要通过主导数字化变革项目,帮助企业全体对 “数字化”进程进行重新定义。CIO:数字化创新到底起到什么作用?
借势Hisense E81的良好开局,海信于近日推出旗下平板E系列的又一力作——海信E9 倾慕。海信E9评测:超薄|全金属|让你体验“双快感”
不论你是男是女,是单身还是已婚,他的产品都能让你感到愉悦和满足“老司机”蔺德刚和他的情趣事业春水堂
时尚内容专业大户和强势媒体平台的一次联姻,将带来怎样的内容红利?当COSMO、男人装遇上快报:时尚集团如何在企鹅媒体平台上玩转雅痞范儿
讽刺媒体、威胁企业、恐吓民众、呛声明星,细数一下特朗普在推特上真没少惹事儿,难怪调查显示美国多数民众都支持封【双语】特朗普推特娄子捅不断,美民众:你还是关了吧
近来有一类市场——厨余垃圾回收技术——颇受初创公司的青睐,在各大众筹平台上常能看到相关的新产品崭露头角。恶心的厨余垃圾,回收起来竟然也可以这么的高大上
如果你的产品能把握人性的需求,那就离成功不远了。这个中国app为啥突然海外走红,霸屏推特?
在一个正在努力戒掉对石化燃料的上瘾、并且满足日益成长的能源需求的世界中,有一种技术在发展中,几乎听起来太好以至于不能成真,那就是核融合。核融合出现新转折,无限干净能源有望实现
本动画是 Swift 版的 AwesomeMenu炫酷菜单弹射动画:SDiffuseMenu(AwesomeMenu)
Google Developers Codelabs 提供了有引导的、教程式的和上手式的编程体验。大多数 Codelabs 项目都能帮助你了解开发一个小应用或为一个已有的应用加入新功能的过程。你准备好了吗?教程 | 没有博士学位,照样玩转TensorFlow深度学习
赶紧来揭开神秘面纱!有份新年礼物请收下!
以习近平总书记为核心的党中央高度重视话语体系和传播能力建设,中国特色话语体系和传播能力建设既关系到政治认同和人心向背,关系到中国国家形象的塑造与管理,也关系到社会治理和危机应对,从而构成国家治理体系和治理能力现代化的重要一环。互联网时代主流话语传播要强化受众意识
如题!精英访谈-社建|月入千元到万元的逆袭!
换句话说,新零售的本质将是,阿里系零售和非阿里系实体店。前者必然想完完全全颠覆后者。都在说新零售,到底新在什么地方?
天使投资: QQ:
求手游: QQ:
音乐外包: QQ:
游戏合作: QQ:692695注:本文为作者在高效运维系列群「运维讲坛」的分享,感谢徐文慧@21v-北京、温国兵@太空漫步-广州的编辑整理。处理日志是运维工作必不可少的一环。但是在规模化场景下,grep、awk 无法快速发挥作用,Hadoop 又更偏向于固定模式的离线统计。我们需要一种高效、灵活的日志分析方式,可以给故障处理,根源定位提供秒级的响应。基于全文搜索引擎 Lucene 构建的 ELKstack 平台,是目前开源界最接近该目标的实现。这次分享首先对 ELK 三个组件做一下简介,然后示例几种常见日志的场景。然后会分享一下新浪在使用过程中踩过的坑,总结的经验教训。最后大家可以一起发散讨论,在机器数据处理方面,ES、Hive、Spark 各自的定位和用途。ELK 使用场景介绍本文介绍 ELK 套件在日志方面的应用。首先介绍 ELK 使用场景。日志其实是运维工程师打交道很多很多的一个东西了。一般来说,日志有三个用途:找问题,就好像开发讲数据驱动一样,运维也要数据驱动安全审计做监控监控方面,我个人很欣赏 Etsy 公司传出来的一句话,感觉能算是监控的一种新时代的定义:Monitoring is the aggregation of health and performance data, events, and relationships delivered via an interface that provides an holistic view of a system’s state to better understand and address failure scenarios.所以说,日志数据并不是存下来,能看就 OK 了的。要能达到促进运维生产力的程度,需要很多后续处理,转变成这个 Interface。说回到日志的应用,第一个,找问题。 日志本身,其实就是时间戳+内容。好比一般说各种 Metric 系统,Graphite 等等,就是时间戳+数值。但是找问题的时候,说要 「昨晚 23:12 到 23:29 那会儿日志有啥异常?」,这种提问,感觉就会很抓瞎了。一般的监控体系,是定点采样;离线分析,是有固定的规则。而找问题的时候,恰恰是只有一个范畴,等着你找规则,找故障点。所以这是日志分析在运维领域跟其他“相近”的系统差别很大的一点。这个寻找的过程在分析的时候一般叫做“下钻”。单机的时候,我们通过 grep、awk、sort、uniq,一个接一个管道的做日志处理。但是在集群环境下,没法继续这样玩的。几年前一本《大规模 Web 服务开发技术》,说 200台 是大规模,现在来个稍微有点规模的都上百啦。所以,我们需要一个细粒度的,实时的数据搜索系统。而且这系统基本就是给运维,客服,开发看几眼就能定位问题的。这个领域其实早就有牛逼公司了,Splunk,上市到现在都已经百亿美元市值了。不过 Splunk 好贵。ELK 就是在这种场景下,用来替代 Splunk 的开源产品。应用举例前面这段算是场景方面的介绍。以及一点点我对监控、排障上的理解。下面举例说具体一点的日志。一段应用日志:这种日志,作为运维大家肯定都很熟悉吧。密密麻麻,要是 tail 一下,终端能给你卡死。对应 Logstash 的配置:这种配置区块的风格我觉得运维工程师应该普遍还是满适应的,因为 Ruby 写的 DSL 基本都长这个样子,比如 Puppet。在 Kibana3 的时候,制作的 Dashboard 效果:以及 Kibana4 的效果:Kibana4 是刚重构的,性能比 Kibana3 好,但是配色方面目前不是很完美。一个满屏刷的日志,通过 Logstash 大概十几行的配置处理,然后就可以在 Kibana 上做到各种维度的分析。上面是第一个例子。示例中是 ELK 最基础的两种面板格式,一个是 histogram,也就是时间趋势图,一个是 terms,也就是 TopN 排序。做时间趋势,有很多选择,那么为什么不直接计算 metric,而是走 ELK 来处理日志呢?比如你一个网站,有 2000 个接口,常见的状态码有 6、7 个,客户端平台版本也有 6、7 个,这就要定义多少万个 Item 才够?一旦有调整,又要变更。 而在 ELK 里,它每次刷新 Kibana 都是实时计算,你可以任意变更 Query。上面截图里,大家可以看到有 8 个小 Query 框。其实每个都是写了不同的 Query 语句,得到不同结果的。只要需要,还可以随时添加修改。这就是灵活性。下一个例子,PHP 的 slowlog。经过 Logstash 处理后,我给 Kibana 里定义的 Dashboard 是这样:注意:大家可以点开大图看那段黑色框的文字。这里的千层饼图,每层是对 slowlog 的函数堆栈的同一层的 TopN 统计。这样一个千层饼,就不单单能反映说最底层的慢函数在哪,还能一目了然看到说一路调用过来引发慢的整个链条路径。前一张图里,假如我们看到说 Top10 里某个 host 的 count 比其他的多,或者明显跟别人不一样。比如截图中,Top10 host9 个是 yhg 机房的,唯独第一个是 xd 机房,这显然不对。那么鼠标点击一下这条记录,页面就变成这个样子:这个 host 的过滤条件自动就加到 Query 下面生效了,而且整个页面的分析图表都自动变成有这个 host 过滤以后的结果。看图里这个堆栈情况的千层饼,跟开始各机房的汇总情况明显不一样。点开大图看细节,就可以知道,这台机器在尝试连接 Memcache 的时候,gethostbyname() 过慢的量暴涨。那好,问题定位直接就完成了。这是一个单维度的明显变化的示例。还有一个多维度的,下图是 Nginx 的 errorlog:不同的时间段,在不同维度上结果差距很明显。这几个都是服务器上的日志。当然 ELK 只要是日志,都能处理能搜索聚合。我们 App 会上传很多日志到后台。比如 Crash 的时候,那么开发同学想知道,尤其是新发版的时候,想知道最需要修复的代码在哪。这个是在 Logstash 阶段,通过自定义插件,把 Crash 堆栈中系统函数过滤掉,剩下专门是自己公司的代码了。然后 TopN 排序,很容易了解。页面做法其实跟一开始的例子一样的,如下图:新发版的时候,添加一个具体版本号的过滤条件。这个 TopN 就不一样了,如下图:当然这个 Crash log 只是我们这样玩。相信不同公司发版肯定都会关注这个,都有自己的玩法。市面上专门针对这个事情做的开源软件都好些个。只不过我们这个玩法,在整个日志体系里,就比较通用。ELK 其他的一些用途。比如给客服查投诉情况。根据 uid 搜索,一下子就知道这个投诉过了哪些关,触发了哪些报错。客服当然不知道这意味着啥,但是她联系开发或者运维,告诉对方啥问题的时候,就明确多了。上面这些都是常用的用法。也介绍一点更偏数据统计方面的用法。比如响应时间的概率分布:一个接口的响应时间,所有的请求,到底是怎么分布的?平均时间不靠谱,这个其实大家都知道了。很多人是搞个 Range 计数。0-100 的多少,100-1000 的多少。这个 Range 是拍脑袋出来的么?高峰期这个 Range 还有没有用?通过 ELK 实时计算,这个分布的拐点(或者说监控的阈值),就很明显了。下一步,说两个时间段的变化,是不是经过校验之类的,可以认为两个分布是相近的。这种数据分析也都可以做了。最佳实践通用的玩法就说到这里。然后分享一点具体在公司的应用规模和优化点。在新浪,目前我们团队的 ES 是有 25 种不同的日志,保留最近 7 天数据,合计 650 亿条。花了 26 个数据节点,42G 内存,2.4T SAS 磁盘,8 核 CPU 的配置。这个规模踩过的坑也不少。第一就是通过 doc_values 设置,预先生成 fielddata 到磁盘上。否则每次搜索时再生成 fielddata 到内存,分分钟爆内存;第二是 Recovery 和 Relocation。ES 默认的这方面的参数极其保守,不加大的话,一次重启可能一两天都恢复不完;第三是自动发现。默认的 multicast 包在公有云上会被认为是恶意扫描攻击;ES 的默认分片原则是尽量保证各节点的分片总数一致。而作为日志,一般只有当天的索引是有 IO 压力的。那么新加节点第二天可能因为分片没迁移完(尤其是前面第二条说的,保守的默认配置下),导致 ES 直接把当天的分片全分配到这一台上,然后直接压死。这个需要在索引级别指定单节点最多容许分配几个分片。ES 在分布式结构上跟 MongoDB 有点像,比如 Shard、Replication。但是 ES 的 translog 是 flush 完就删的,不会长期保持。所以在 Recovery 的时候,Replication、Shard 是每次都要从 Primary Shard 完整的走网络再传一次,这点很头大。所以计划内的重启操作,提前先把自动 Allocate 暂停掉,免得浪费流量。ES 的默认 Shard 策略是达到各节点的 Shard 总数均衡,不考虑 IO。而做日志的时候,只有最近的索引的分片才有 IO 压力。所以如果你今天新上一个节点,然后隔天新建索引,一看,所有新分片全给分配到这台上,直接 IO 压垮。这个是有一个配置,针对索引级别的,可以对每个索引指定在单个节点上,最多分配几个分片。如果集群 Scaling 是比较经常见的时期,一定配上这个;ES是 schema-less,不是 no-schema。对同一个索引下,字段名字如果一样,而类型不一样的,他在 indexing的 时候会按照第一个确定下来的类型做处理。比如 indexa/typea 下一个 key:112,indexa/typeb 下一个 key:”abc”。写入都能成功,但是搜索的时候,就全乱套了。对应前面说的不分词字段,Logstash 默认带的 template 会加一个 ignore_above:256,也是就是大于 256 字节的,也跳过 indexing 过程,那么这条数据的这个字段的内容,就即搜不到,也统计不到。只能在搜其他字段的时候看到这个的内容。我们在做 Crash 的日志排序的时候,就碰到这个问题,函数堆栈很容易就超过 256 字节的。所以要单独控制一下,特殊的字段,把这个加大。第1部分:关于现状和规模Q1:现在的集群可以做到多少台机器?A1:我们的集群目前是 26 台 Datanode,跟我聊比较多的携程网的朋友说他们也是二十来台的规模。京东的朋友说有 100 台,不过是分集群做不同业务的,不是 ELK 这种日志类型。国外的话,今年初 ES 开了第一届 Elastic{ON}15 。会上最大的两家,一个是 1000 台(也分集群了),一个是 200 台。不过国外大多是在 EC2 上,所以扩展起来飕飕的。Q2:1000 台那家是分了几个集群。目前最大的集群,多少台机器?A2:会上的说法,是他们的验证结果感觉一百来台的时候,集群内部 Cluster State 的传播,Fault Detect 的 ping 等就慢慢有影响了。所以一般一两百台就一拆。Q3:如果按 Nginx 标准日志格式说的话,你们的 ES 单台目前每秒能接收多少条日志记录?A3:我们 Nginx 日志不是标准格式啊。大概 600B 的样子,单机目前跑 8k 吧,曾经因为故障压死(就是前面说的新加节点那个)到 13k。childe 说他们的 IIS 日志是 200B,单机目前 10k。吴晓刚补充:IIS 日志 200B,单机 12-15k/s 左右。第2部分:和hadoop/Splunk对比Q4:处理日志方面,ELK 这套东西跟 Hadoop 的区别?A4:Splunk 是在语句里生成图表,比如生成 histogram 就是 *** | timechart 这样。而 ELK 是通过鼠标选择的方式来一步步点出来图表。也就是 ES 本 身的查询语句学习成本很低。不像 Splunk 需要记住语法(据说有钱的都是花钱请售后来写复杂的查询语句)。Q5:我公司用的是 Splunk,看看有什么异同?A5:差别的话,Splunk 有很多在入库以后对内容的即时处理。比如 rex 函数等等。而 ES 是尽量在入库前先在 logstash,fluentd,rsyslog 里面处理掉,在入库以后,可以通过 Groovy Scripting 来做一些动作。但是一来这个动作不能充分利用缓存,所以性能比较差,二来 Groovy Sandbox 前段时间被破了安全漏洞,所以默认关掉了。当然我对 Splunk 的了解仅限于免费版和《Splunk 大数据分析》一书。不知道在比较大的量的情况下,Splunk 的这种入库后即时处理上,还能不能做到很好。Q6:ES 的数据只保留 7 天,历史数据如何处理?你们团队纪录了 25 种日志每天处理的源日志多大规模,如何设置过滤规则保证数据的准确性?A6:这就是 ES 跟 Hadoop的区别。这个系统不是用来做离线分析的。所以历史数据,假如你真有说碰到反馈要求十多天前谁谁碰到一个啥投诉,现在来查,那只能去 Hadoop 里扒了。当然可以说 ELK 目前这种分析方式好,我从 HDFS 上读出来数据,写到 ES 里再分析。源日志的问题,ES 是有一定膨胀率的,这个也在通过一些字段优化缩减的方式尽量节省。默认的 logstash template 据说是膨胀到 3 倍。目前我们最小的一个是平均长度 510B 的存到 ES 里这样。Q7:当时你们基于 HDFS 存储了吗?A7:没有,ES 跟 HDFS 是两回事,ES 自己是有自己的数据格式和分布式存储方式的。现在只能 snapshot 到 HDFS。或者通过 es_hadoop.jar,利用 Spark 读取 Hadoop 数据写进 ES 这样,而不能直接把索引建立在上面。第3部分:关于esQ8:你们在运维这套系统时,遇到的最大挑战是什么?怎么克服的?A8:ES 的集群分 Master 和 Data,但是这个跟 Hadoop 的 Master、MySQL 的 Master等,都不太一样。这个 Master 是只负责 Cluster State 的维护。也就是索引的 mapping 是不是有更新、节点是不是有新加入或者退出、请求本身是可以发给任意节点,不必走 Master。但是如果你索引里的数据结构老是变动,ES 是号称 schema-less,只要扔 JSON 就好。但是每次新 Schema 需要 Master 通知所有节点。所以这个其实是一个压力。当然这个不算最大的了。最大的问题是业务方问:为什么我搜不到日志?这依然是 schema-less 的「骗局」。这个 less,不是 no。你可以任意传一个 JSON 进去,但是第一个 JSON 进去了。里面一个叫 a 的字段成立了,这个 schema 关于 a 字段的 mapping 就固定了,不能改了!假如你第一条 “a”:{“b”:”c”} 这样,a 就是一个 Object;第二天发一个 “a”:”d” 过去,就冲突了,写入失败。所以说这是一个 schema-less,不是一个 no-schema 的分布式集群。因为 ES 是一个实时索引,而不是像 Hadoop 那样的文本存储。它需要一个 mapping 来确定做什么样的处理,生成倒排索引、向量表等。只能说,这是实时分析的美好后面一点点小的牺牲了。Q9:使用中日志量大了后,感觉 ES 索引大小会长的很快,有什么优化思路么?A9:你这句话里有一点不明确,是量大了,索引大,要优化。还是索引膨胀得比量大的快,要优化?有膨胀是正常的,默认情况下,除了各字段的 index 还有 _source 的 store 和 _all 的 index。其实单纯 index 还是压缩的。但是这两个默认字段累加上来,就有比较明显的膨胀了。如果你字段不怎么复杂,比如就是访问日志啊这样的,自己完全知道要搜哪个的内容,可以关掉_all,之前直接搜 chrome的,关掉后就必须写 ua:chrome 这样。不指明字段就没结果了。类似的,如果你用 logstash 的默认 template,给每个字段都生成了分词和不分词两个字段,明确知道哪个不用的,也可以自定义 template 节省一个。Q10:对于 ES 内存的调优,你们根据哪些原则或依据来调优?A10:ES 自从有 doc_values 特性以后,对内存就不是要求的那么狠了。所以,用一个支持该特性的新版本,是最大的优化。Q11:你们的 Merge 策略是什么样的?A11:Merge 策略目前我这里没有调整,因为计算了一下,发现只要控制好 refresh 和 flush 的 interval,当前默认的 Merge 策略已经很 OK 了。吴晓刚补充:如果 Merge 导致索引停止,一般是 Segement Merge 的速度赶不上 indexing 创建新的 Segment 的速度。这时候可以看下磁盘 IO 是否有瓶颈,如果磁盘 IO 比较空闲,可以调大 indices.store.throttle.max_bytes_per_sec 这个参数,提高 Merge 速率,默认 20mb 比较保守。Q12:ES 数据节点两台服务器硬盘容量不一致,会有什么隐患,比如一台 8T,一台 20T?网卡你们是用的千兆还是万兆?A12:ES 在存数据的时候,对 data.path 的到 85% 的阈值就不往这个 Path 下分配 shard 了。第4部分:关于logstach和KibanaQ13:你们对历史数据做 Optimize 吗?如果做,一天的数据大约要多久?A13:历史数据做 Optimize,一天的 6 个小时都完不了吧。这个确实很慢。Q14:对于 ES 索引分片的数量调整依据哪些?你们现在的策略是怎样的 ?A14:这个官方有回答的。你先单机单索引单分片做压测,测到有明显性能问题的时候,就知道数据到位了。然后该分片分片,该扩容扩容。我目前最大的一个索引是单分片 50GB 左右。Q15:请教个问题,ES 如何提高插入的性能,我没有使用 logstash,直接构造的 JSON。A15:调 refresh interval 和 bulk size,然后注意返回错误,比如 429。严格的测试方式跟上面一样,单机单索引单分片,测到拐点开始扩容。吴晓刚补充:bulk 的 size 很关键,单次 bulk 数据量控制在 (单条日志 size * 日志条数 ~= 10-15MB)Q16:你们从 logstash 向 ES 里推日志,是推向所有 ES 节点 ?还是只推向固定的几个节点 ?比如只推向 Master 节点?而非 Data 节点 ?A16:有几个 Client 节点。往 Client 节点发。不过据 Verizon 说往 Data 节点更好。因为我这里机位紧张,logstash 跟 ES 不在一个网段,走 HTTP 方式的,所以我个人是考虑 http essay-header parse 也是个资源使用,还是分开吧,反正 Client 节点不用啥好机器。Q17:ES 能否结合监控系统进行报警,是否有过尝试?A17:尝试过结合 Zabbix。我通过 crontab 每 5m 跑 200 个接口的 agg 结果然后发送给 Zabbix 报警,第一个接口需要 5s 响应回来,后面的每个只要 50ms。Q18:千层拼图那里函数调用链怎么出来的?是在 slowlog format 的那定义的么?A18:参考下图:Q19:从网络中看到有人用 geoip 在 ELK 中实现用户地图的展示,不知道您在这方面是否有实现,建议放在客户端 (logstash/fluentd) 来实现?还是在 ES 中实现?A19:geoip 是在 logstash 里解析出来,然后在 Kibana 上做的地图解析。有两种,我不知道你说的那种啊,一种是根据地区代码,一种是根据经纬度的 GeoHash。我这是还自己写了一个插件,调用 maxminddb 的数据,maxminddb 比 geoip 的性能更好一些。Q20:ES 怎么保证索引名称不重复?有什么技术手段么,总不能每次都人工去搞吧。A20:索引名称是在 logstash/flume/rsyslog/fluent 这些工具输入的时候自己定好的。作为日志,一般通用写法是 name-yyyy.mm.dd 这样。Q21:ES 怎么从技术上解决性能问题的呢?有什么瓶颈?A21:性能上的问题,ES 基于 lucene,所以有些是从原理上就没办法的。有些也是针对场景在不断优化。比如 2.0 规划中,有一个就是可以对历史数据去掉 IndexWriter 对象。这样比当前的单 Segment 优化和关闭索引操作又能进一步省出来内存。“ 关于 日志帮 ” 日志帮是一个日志管理工具爱好者交流平台,分享日志管理相关知识,普及日志管理理念。发布日志管理领域的技术趋势,评测分享日志管理领域的开源及商业化产品。公众号ID:rizhibang长按图片中二维码,关注“日志帮”公众号,与众多日志工具爱好者交流。日志帮(rizhibang) 
 文章为作者独立观点,不代表大不六文章网立场
rizhibang日志管理工具爱好者交流平台,分享日志管理相关知识,普及日志管理理念。发布日志管理领域的技术趋势,评测分享日志管理领域的开源及商业化产品。热门文章最新文章rizhibang日志管理工具爱好者交流平台,分享日志管理相关知识,普及日志管理理念。发布日志管理领域的技术趋势,评测分享日志管理领域的开源及商业化产品。&&&&违法和不良信息举报电话:183-
举报邮箱:
Copyright(C)2016 大不六文章网
京公网安备78}

我要回帖

更多关于 游戏王卡片玩法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信