上文说到如何利用node-mapnik架设OpenStreetMap瓦片服务,解决了有没有的问题.然而这个服务还是比较孱弱,主要表现在以下几个方面: 1. Node.js只能使用CPU的一个核,不能有效发挥服务器的多核优势: 2. 前端使用了一台TileStrata服务器,即无法实现负载均衡,也无法实现服务主备冗余: 3. 后端使用了一台PostgreSQL,和前端一样,无法达到高性能和高可用性: 4. 在Node.js和PostgreSQL之间没有使用连接池,造成数据数性能低下: 针对这些问题…
最近依然还是有点小忙,只能挤点时间来学习点,先解决有没有的问题,再解决好不好的问题:) 本文将承接上文<使用node-mapnik生成openstreetmap-carto风格的瓦片>的内容,用较为健壮的方式发布openstreetmap数据和样式的瓦片服务,在文章最后还提供手动切瓦片缓存的方法. 一.部署瓦片服务环境 Node.js未来会怎样,很多人都在思考,但是它的生态系统实在太好了,这在一个.NETer眼里简直就是无穷尽的宝藏啊! 今要使用的就是Node.js平台上一个运用node-ma…
转载请注明作者think8848和出处(http://think8848.cnblogs.com) 在前面几篇文章中,我们讲到了部署Postgresql,部署PostGis,部署GeoServer以及部署osm2pgsql并导入openstreetmap数据,现在到了发布和呈现OSM数据的时候了,今天我们先来个简单的,使用开源的样式文件呈现地图,本文主要参考了这里. 1. 创建图层数据表 到目前为止,chinaosmgisdb中包含了planet_osm_line,planet_osm_poin…
MaxCompute 是阿里EB级计算平台,经过十年磨砺,它成为阿里巴巴集团数据中台的计算核心和阿里云大数据的基础服务.去年MaxCompute 做了哪些工作,这些工作背后的原因是什么?大数据市场进入普惠+红海的新阶段,如何与生态发展共赢?人工智能进入井喷阶段,如何支持与借力?本文从过去一年的总结,核心技术概览,以及每条技术线路未来展望等几个方面做一个概述. BigData 概念在上世纪90年代被提出,随 Google 的3篇经典论文(GFS,BigTable,MapReduce)奠基,已经发展…
前言        Android系统与其他操作系统有个很不一样的地方,就是其他操作系统尽可能移除不再活动的进程,从而尽可能保证多的内存空间,而Android系统却是反其道而行之,尽可能保留进程.Android这样设计有什么优势呢?又是通过怎样的方法来管理这些被保留的进程的呢?Android用户又该如何正确使用手机从而更好发挥Android系统所特有的优势呢?本文将一一为您解开这些谜团. 本文的主要内容如下:            一.Android进程管理的特殊设计 Linux系统对进程的管理…
前言 Android虚拟机的使用,使得android应用和Linux内核分离,这样做使得android系统更稳定可靠,比如程序中即使包含恶意代码,也不会直接影响系统文件:也提高了跨平台兼容性.在Android4.4以前的系统中,Android系统均采用Dalvik作为运行andorid程序的虚拟机,在android发展中具有举足轻重的地位,而Android 5.0及以后的系统使用ART虚拟机取代Dalvik,在性能上做了很大的优化.本文将对这两款虚拟机做一些介绍,主要内容如下: 阅读本文,建议结…
序言        笔者从事Anroid开发有些年头了,深知掌握Anroid性能优化方面的知识的必要性,这是一个程序员必须修炼的内功.在面试中,它是面试官的挚爱,在工作中,它是代码质量的拦路虎,其重要性可见一斑.在团队中,性能优化的工作又往往由经验丰富的老师傅来完成,可见要做好性能优化,绝不是一件容易的事情. 性能优化方面涉及的知识点比较广,有理论基础知识,也有实际操作技能,笔者将通过一系列的文章来进行整理,将主要包括Java虚拟机.内存分配.垃圾回收,android虚拟机.进程管理.内存优化.…
1.前言 本文要分享的消息推送指的是当iOS端APP被关闭或者处于后台时,还能收到消息/信息/指令的能力. 这种在APP处于后台或关闭情况下的消息推送能力,通常在以下场景下非常有用: 1)IM即时通讯聊天应用:聊天消息通知.音视频聊天呼叫等,典型代表有:微信.QQ.易信.米聊.钉钉.Whatsup.Line: 2)新闻资讯应用:最新资讯通知等,典型代码有:网易新闻客户端.腾讯新闻客户端: 3)SNS社交应用:转发/关注/赞等通知,典型代表有:微博.知乎: 4)邮箱客户端:新邮件通知等,典型代表有…
1. Hadoop 的神话正在破灭 IBM leads BigInsights for Hadoop out behind barn. Shots heard IBM has announced the retirement of the basic plan for its data analytics software platform, BigInsights for Hadoop. The basic plan of the service will be retired in a mo…
“你听说过动感影集么?” 动感影集是QQ空间新功能,可以将静态的图片轻松转变为动态的视频集,且载体是HTML5(简称H5)页面,意味着可以随时分享到空间或朋友圈给好友欣赏! 移动端区别于PC年代的相册视频,由于设备性能限制,每一个动画细节都需要认真优化,今天就来说说动感影集开发过程中的动画性能检测与优化的问题. 1.先利其器 – Chrome Timeline&Rendering 性能分析前,我们先看看工具.Chrome浏览器带来的两个工具是发现性能问题的利器,它们是Timeline和Rende…
VFP的数据策略:基础篇 概述 在VFP应用程序中,有很多方法可以访问非VFP数据(如SQL Server):远程视图.SQ LPassthrough.ADO.XML……本文件将审查不同机制的利弊,并讨论何时适合使用特定策略.我们还将研究VFP中一种令人兴奋的新技术CursorAdapter,它将使访问远程数据比早期版本更容易. 介绍 越来越多的VFP开发人员将数据存储在VFP表以外的其他地方,如SQL Server或Oracle.这有很多原因,包括VFP表的脆弱性(感知的和实际的).安全性.数…
本篇文章分为三部分,首先简单介绍一下分析的工具Windbg,其次针对一个网关服务性能问题进行逐步刨析,最后针对性能问题的分析总结. 一 Windbg介绍 1.Windbg是个非常强大的调试器,它设计了极其丰富的功能来支持各种调试.针对几个常用的应用场景进行了对比分析 支持的类型 说明 应用场景 用户态调试 附加进程的方式调试.调试器与被调试程序建立联系,程序像调试器发送暂停和恢复调试指令. 类似VS的单步调试,可以是设置断点单步调制 内核态调试 用来在本地和远程计算机调试内核 1.在系统启动的早…
这篇文章主要介绍了MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划的相关资料,需要的朋友可以参考下 一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存在system.indexes 中,且默认总是为_id创建索引,它的索引使用基本和MySQL 等关系型数据库一样.其实可以这样说说,索引是凌驾于数据存储系统之上的另一层系统,所以各种结构迥异的存储都有相同或相似的索引实现及使用接口并不足为 奇. 1.基础索引 在字段age 上创建索引,1(升序);-…
面对成百上千的生产系统用户操作数据接入落地,你是否厌倦了每次机械编写打包解包的代码?对一次性接入多个数据的时候,还要对不同人联调,费时费力,你是否还会手忙脚乱,忙中不断出错?是否当数据出问题了,用的时候才发现,数据已经损失大半,产品/领导压力巨大,费一天劲才能定位问题,关键是下次还是不能实时发现,快速定位. 怎么办?GAS(通用解析服务)就是为了解决上述问题,结合即通多年数据方案实践,提出的一个数据接入的组件.一杯清茶,轻点鼠标,轻松面对大批数据接入问题. GAS在ADs中的位置 图 1  AD…
本文分为两个问题: 第一,碎片是什么:第二,碎片怎么处理: 现在,来找解决这两个问题:  一.碎片是什么 说到碎片,就要提到索引了,索引用着挺爽的啊!是的,一旦索引建立,我们搜索数据的效率就提高了:然后我们就要想一想了,索引将我们的数据排序了,不管聚集还是非聚集索引总归是将数据排序了.这些数据给排序了,那么问题来了,我们个这些已经排序的数据进行插入操作会产生什么后果?人家本来好好排着队呢!插队的来了! 假设一群很瘦的人在排队,突然插入一个胖子,且不说胖子捣乱了正常的排序规则,胖子插进队伍中,一个…
本文翻译自ITU-T的Technical Paper:<How to increase QoS/QoE of IP-based platform(s) to regionally agreed standards>(2013/3/1).这是其第七章的一部分,给出了IP服务性能模型.PS:在此感谢一位师弟的翻译. 基于IP的平台通信服务通常以两种方式进行:垂直和水平方式.通过模型理解这两个不同方式的性能特点对于确定服务性能非常重要. 分层(垂直)模型 IP服务性能的分层模型很简单,这受益于IP的…
前言 只要是面试高级工程师岗位,Android跨进程通信就是最受面试官青睐的知识点之一.Android系统的运行由大量相互独立的进程相互协助来完成的,所以Android进程间通信问题,是做好Android开发高级工程师必须要跨过的一道坎.但是,我们是否真的清楚,Android中都有哪些方式实现跨进程通信呢?这些方式都有哪些优缺点?如何选择这些通信方式?Binder是什么?为什么要引入Binder?Binder是这么样实现跨进程通信的?AIDL是什么?AIDL和Binder又有什么关系呢?....…
在上一篇日志([朝花夕拾]Android性能篇之(二)Java内存分配)中有讲到,JVM内存由程序计数器.虚拟机栈.本地方法栈.GC堆,方法区五个部分组成.其中GC堆是一块多线程的共享区域,它存在的作用就是存放对象实例.本节中所要讲述的各种场景,就发生在这块区域,垃圾回收也主要发生在GC堆内存中.本章内容为高质量面试中几乎是必问的知识点,尤其是其中GC Root.分代算法.引用类型等方面的知识点,可以很好地体现程序员的内功.本文主要是在相关文章的基础上进行搜集和整理而成,也包含了自己的一些理解和…
一. 开发中常见的性能问题 我们在日常开发过程中,由于一些不好的习惯,经常会导致所写的代码性能低下,却毫无发觉,下面就总结一下常见的一些性能问题. 1. 真假分页 ① 假分页: db.xxx.toList().Skip(2).take(4) .  ② 真分页:db.xxx.Skip(2).take(3).toList() . 2. 合理的使用EF的数据加载方式 EF的加载方式有:立即加载.延迟加载.显示加载. 详见: ①: 第五节: EF高级属性(一) 之 本地缓存.立即加载.延迟加载(不含导航…
Rsync数据同步服务 Rsync软件适用与unix/linux/windows等多种操作系统平台 Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具,可以实现删除文件或目录的功能 它的功能可以排除以后在复制,可以保持原文件目录的权限,时间,软硬链接,属主,属组等属性均不改变也就是cp -p的功能 增量同步就是只同步变化的数据,可以通过ssh远程数据传输,也可以通过socker进程数据传输,支持匿名或加密数据传输 Rsync三大类:1,本地间类似cp命令…
提示框,菜单,数据存储,组件篇 Toast Toast.makeText(context, text, 时间).show(); setDuration();//设置时间 setGravity();//位置 获取: 添加toast.getView(); imageView添加到toast中,addView(); LayoutInflater inflater = LayoutInflater.from(this); View toast_view=inflater.inflate(R.id.,nu…
地形瓦片类TerrainTile 用来抽象封装用户漫游中所请求的地形瓦片数据类型. 地形瓦片服务类TerrainTileService提供了从BIL(Binary Interleaved by Line,按行交叉存储二进制文件)地形文件获取高程的功能.该类主要是用来返回用户漫游中所请求的地形瓦片对象.和影像数据类似,也是先判断所需要的高程数据是否存在,高程数据存储在类TerrainTile类中,TerrainTileFilePath是当前高程数据路径,if(!File.Exists(Ten'ai…
摘要: 什么是BaaS? BaaS(Backend as a Service)是一种新型的云服务,旨在为移动和Web应用提供后端云服务,包括云端数据/文件存储.账户管理.消息推送.社交媒体整合等.BaaS是垂直领域的云服务,随着移动互联网的持续火热,BaaS也受到越来越多的开发者的亲睐.它作为应用 什么是BaaS? BaaS(Backend as a Service)是一种新型的云服务,旨在为移动和Web应用提供后端云服务,包括云端数据/文件存储.账户管理.消息推送.社交媒体整合等.BaaS是垂…
昨天在园子里发了一篇如题的文章EF大数据批量添加性能问题,就引来一大堆的吐槽,我认为知识就应该这样分享出来,不然总以为自己很了不起:再说说昨天那篇文章,很多自认为很牛逼的人都评论说把SaveChanges()放在for循环外面,我不知道他们有没有亲自去尝试过,反正我尝试了,然而并没什么卵用. 下面是我按照他们说的进行更改后的代码: public ActionResult Add(ItemDetails entity) { var sw = new Stopwatch(); ; //var cou…
SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第三篇) 最近真的没有什么精力写文章,天天加班,为了完成这个系列,硬着头皮上了 再看这篇文章之前请大家先看我之前写的第一篇和第二篇 第一篇:SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第一篇) 第二篇:SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第二篇) 1.统计信息的含义与作用 为了以尽可能快的速度完成语句,光有索引是不够的.对于同一句话,SQLSERVER有很多种方法来完成他. 有些方法适合于数据量比…
背景 前段时间我们的服务遇到了性能瓶颈,由于前期需求太急没有注意这方面的优化,到了要还技术债的时候就非常痛苦了. 在很低的 QPS 压力下服务器 load 就能达到 10-20,CPU 使用率 60% 以上,而且在每次流量峰值时接口都会大量报错,虽然使用了服务熔断框架 Hystrix,但熔断后服务却迟迟不能恢复.每次变更上线更是提心吊胆,担心会成为压死骆驼的最后一根稻草,导致服务雪崩. 在需求终于缓下来后,leader 给我们定下目标,限我们在两周内把服务性能问题彻底解决.近两周的排查和梳理中,…
VFP的数据策略:高级篇 引语 在“VFP中的数据策略:基础篇”一文中,我们研究了VFP应用程序中访问非VFP数据(如SQL Server)的不同机制:远程视图.SQL Passthrough.ADO.XML和VFP 8中添加的CursorAdapter类.在本文中,我们将更详细地讨论CursorAdapter,并讨论可重用数据类的概念.此外,我们将简要介绍新的XMLAdapter基类,并了解它如何帮助与其他源(如ADO.NET)交换数据. CursorAdapter 在我看来,CursorAd…
摘要:MySQL JDBC抽取到底应该采用什么样的方式,且听小编给你娓娓道来. 小编最近在云上的一个迁移项目中被MySQL抽取模式折磨的很惨.一开始爆内存被客户怼,再后来迁移效率低下再被怼.MySQL JDBC抽取到底应该采用什么样的方式,且听小编给你娓娓道来. Java-JDBC通信原理 JDBC与数据库之间的通信是通过socket完,大致流程如下图所示.Mysql Server ->内核Socket Buffer -> 客户端Socket Buffer ->JDBC所在的JVM JD…
简单的c# TCP通讯(TcpListener) C# 的TCP Socket (同步方式) C# 的TCP Socket (异步方式) C# 的tcp Socket设置自定义超时时间 C# TCP socket发送大数据包时,接收端和发送端数据不一致 服务端接收Receive不完全 在发送端,一次发送200k个字节,在接收端,一次接收200k个字节, 但是在接收端,经常会出现 socket.receive 接收不全的情况 , 偶尔接收的包也是正常的,用Wireshark抓包发现,每次发送都分成…
概要说明 电子枢纽全称国家交通运输物流公共信息平台,主要提供物流及生产企业进行物流相关数据交换的标准和API,详细介绍可参考其官网www.logink.org,本文假定阅读者对该平台已有了解,并已成功申请了相应的帐号和数据交换服务. 信用中心是电子枢纽众多数据服务中的一个,提供物流参与者信用信息的上传和查询,包括运输车辆.从业人员等.官方的示例和介绍大多以Java为主,.net的非常少,希望本文可以帮助.net开发人员快速掌握数据交换方式. 电子枢纽的数据服务分为两种,一种称为数据交换,另一种称…