Sharding & Data Distribution
shard key 用于决定文档存于哪个 shard, 分为 range based 和 hash based。以 range based 为例,一个[min, max]范围形成一个chunk,取一个中间的数字将原来的区块分为两个(splite),再把新分出来的区块发送(migration)给其它shard。
继续阅读 »
记录一下Vue安装过程。
安装npm,vue
cnpm install npm -g
cnpm install vue
安装 vue-cli
```
cnpm install --global vue-cli
继续阅读 »
Node.js
官方网站:https://nodejs.org/
Github: https://github.com/nodejs/node
NPM
官方网站: https://www.npmjs.com/
Taobao镜像: https://npm.taobao.org/
Mongodb Driver: NPM 、Github
Mongoose(Mongodb ORM): 官网 、 NPM 、 Github
随机数生成: NPM 、 Github
Node.js反向代理:NPM
HTML
W3School中文: http://www.w3school.com.cn/
Can I Use: http://caniuse.co
继续阅读 »
安装
参考官网的步骤进行安装配置
使用froever-service将系统部署成服务
$cd PATH/node_modules/mongo-express
$sudo forever-service install mongo-express -s app.js
$sudo forever-service delete mongo-express
继续阅读 »
Security
authentication
access control/authorization
encryption
network setup
auditting
authentication
用户信息存储在dbname.system.users, 当dbname为admin时为全局设置,当使用数据库级别设置(即dbname不等于admin时)可以在不同的数据库使用相同的用户名而不产生冲突。
继续阅读 »
之前两个月的时间全组投入到了我们自己的TV launcher的开发, 这算是比较重要的项目, 涉及到公司未来OTT的战略性产品, 所以重视程度比较高。
我负责了轮播服务的后端开发, 当然整个技术栈还是以Tornado/Redis/MongoDB为主。经常听到兄弟们抱怨学习了那么多算法, 进BAT也得面试算法什么的, 有个啥子用, 撸了这么多年代码, 用不到啥算法, 不也照样撸的风声水起吗。哥下面就小小展示一下, 其实算法这东西是有用的, 你带着算法和数据结构的一些思想思考问题, 和你仅仅凭经验写东西, 结果是很不一样的。
所谓轮播:指的是像电视台那样的一天24小时的滚动播放,由服务端生成播放列表(频道\频道的视频列表等), 并计算
继续阅读 »
Nodejs爬取蚂蜂窝文章的爬虫以及搭建第三方服务器
more
如题,本项目用Nodejs实现了对蚂蜂窝网站的爬取,并将数据储存到MongoDB中,再以Express作服务器端,Angularjs作前端实现对数据的托管。
本项目Github地址:https://github.com/golmic/mafengwo-spider
本项目线上地址: http://mafengwo.lujq.me
本文介绍其中部分的技术细节。
获取数据
打开蚂蜂窝网站,发现文章部分的数据是用Ajax获取的,包括分页也是,所以查看一下实际的请求路径,为http://www.mafengwo.cn/ajax/ajax_article.php?start=
继续阅读 »
Tornado本身的设计目标是单线程异步非阻塞,要想很好的发挥它的性能最好使用异步IO,并且Tornado本身也提供了异步的AsyncHttpClient的实现,配合gen.coroutine和yield,可以让请求异步执行从而不阻塞当前线程,对于单线程服务器来说,阻塞(blocking)和同步的sleep这种会挂起线程的动作都是服务器的噩梦,因为只有一个线程,所以任何等待都会影响服务器对于其他请求的处理。
异步非阻塞对于第三方IO是http请求的情况还好,毕竟可以使用Tornado提供的异步实现,但是对于有些数据库的IO,则需要异步库的支持,比如针对MongoDB的Motor等。但是第三方异步库的质量也是参差不齐,在实际的工程中
继续阅读 »
聚合的基础教程请看 官方文档: https://docs.mongodb.com/manual/aggregation 基本上都能看懂, 但 mongo 聚合难就难在 对于初学者, 很容易迷失方向, 不知道有什么东西可以用, 以及该如何用。
继续阅读 »
声明:
原中文链接:http://www.vaikan.com/engineering-managers-should-code-30-of-their-time/
原英文链接:http://www.drdobbs.com/architecture-and-design/engineering-managers-should-code-30-of-t/240165174
转载请注明。
本文的作者Eliot Horowitz是MongoDB的创始人和技术总监。
在一个科技公司里,软件技术经理用在编程上的时间应该不低于总工作时间的30%。无论是管理一个团队,还是一个分部,还是整个公司,当技术经理用在编程上的时间低于30%
继续阅读 »