UfqiNews自上线以来不断更新、优化、升级。作为一款带来全新新闻阅读体验的资讯类应用,其人气日趋成熟,浏览量也与日俱增。UfqiNews有福消息近期的升级改进包括以下几个方面。1.UI调整优化,页面导航清晰易读改进页面导航、调整优化清晰的跳转说明:↗阅读全文↘下一篇↖返回首页↖返回首页↘下一篇↗阅读全文UfqiNews利用各种方向箭头,就像在物理世界中导航一样,非常简单。而且,在iOS、Android、WIndows等不同的操作系统平台上,不同的箭头显示带有各自平台的UI特点,更好的融入了本土风格。.2.+分享功能,简单易用的新闻分享为了方便用户分享页面,特别是分享到各种社交网站,UfqiNews增加了ShareThis分享按钮。用户可以使用页面底部的ShareThis轻松分享当前页面。+单击或Ctrl+D52条转发通过ShareThis按钮,您可以直接链接到数十个社交网站。3.调整缓存策略以更快地加载页面。Linkprefetch/preloadUfqiNews一直是我们技术团队在有限的计算资源和带宽资源下尽快加载渲染页面的努力方向。UfqiNews近期在这方面的主要努力包括:1)改进资源文件:图片、样式表CSS、脚本程序Script的缓存机制,让这些资源只需要第一次从服务器下载并缓存到本地在一个session周期内,在此期间,后续页面加载时,这些资源文件会自动从浏览器的本地缓存中加载,而不用每次都从服务器下载。这将大大提高页面加载速度。在资源文件的HTTP返回中,添加以下HTTP标头。HTTP/1.1200OKDate:Sat,14Sep201901:36:17GMTLast-Modified:Mon,30Jul201808:59:19GMTETag:"e2a-57233ad3e67c0”Cache-Control:max-age=604800Expires:Sat,21Sep201901:36:17GMT2)使用linkpreload/prefetch命令预加载在支持preload命令的浏览器中,UfqiNews使用linkpreload的/prefetch命令自动加载下一页或要浏览的资源。例如,在列表页,自动加载下一页;在新闻详情页,自动加载下一条,以便用户翻阅时下一页,秒打开页面4.重构爬虫引擎,让爬取更节能在生产端,UfqiNews有一个设计复杂的新闻爬虫系统,主要负责爬取当地最热门的新闻以及各大新闻网站的时事新闻,通过自然语言处理技术对检索到的新闻页面内容进行进一步分析,归类为相应的类别,以供进一步阅读、调用和使用。本页面抓取分析系统是一个分布式计算系统。其内容传输最早的设计是依赖NFS系统作为页面文件的托管服务。(UfqiNews页面爬虫系统/爬虫系统)UfqiNews的分布式系统支持将本爬虫系统部署成一主多从的结构,可以同时启动N个Node,每个Node可以启动M个进程。这样就形成了强大的页面爬取能力,可以及时并行处理N*M个新闻页面。与所有分布式系统一样,UfqiNews需要一种机制或队列来保证数据的一致性。UfqiNews依靠NFS网络文件共享机制,将内容和页面队列写入一个NFS文件中,并顺序读取,从而保证了页面读取的一致性。在单个NOde上并行运行M个进程时,NFS和内容读写磁盘系统都需要文件IO来实现。偶尔,当我们观察到VmWare虚拟机运行的功耗高于WindowsTask时,Manager中的“PowerUsage”和“Powerusagetrend”都是“Veryhigh”。进一步分析发现,非常高的功耗是由于UfqiNews的生产爬虫系统。(UfqiNews生产系统功耗分析)我们认为这种功耗是不可接受的,既不绿色也不环保。而其背后更深层次的原因也很容易理解。频繁的文件IO读写访问必须频繁调用设备驱动程序来执行实际的磁盘操作。在此之前,我们在回顾现在的设计时,也觉得依赖NFS并不是长久之计,也不是最好的选择。我们只是觉得我们应该改进和优化它。这一次,我们发现,UfqiNews如此耗费精力,成为压死骆驼的最后一件事。一根稻草,UfqiNews的文件IO和它的队列必须进一步优化和改进。在最早的设计中,我们希望构建一套网络服务来存储UfqiNews运行过程中的数据,类似于AEDServer的设计和运行。这次在重构和设计UfqiNews的时候,我们发现问题的重点在于某个服务对文件IO的接管,即无论是页面队列还是新闻页面的内容,写入到文件保存在内存中或者某处,中间服务使用时,用完可以删除。在这种情况下使用AED服务器是合适的。在AEDServer中存储页面内容或页面队列即可满足要求。同时也可以看出,类似的需求与常规的“缓存”服务类似。按照这个思路,我们考虑使用Memcached或者Redis来接管真实的文件IO,或许可以解决目前的问题。所以我们用这个方法来优化和完善UfqiNews爬虫系统。每当需要读写文件IO时,就改为读写Memcached的服务。对于页面的内容,可以直接访问。对于页面队列,需要使用数组的形式动态更新内容,放入新生成的条目,丢弃处理过的条目。经过几周的断断续续的修改和调整,我们逐渐将UfqiNews爬虫系统中进程内容的文件IO全部替换为读写Memcached,Ufqinews运行时的功耗也从“非常高”逐渐降低。很高——高——中等——低——很低虽然目前还没有量化数据,但Windows系统中这种功耗的5级划分应该是有一定依据的,属于次优化调整也清楚地显示出来。作为软件编程技术人员,我们一直在谈论算法改进和程序优化,但很少看到改进前后效果如此立竿见影的差异,体验感不是很强。5.+静态内容链接,优化SEO,对搜索引擎索引更友好。页面链接地址进一步调整,主页面增加如下两个快捷链接:1)列表页面list.123,456.html,指向原来./?pnskwordid=123,4562)的内容详情页,page.1234.html,指向原来的./?mod=rdr&pgid=1234,经过改进后伪静态页面会根据搜索引擎抓取分析。UfqiNews在这里呈现热点和全局,维度之间的疑点一览无遗;此处,对表情进行了细致的分析,视野中可以看到脉络清晰的故事情节。UfqiNews带来全新的信息阅读体验,没有信息过载,也没有信息茧房。在寻求最大的社会共识和满足成千上万人之间,在满足广泛研究和追求技术专长之间取得平衡。媒体将插上人工智能的翅膀如虎添翼,它将随着信息飞翔。新闻爱好者的良心之选,匠心之作。UfqiNews呈现全球热点,所有有趣点一目了然。信息在这里组织,每一个细节都有一个清晰的故事情节。UfqiNews带来全新的阅读体验,没有信息过载,没有信息作茧自缚,在寻求最大社会共识和满足千人千面的平衡,在满足广泛猎奇和追求专业化之间取得平衡行业。媒体正在诞生,人工智能的翅膀将更加强大,信息将比以往任何时候都飞得更快。更好的新闻阅读器选择和他们的工作艺术。-R/S2SM
