All posts by dotte

gradle实践

1、安装gradle

La disfunción eréctil puede causar un impacto significativo en la calidad de vida de una persona, afectando no solo su salud física, sino también su bienestar emocional y relaciones interpersonales. Sorprendentemente, muchos hombres no buscan ayuda debido a la vergüenza o el estigma asociado. Sin embargo, es importante destacar que hay tratamientos disponibles y que algunas opciones, como los medicamentos, pueden ser perjudiciales si no se utilizan adecuadamente. Por ejemplo, algunas personas consideran alternativas como el uso de ciertos antidepresivos, entre ellos el tofranil, que a menudo puede estar disponible para aquellos que deciden “. Este enfoque puede ofrecer resultados positivos, aunque siempre es recomendable consultar a un médico antes de comenzar cualquier tratamiento. La concienciación y la educación sobre este tema son cruciales para ayudar a quienes lo padecen a buscar las soluciones adecuadas.

Un dato interesante es que muchos hombres pueden experimentar problemas de erección en algún momento de su vida, lo cual puede ser influenciado por factores físicos y emocionales. En algunos casos, se ha observado que medicamentos como el tofranil pueden tener un impacto en la función sexual, por lo que es importante consultar a un médico antes de decidir “. La salud del corazón, el estrés y otros problemas emocionales también pueden contribuir a este tipo de condición.

2、初始化项目

gradle init (在当前项目下用命令行执行,需要确保gradle加入到环境变量)

3、设置依赖库位置,可以设置1个或多个

repositories {

// You can declare any Maven/Ivy/file repository here.
mavenCentral()  //mvn仓库
maven {url “https://repo.spring.io/libs-release”}
jcenter()  //
flatDir(dirs: “$projectDir/WebContent/WEB-INF/lib”)  //本地包
flatDir(dirs:”D:\\java\\tomcat8\\lib”)

}

4、设置项目依赖包

dependencies {
def springVersion = ‘4.1.1.RELEASE’
compile(
‘org.apache.commons:commons-lang3:3.1’,
‘com-common:cpus-common’,

/* spring */
“org.springframework:spring-context:${springVersion}”,
“org.springframework:spring-beans:${springVersion}”,
“org.springframework:spring-web:${springVersion}”,
“org.springframework:spring-webmvc:${springVersion}”,
“org.springframework:spring-tx:${springVersion}”,
“org.springframework:spring-context-support:${springVersion}”,
)
}

5、支持的插件

apply plugin: ‘java’
apply plugin: ‘war’
apply plugin: ‘jetty’
apply plugin: ‘idea’
apply plugin:’eclipse’
apply plugin: ‘maven’
apply plugin: ‘eclipse-wtp’
————————————–
apply plugin: ‘application’
apply plugin: ‘spring-boot’

6、查看可执行的任务

gradle tasks

7、解决编码错误的问题

[compileJava, compileTestJava]*.options*.encoding = ‘UTF-8’

8、不符合gradle规范(非webapp)的Web项目需要指定webAppDirName

webAppDirName = ‘WebContent’

9、打包时包含所有的xml文件(如果不加如下内容则不会打包在内)

jar {
from(‘src/main/java’) {
include ‘**/*.xml’
}
}

10、对于自运行的applicaiton,需要设置执行入口(main方法所在类)

mainClassName = ‘com.canon.cpus.Application’

11、常用的任务

gradle assemble (runs only the tasks required to create the jar file)
gradle build (runs the full build)
gradle clean test
gradle clean integrationTest
gradle run
gradle distZip (creates a runnable binary distribution that is packaged into a .zip file)
gradle distTar (creates a runnable binary distribution that is packaged into a .tar file)
gradle bootRun
gradle jettyRun
gradle eclipse

12、应用spring-boot插件(apply plugin: ‘spring-boot’)需要增加:

buildscript {
repositories {
jcenter()
}
dependencies {
classpath(
‘org.springframework.boot:spring-boot-gradle-plugin:1.2.3.RELEASE’,
‘org.unbroken-dome.gradle-plugins:gradle-testsets-plugin:1.0.2’
)
}
}

13、应用jetty插件(apply plugin: ‘org.akhikhl.gretty’)需要:

buildscript {
repositories {
jcenter()
}
dependencies {
classpath ‘org.akhikhl.gretty:gretty:+’
}
}

Photo

TW034988 TW034990

在线黑科技小工具

百度脑图



百度脑图是一个在线的思维导图工具,当你创建一个节点,点击右键,就可以选择创建下级,同级的节点,当然也有很多很方便的快捷键,Enter 创建下级节点,Tab 创建同级节点,还可以标注优先级和进度。并且你所有的数据都会保存在云端,你还可以和好友一块分享。

 


短网址



短网址是一个将长链接生成短的网址的工具。你只需要长链接,它就会自动生成一个很短的链接。 你还可以自定义后缀,很人性化。它汇集了多家的短链接服务,你可以随意选择,有渣浪的,企鹅的等等。

 


TinyPng



TinyPng 是一个在线图片压缩工具,它支持PNG 和JPG 两种格式,有时候在网上找的图片可能特别大,这就很尴尬啦,有了这个小工具就衣食无忧了,同时它还有Photoshop 插件,这对设计师来说是福音啦,再也不会被开发的小伙伴追着说:图怎么这么大啦?而且它的压缩比例很大,但是图片也依然是高清的,这一点是很难得的。

 


新浪微博图床



新浪微博图床是一个免费的Chrome 图片上传插件。你只需将图片拖拽到网页上,就会自动上传图片,它会将图片上传到新浪微博的服务器,然后将上传后的图片网址返回给你,你只需要复制链接就可以引用。但是需要你的微博是登录的状态。而且你还可以批量选择上传,而且还可以选择不同的尺寸,你还可以轻松插入网页,Markdown 等等。


PS:当然上传的图片都是公开的,所以请勿将私有的图片使用它来上传。

 


草料二维码



草料二维码是一个二维码在线服务网站。你可以使用它制作文本,网址,图片,微信等二维码,你还可以用它来制作名片。还可以自定义,logo,颜色和各种样式。它还支持浏览器插件,你可以随时复制文本或者超链接,来创建二维码。

 


Slides



Slides 是一个在线制作幻灯片网站。它简洁的操作界面,让你一看就可以学会。你不需要下载任何东西,在线制作,所有东西都会保存在云端。它同时适配电脑,平板和手机。 还可以导出为PDF和网页版,让你离线也可以随时演示浏览。

 


创客贴



创客贴是一款极简的平面设计工具,你可以使用它来制作海报,PPT,策划活动等等,它内置了精美、丰富的模板,供你挑选使用,它还为你提供了很多免费高清图片,自定义字体,当然你还可以将自己的素材上传到云端,使用它不像PS 那么复杂,只需要引导几步,就可以上手使用,丰富的内容,你简单拖拽记下就可以制作完成;同时它还支持输出PNG,PPT,PDF 格式。

 


一键生成



一键生成是一个自动生成PPT 的设计工具。它内置很多精美的模板,你只需要修改文字就可以自动生成属于自己的幻灯片,名片,海报等等。而且它还能云端自动处理,自动排版,傻瓜式操作,基本没有什么门槛。而且它不仅有在线版,还有客户端版,让你在手机上也可以随时制作自己的PPT。它多平台同步,可以直接导出JPG,PDF,PPTX 文件格式。

 


SmallPDF



SmartPDF 是一个功能强大的PDF 在线工具。它不仅可以压缩,合并,旋转,分割PDF,还可以解密加密PDF。还可以将Word,Excel,图片和PDF 相互之间转换。总之就是关于PDF 的各种需求,基本都能满足你,而且还支持中文。

 


ConvertIO



ConvertIO 是一个在线的多媒体转换工具。比如你想把视频转换成音频,视频转换成Gif,这些都是OK 的。它不仅支持从本地上传,还支持网络的资源链接,同时还支持从Dropbox 和Google Drive 中的选择文件。它还支持各种办公文档之间的转换,还支持各种压缩文件之间的转换。它也会保存最近几天的转换记录。它自己介绍是说:支持11727 种文件的不同转换,强大的不要不要的。

 


ProcessOn



ProcessOn 是一款免费的在线思维导图工具.它内置了多种类型的流程图,你还可以和朋友一同协作、同时修改完善。而且上面还有不同公开的小组,一同探讨学习.当然你自己也可以创建私密的小组,上面还有公开的高质量的思维导图,我们可以来参考使用。

 


文图



文图是一款在线编辑的数据可视化工具。它支持上百种图标类型,文字样式,而且还有丰富的模板。只需双击就可以编辑,随时随地所见即所得的显示。它还会自动保存备份,还可以二维码分享,并且支持图片,PDF 格式输出。在所有的平台都能自动适配显示。

 


infogram



infogram 是在线图标制作工具。和上面所说的文图类似。它因为是国外的网站,所以速度不是很理想,但是还是很强大。你使用它可以随意添加文本,表格,各式的图标,它内嵌各种图表,像地图,条形图,柱形图,饼图等等,它还内置了很多精美的图片,你还可以随时添加图片和网盘里的文件。 还可以随时将图表保存为JPG,PDF,GIF 等等格式。但是基本版功能较少。

实用教程:如果战争爆发世界大乱,你能做什么

最近半岛局势高度紧张,战争距离我们似乎很近。虽然我们都不希望战争爆发,但如果真有那一天,甚至世界大乱呢?我们会应对吗?怎么做才能存活?如果你完全没有头绪,请继续阅读下文。

一、如果你还有时间做准备(网络还在运行)

1.
储存可以维持90天的物品。当整个国家或者世界瓦解时,恢复秩序需要很长一段时间。90天的物资储备大概可以让你存活下来,直到社会安定。当灾难来临之前,你的准备做得越充分越好。做准备时要考虑两个因素:留住生命和存活下去。
为留住生命(重中之重),你可以考虑准备下列物资:
几壶水
罐装食物
密封包装的财物
毯子和枕头
药物
武器
刀具
保暖衣物
行李袋
想要存活下去的话,准备下列物品:
电池
手电筒
火柴
锅(做饭烧水用)
餐具(盘子,杯子,勺子,刀叉,筷子)
绳索
地图
记号笔
换洗衣服
开罐器
打火机
野炊炉子和丙烷
斧头
急救手册
墨镜
胶布
荧光棒
靴子
收音机和对讲机
其他舒适物品

2.
准备一个紧急工具箱。用来防备其他人或者野兽袭击,也用来照顾自己的身体健康。 紧急工具箱里应该有下列物品:
创可贴
纱布
医疗胶布
止痛药布洛芬
醋氨酚
抗组胺剂
阿司匹林
通便药(泻药)
碘酒
洗手液
镊子
安全别针
体温计
超强力胶水
记住,你可能会遇到各种状况,比如割伤,痢疾等。那时候医院不再运营,你只能靠自己了。如果你的家人中有人有某种特殊疾病,也要备好专门治疗此病的必备药物。

3.
人要新陈代谢,所以要备好下列用品:
卫生纸
女性生理用品
牙膏牙刷
塑料袋和封口用的绳子
铁铲
漂白剂
肥皂和洗发水

4.
设置一个通讯系统。如果你和你的朋友都有收音机或者对讲机,设定一个特定的频道或者频率,到时候通过收音机或者对讲机找到对方。
备好电池。如果你有一个爱人,那么一定确保她也有一个收音机或者对讲机。

如果无法通过收音机或者对讲机联络对方,那么要想其他办法。这时候你的记号笔就派上用场了。如果世界大乱,而你偏偏需要出门,一定要写下你何时出门,要去何方,何时归来。

5.
使用燃烧柴油的车辆。储藏汽油是没有用的,它里面的化学物质会很快被降解。世界大乱的时候,加油站应该不会有汽油,不过柴油说不定会有。而且,很多军队柴油机也可以依靠其他燃料运行,比如腐烂的煤油甚至发酵的树叶。所以最好配备一个可以使用多种燃料的车。
车里也要配备一个紧急工具箱。没有最周全的准备,只有更周全的准备。
如果可以的话,最好备一个自行车。

6.

学会射击。学会射击,你就拥有了强有力的生存优势。

7.
如果导致世界大乱的原因是空气中有毒物质或者致病细菌,射击也没有用处。这时候你需要准备的是一个口罩。

8.
学会打猎。世界大乱伴随的是经济危机,社会动荡,物资短缺,你不得不像原始人一样自食其力地去打猎来喂养自己和全家。
学会制作罗网捕猎动物。如果核武器没有毁灭地球上所有的生物,你就要依靠自己的打猎技能来生存下去。

如果你在海上,或者靠近水域,学会打渔。储存再多的食物也有吃完的一天。

学会箭术,并且学着自己制作弓箭。

多掌握一些生存技能。

9.
多读一些关于世界大乱,世界末日等小说。学习小说里的主人公如何觅食,如何储存水,如何建筑坚固温暖的避难所。但是不能完全依赖虚构的小说来应对世界大乱。
此类的书籍有:Cormac McCarthy撰写的The Road, George R. Stewart的Earth Abides ,Stephen King的 The Stand以及John Wyndham的 The Day of the Triffids…

10.
学会自立。扪心自问,如果只靠自己,现在的你能够再创建一个什么样的世界?你知道网络是靠什么来维持的吗?凭借你现有的知识和技能,你能够养活你和你的家人吗?
大多数人,其实对这个世界知之甚少。我们只会打开和关闭电源开关,视频缓冲得慢的话就满口抱怨。如果你真的想做好准备应对世界大乱,你得首先远离这些奢侈物,或者学会自己来重建这些奢侈物。你会用柠檬发电吗?说简单一点的,你会给绳子打结吗?

11.
学会自己发电。单单用车载蓄电池肯定不够,你需要学会发电。靠木柴,汽油运转的发电机以及柴油内燃机固然好,但真正实用的是,用PVC管和交流发电机制作自己的风轮机,或者利用太阳能电池板。这样就有了用不尽的可再生能源。即使在漆黑的夜晚,你也能够重温一下文明社会的生活。
有了电源,你就可以使用你的电器设备,来焊接,取水,等等。电能够给黑暗的世界带来一丝光明和希望。

二、如果剩余时间不多

1.
穿上长袖衫和长裤子。
不管遇到什么情况,穿上护体的衣服比较妥当,以便应对任何危机:核战争,外星人入侵,陨石降落,太阳灼烧,山崩地裂….世界末日可不是你袒胸露乳爱打扮的时候。
如果你有时间的话,穿上结实的靴子,或者运动鞋。

2.
想一个逃亡计划。如果你发现家里不安全,那么你得立即逃出来。你应该逃往哪里呢?森林里?靠近水的地方?私密的地方?这时候要根据当时具体情况来定。
如果能够待在家里的话,最好不要走开。要保持冷静理智,要学会逻辑推理,要考虑家人的安危。避难所是不错的选择,因为家人比较容易能够找到你。

3.
寻找避难所。如果是战争,你最好留在室内,如果是核泄漏或者爆炸,你一定要远离核泄漏和爆炸的范围。
地下室是很好的藏身之处。

4.
觅食。杂货店,便利店或者被人遗弃的房屋,都是找食物的好去处。先嚼一个糖果棒,防止血糖过低,头晕目眩。
储存食物。罐装食物和饼干,巧克力,坚果之类食物适宜长久储存。如果这些食物已经被别人抢空了,那么你看到什么就拿什么。
水。尽量地多储存水。要不然,过不了多久,你就得饮用自己的尿液了。

5.
学会防卫自己。时刻保持戒备心,不要随便相信任何陌生人。世界大乱,灾难降临的时候,你必须把仁义道德,文明礼仪放一放。
不要到处招摇自己的武器,把武器藏起来。

6.
寻找其他幸存者。当你有了食物,有了武器,有了避难所,是该寻找一些其他的友善的幸存者,形成一个队伍,来对抗任何天灾人祸。
如果你是独自一人,夜间如果看到有亮光的地方,最好凑上去,看是否可以认识一些新的朋友。但是一定要考虑清楚后果。亮光有多远?走到那里安全吗?

7.
保持乐观。在世界大乱,天灾人祸临头的时候,保持乐观并非一件简单的事情。但是不要忘了信念的力量。如果你的身边有孩子,或者依赖你的人,那么你就更要相信自己能够生存下去。
不要让伦理左右你的决策。现在情况不同了,如果你的团队中有人已经无药可救,那么就要果断地把资源留给还有机会活下去的人。这并不代表你变得没有人性。活下去成了第一规则。

小提示:
留在路人比较稀少的路上。打劫掠夺者一般会在主要的道路上抢夺行人的物品。
不要相信你的同类。饥肠辘辘口干舌燥的人们是不能被信任的。
医院是最好的避难所,医院里有药物,备用电源等。
将这篇文章收藏或打印,如果世界末日真的到来,可以用来当作参考。网络将会被关闭,电源也会关闭,留着这篇文章在身边,说不定可以帮助你存活下来。
团结都是力量。最好不要单独行动。
多留意自己是否被人跟踪。
藏匿起来。不要暴露自己的位置,将自己的藏身之处掩饰得像是荒废的无人之地一样。
住在农场里会比较有优势。住在偏僻的人烟稀少的地方可以避免被打劫被掠夺。事先准备一个撤退方案,联络好帮手,可以让自己存活得更长久一些。
在确认自己的安全之外千万不可以掉以轻心。

警告:
闹饥荒时,可能会出现食人族。
监狱里的犯人会逃脱出来。这个时候,你可能会看到人性最丑恶的一面。
人们为了生存,会拉帮结派,抢占社会资源。
不要将你做的准备计划泄露给同事,朋友以及远亲。一旦他们陷入困境,或者物资耗尽时,会把魔爪伸向你。
世界末日的时候,任何法律机构的人员不管是真是假都不要相信。
河流和湖泊会被污水处理厂和城市下水道里流出来的污水所污染。伤寒和霍乱会袭来。

你需要准备:
几壶水
罐装食品
密封包装的货物
毯子和枕头
药物
武器
刀具
保暖衣物(根据你生活所在地的气候)
装行李袋子(以备逃亡或者搬家时使用)
电池
手电筒
火柴
锅(用来做饭烧水)
餐具(盘子,杯子,勺子,刀叉)
地图
记号笔
换洗衣服(舒适遮体即可)
开罐器
野营小火炉以及丙烷
斧头
急救知识手册
胶带
荧光棒
收音机和对讲机
打火机
急救工具箱(详情见上文)
生存指南
信号镜
绳索
墨镜
登山靴
防弹衣
身份证
背包,行李袋,登山越野包
卫生纸
女性生理用品
牙膏和牙刷
塑料袋
铁铲
漂白剂
肥皂和洗发水
其他舒适的物品

我们当然不希望灾难来临,但是有准备的人总是有更多机会!v

开源项目列表

红色字体是现阶段比较火的

—————————————————————————————————————-

奇虎360 https://github.com/Qihoo360


1.MySQL中间层 Atlas

Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平台,每天承载的读写请求数达几十亿条。

主要功能:
* 读写分离
* 从库负载均衡
* IP过滤
* SQL语句黑白名单
* 自动分表

更多内容:https://github.com/Qihoo360/Atlas

 

2.360黑科技=》DroidPlugin

​DroidPlugin 是360手机助手在 Android 系统上实现了一种新的插件机制:它可以在无需安装、修改的情况下运行APK文件,此机制对改进大型APP的架构,实现多团队协作开发具有一定的好处。

特点:

  1. 支持Androd 2.3以上系统
  2. 插件APK完全不需做任何修改,可以独立安装运行、也可以做插件运行。要以插件模式运行某个APK,你无需重新编译、无需知道其源码。
  3. 插件的四大组件完全不需要在Host程序中注册,支持Service、Activity、BroadcastReceiver、ContentProvider四大组件
  4. 插件之间、Host程序与插件之间会互相认为对方已经”安装”在系统上了。
  5. API低侵入性:极少的API。HOST程序只是需要一行代码即可集成Droid Plugin
  6. 超强隔离:插件之间、插件与Host之间完全的代码级别的隔离:不能互相调用对方的代码。通讯只能使用Android系统级别的通讯方法。
  7. 支持所有系统API
  8. 资源完全隔离:插件之间、与Host之间实现了资源完全隔离,不会出现资源窜用的情况。
  9. 实现了进程管理,插件的空进程会被及时回收,占用内存低。
  10. 插件的静态广播会被当作动态处理,如果插件没有运行(即没有插件进程运行),其静态广播也永远不回被触发。

更多查看:https://github.com/Qihoo360/DroidPlugin/

 

3.高性能分布式存储服务 HustStore

huststore 是一个高性能的分布式存储服务,不但提供了 10w QPS 级别的 kv 存储的功能,还提供了 hash、set 等一系列数据结构的支持,并且支持 二进制 的 kv 存储,可以完全取代 Redis 的功能。此外,huststore 还结合特有的 HA 模块实现了分布式消息队列的功能,包括消息的流式推送,以及消息的 发布-订阅 等功能,可以完全取代 RabbitMQ 的功能。

特性

huststore 分为 hustdb 以及 HA 模块两大部分。hustdb (存储引擎)的底层设计采用了自主开发的 fastdb,通过一套独特的 md5 db 将QPS 提升至 10w 级别的水准(含网络层的开销)。HA 以 nginx 模块的方式开发。nginx 是工业级的 http server 标准,得益于此,huststore 具备以下特性:

    • 高吞吐量
      hustdb 的网络层采用了开源的 libevhtp 来实现,结合自主研发的高性能 fastdb 存储引擎,性能测试 QPS 在 10w 以上。
    • 高并发
      参考 nginx 的并发能力。
    • 高可用性
      huststore 整体架构支持 Replication (master-master),支持 load balance 。
      HA 的可用性由nginx 的 master-worker 架构所保证。当某一个 worker 意外挂掉时, master 会自动再启动一个 worker 进程,而且多个 worker 之间是相互独立的,从而保证了 HA 的高可用性。
      huststore 的高可用性由其整体架构特点保证。由于 hustdb 的存储节点采用了 master-master 的结构,当某一个存储节点挂掉时,HA 会自动将请求打到另外一台 master,同时 HA 会按照自动进行负载均衡,将数据分布存储在多个 hustdb节点上,因此存储引擎不存在单点限制。
      同时 HA 集群本身也是分布式的设计,而且每个 HA 节点都是独立的,当某一台 HA 挂掉时, LVS 会自动将请求打到其他可用的 HA 节点,从而解决了 HA 得单点限制。
    • 通用性的接口
      huststore 使用 http 作为通用协议,因此客户端的实现不限制于语言。
    • 支持二进制的 key-value

更多查看:https://github.com/Qihoo360/huststore

 

4.分布式配置管理工具 QConf

QConf 是奇虎 360 内部分布式配置管理工具。用来替代传统的配置文件,使得配置信息和程序代码分离,同时配置变化能够实时同步到客户端,而且保证用户高效读取配置,这使的工程师从琐碎的配置修改、代码提交、配置上线流程中解放出来,极大地简化了配置管理工作。

特点

  • 一处修改,所有机器实时同步更新
  • 高效读取配置
  • 安装部署方便,使用简单
  • 服务器宕机、网络中断、集群迁移等异常情况对用户透明
  • 支持c/c++、shell、php、python、lua 等语言

更多查看:https://github.com/Qihoo360/QConf

 

5.开源类Redis存储系统 Pika

Pika 是 360 DBA 和基础架构组联合开发的类 Redis 存储系统,完全支持 Redis 协议,用户不需要修改任何代码,就可以将服务迁移至 Pika。有维护 Redis 经验的 DBA 维护 Pika 不需要学习成本。

Pika 主要解决的是用户使用 Redis 的内存大小超过 50G、80G 等等这样的情况,会遇到启动恢复时间长,一主多从代价大,硬件成本贵,缓冲区容易写满等问题。Pika 就是针对这些场景的一个解决方案。

特点

  • 容量大,支持百G数据量的存储
  • 兼容redis,不用修改代码即可平滑从redis迁移到pika
  • 支持主从(slaveof)
  • 完善的运维命令

更多内容:https://github.com/Qihoo360/pika

 

6.对象缓存服务器 kmemcache

分布式linux内核内存对象缓存服务器,实现基于memcached v1.4.15,基本兼容memcached的所有操作。经初步测试,内存数据操作比memcached快1倍,网络并发量比memcached的也大许多,目前处于alpha版本。

优点:由于在内核的socket层实现,所有处理网络事件性能比epoll机制快,另外无需内存由用户空间到内核空间的拷贝。

缺点:不建议在32bits下使用。

更多内容: https://github.com/Qihoo360/kmemcache

 

7.ngx_http_subrange_module

当Nginx作为文件下载服务的反向代理,用户请求一个非常大的文件的时候,它会一直占满反向代理服务器与后端主机之间的带宽。因为nginx一次获取整个文件,缓冲获取到的文件,导致客户端不能马上读取到。带宽使用和iowait会很高。

ngx_http_subrange_module就是为了解决这个问题,它能分割HTTP requests。将大数据量的HTTP请求切分为多个子请求,当下载一个1 G的文件,subrange将从后端主机中下载文件块,比如先获取5 M,然后再获取5 M,直到客户端下载完整个文件。

更多查看:https://github.com/Qihoo360/ngx_http_subrange_module

 

8.同步到异步的类库 Mario

Mario是一个让编写从同步到异步的类库,它的线程安全较大,易于使用。Mario 的最基本的想法就是为了减少人员的安排,降低成本和时间投入。但是有了这个类库,操作人员就可以抽出精力做别的事情了。所以 Mario 类库能够很轻易的解决你的问题,你只需要你自己的消息功能。

引擎类型:

  • memory,这种类型就是将数据缓冲存储器留在内存里。
  • file,这种类型就是能够在本地日志路径里创建做出一个 write2file。

更多查看:https://github.com/Qihoo360/Mario

 

其他系列请去360github库观看

—————————————————————————————————————-

百度 Baidu https://github.com/fex-team/

https://github.com/ecomfe
1.UEditor 编辑器

UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点。

主要特点:

轻量级:代码精简,加载迅速。

定制化:
全新的分层理念,满足多元化的需求。
采用三层架构:
1. 核心层: 为命令层提供底层API,如range/selection/domUtils类。
2. 命令插件层: 基于核心层开发command命令,命令之间相互独立。
3. 界面层: 为命令层提供用户使用界面。
满足不同层次用户的需求。

https://github.com/fex-team/ueditor

https://github.com/fex-team/umeditor

 

2.ECharts 图表库

ECharts开源来自百度商业前端数据可视化团队,基于html5 Canvas,是一个纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。提供商业产品常用图表,底层基于ZRender(一个全新的轻量级canvas类库),创建了坐标系,图例,提示,工具箱等基础组件,并在此上构建出折线图(区域图)、柱状图(条状图)、散点图(气泡图)、饼图(环形图)、K线图、地图、力导向布局图以及和弦图,同时支持任意维度的堆积和多图表混合展现。

更多:https://github.com/ecomfe/echarts

 

ECharts-X是 ECharts 团队推出的全新 3D 可视化库,它是基于 ECharts 的扩展,底层深度整合了 WebGL 库QTEK和 Canvas2D 库ZRender。

扩展:https://github.com/ecomfe/echarts-x

 

3.WebUploader 上传控件

WebUploader 是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,延用原来的FLASH运行时,兼容IE6+,Andorid 4+,IOS 6+。两套运行时,同样的调用方式,可供用户任意选用。采用大文件分片并发上传,极大的提高了文件上传效率。

https://github.com/fex-team/webuploader

 

4.百度脑图 KityMinder

KityMinder 是百度FEX团队的f-cube小组(原UEditor小组)的又一力作。作为一款在线的脑图编辑工具,它有着很多Native编辑工具的交互体验。KM与UE有着一样的宗旨,就是注重最终用户的使用体验。同时,它充分发挥了Web云存储的优势,可以直接将编辑中的脑图同步到云端。此外,借由独创的 “云盘分享”功能,用户可以一键将当前编辑的脑图直接生成在线链接共享给其他用户,实现无缝沟通。
KM是基于SVG技术实现,使用JavaScript+html实现。支持绝大多数的主流浏览器。
支持列表如下
1. chrome
2. firefox
3. safari
4. ie9-11

https://github.com/fex-team/kityminder

 

5.人工智能系统 WARP-CTC

WARP-CTC 基于 CTC 方法,当前可用的一些 CTC 实现通常要求大量的内存或者是慢十到几百倍。

百度研究所首席科学家 Andrew Ng 称他的研究主要是人工神经网络如何在图形处理单元 (GPUs) 上运行,让 WARP-CTC 实现对 GPUs 和 x86 CPUs 的支持。

connectionist temporal classification (CTC) 方法可以追溯到 2006 年,在 Swiss AI 研究所 IDSIA 论文上有记录。 百度研究所开发的 WARP-CTC 就基于 CTC 方案,但是改进了其自身的语音识别功能

https://github.com/baidu-research/warp-ctc

 

其他系列请去baidu github库观看
—————————————————————————————————————-

腾讯 QQ http://alloyteam.github.io/

https://github.com/AlloyTeam/Mars

https://github.com/tencent-wechat
1.WeUI 为微信Web服务量身设计

WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户的使用感知更加统一。包含buttoncelldialogprogresstoastarticleactionsheeticon等各式元素。

https://github.com/weui/weui

 

2.手机前端开发调试利器 vConsole

我们在开发手机版网页的时候,常常会出现下面的情景:

(1) 开发时,在自己电脑上运行得好好的,在手机上打开就挂了,但是手机上又看不到error log;

(2) 上线后,某用户表示页面失灵,但我们自己又重现不出来,看不到用户侧的出错信息。

如果说(1)还可以通过电脑连接手机以查看log来解决,那(2)在没有完善的前端上报体系时就非常被动了。

作为开发者,我们的诉求很简单:有没有快捷的方法在手机前端页面看到log日志?vConsole就这样出现了!

https://github.com/WechatFE/vConsole

 

3.专业级Web图像处理引擎 AlloyImage

AlloyImage是一个使用Javascript语言开发的,基于Web的在线图像处理引擎,除了核心底层图像处理引擎,还同时集成了一些方便快捷的图像处理API,您可以将它简单快捷的引用到您的Web网页中,做出与PhotoShop一样的优美效果。甚至,你可以用AlloyImage来开发一个Web在线图像处理软件。

https://github.com/AlloyTeam/AlloyImage

https://github.com/AlloyTeam/AlloyPhoto

 

4. GoPng 图片合并并生成CSS

Css Sprite,有时也称为雪碧图、精灵图,是每一个前端开都会遇到的问题,也是常见的小图片加载优化手段。

在线版本:https://alloyteam.github.io/gopng/

源码地址:https://github.com/AlloyTeam/gopng

合成分解:https://github.com/luyongfugx/hcSpriteCuter (一个由多张小图合并而成的雪碧图中抠出其中一张或者几张图片)

 

5.可视化Web构建工具 AlloyDesigner

AlloyDesigner 是一款致力于提高前端生产效率的浏览器内运行工具,AlloyDesigner + Chrome F12(Especially with WorkSpace) 打造前端新的开发和测试模式

https://github.com/AlloyTeam/AlloyDesigner

 

6.Koala跨平台图形编译工具

Koala是一款预处理器语言图形编译工具,支持Less、Sass、CoffeeScript、Compass framework 的即时编译。 无需手动输入命令去编译,后台监听文件是否有改变,如有修改会自动进行编译。能够大大提升 Web 开发中的工作效率。

功能特性

  • 多语言支持 支持Less、Sass、CoffeeScript 和 Compass Framework。
  • 实时编译 监听文件,当文件改变时自动执行编译,这一切都在后台运行,无需人工操作。
  • 编译选项 可以设置各个语言的编译选项。
  • 项目配置 支持为项目创建一个全局配置,为文件设置统一编译选项。
  • 错误提示 在编译时如果遇到语法的错误,koala将在右下角弹出错误信息,方便开发者定位代码错误位置。
  • 跨平台 Windows、Linux、Mac都能完美运行。

系统支持及要求

Koala支持跨平台运行,完美兼容Windows、Linux与Mac 。
Linux系统下需安装好ruby运行环境, e.g. $ sudo apt-get install ruby.

https://github.com/oklai/koala

 

7.轻量级 CSS3 动画库 JX.Animate

JX.Animate 是一个开源的轻量级的CSS3动画库。动画可以使用标准的CSS3关键帧动画(KeyFrame)制作,也可以使用JavaScript制作,而且还可以支持在JavaScript中动态生成动画关键帧。

https://github.com/AlloyTeam/JXAnimate

 

8.Fanvas swf转为html5 canvas

Fanvas是一个把swf转为html5 canvas动画的系统,由两部分组成:Actionscript实现的解析器、js运行库。Flash做动画是最成熟最高效的方式,但由于终端基本不支持Flash播放,这给终端的动画制作带来了不少麻烦。Fanvas是Flash和Canvas的完美结合,可以把swf(包括矢量和位图)完美地转化为canvas动画.

https://github.com/TencentOpen/Fanvas

 

9.随身调测平台 GT

GT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug Environment)。利用GT,仅凭一部手机,无需连接电脑,您即可对APP进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、 开发日志的查看、Crash日志查看、网络数据包的抓取、APP内部参数的调试、真机代码耗时统计等。如果您觉得GT提供的功能还不够满足您的需要,您还 可以利用GT提供的基础API自行开发有特殊功能的GT插件,帮助您解决更加复杂的APP调试问题。

https://github.com/TencentOpen/GT

 

10.Frozen UI 移动端UI框架

Frozen UI是一个开源的简单易用,轻量快捷的移动端UI框架。基于手Q样式规范,选取最常用的组件,做成手Q公用离线包减少请求,升级方式友好,文档完善,目前全面应用在腾讯手Q增值业务中。

https://github.com/frozenui/frozenui

 

11.LivePool Web 开发调试工具

LivePool 是一个基于 NodeJS,类似 Fiddler 支持抓包和本地替换的 Web 开发调试工具,是 Tencent AlloyTeam 在开发实践过程总结出的一套的便捷的 WorkFlow 以及调试方案。

特性

  • 基于 NodeJS, 跨平台
  • 支持 http 抓包和本地替换调试,Https/WebSockets 直接代理转发(暂不支持本地替换)
  • 便捷的 UI 管理界面,跟 Fiddler 类似,降低学习成本
  • 可以脱离 UI 后台运行,适应于某些不需要抓包,只需要使用替换和简单路由的场景
  • 基于项目的替换规则管理,方便高效,规则支持拖曳排序
  • 支持基于请求路径的本地文件替换,支持基于请求路径的路由转发(host 配置)
  • 替换类型支持:文件/文件夹替换,combo合并替换,qzmin替换(批量combo),delay延时等
  • 支持自动设置系统代理
  • 支持规则过滤,只显示关注的请求
  • 提供构建 http get/post 请求界面,方便接口调试
  • 特色功能:模拟gprs/3g等低网速(mac only)
  • 特色功能:支持离线站点到本地,并自动代码格式化

https://github.com/rehorn/livepool

 

12.KNVProtoEngine 高性能树型协议处理引擎

KNV是一个模式自由的高性能树型协议处理引擎,是对Key-Value的一个通用结构化扩展。

应用特性

正如NoSQL对SQL的彻底变革一样,KNV是对Key-Value的彻底变革!
大家都很熟悉Key-Value系统,但KV操作极不方便:
— 你不得不自己做乐观锁(读返回seq->修改->带seq写->seq变化则重头开始);
— 你不得不拉取一堆数据,然后再提取你想要的部分;
— 为了修改一个bit,你不得不把一串数据拉取修改后再一起提交更新
不过现在有KNV,一切都解决了。KNV时代来了,你还在犹豫吗?

应用场景

KNV是专门针对以Protocol Buffers(或类似树型结构)存储的存储系统开发的,有3个应用场景:

    1. 存储系统 处理用户请求的通用解决方法(Get/Set/Delete),可以适配任意用户自定义的数据结构。
    2. 代理/通用逻辑层 服务器处理Protocol Buffers协议的通用方法 – 比如通用Proxy,透传多个协议, 对请求包进行鉴权、限频、统计等等操作,还支持对包体内容进行审计,使用KNV协议, 这种方法就有可能而且很简单。
    3. 原生态 Protocol Buffers打解包库 的高性能代替品。

https://github.com/TencentOpen/KNVProtoEngine

 

13.Behaviac 游戏AI的开发框架组件

Behaviac是游戏AI的开发框架组件,也是游戏原型的快速设计工具。支持行为树BT,状态机FSM,HTN等多种范式,方便的编辑和调试。支持全平台,适用于客户端和服务器,助力游戏快速迭代开发。编辑器可以运行在PC上,操作方便直观可靠,支持实时和离线调试;编辑器可以导出xml,bson等多种格式,更可以导出C++,C#源码,提供最高效率。运行时支持全平台,有C++和C#两个版本,原生支持Unity。

已被《天天炫斗》、《QQ飞车》、《全民突击》、《全民夺宝》、《九龙战》等游戏及其他更多预研项目使用。

https://github.com/TencentOpen/behaviac

 

14.现代构建系统 Typhoon Blade

Blade主要定位于linux下的大型C++项目,密切配合研发流程,比如单元测试,持续集成,覆盖率统计等。但像unix下的文本过滤程序一 样,保持相对的独立性,可以单独运行。目前重点支持i386/x86_64 Linux,未来可以考虑支持其他的类Unix系统。

特点:

  • 自动分析头文件依赖关系,构建受影响的代码。
  • 增量编译和链接,只构建因变更受影响而需要构建的。
  • 自动计算库的间接依赖,库的作者只需要写出直接依赖,构建时自动检查所依赖的库是否需要重新构建。
  • 在任意代码树的任意子目录下都能构建。
  • 支持一次递归构建多个目录下的所有目标,也支持只构建任意的特定的目标。
  • 无论构建什么目标,这些目标所依赖的目标也会被自动连坐更新。
  • 内置 debug/release 两种构建类型。
  • 彩色高亮构建过程中的错误信息。
  • 支持 ccache
  • 支持 distcc
  • 支持基于构建多平台目标
  • 支持构建时选择编译器(不同版本的gcc,clang等)
  • 支持编译 protobuf,lex, yacc, swig
  • 支持自定义规则
  • 支持测试,在命令行跑多个测试
  • 支持并行测试(多个测试进程并发运行)
  • 支持增量测试(无需重新运行的测试程序自动跳过)
  • 集成 gperftools,自动检测测试程序的内存泄露
  • 构建脚本 vim 语法高亮
  • svn 式的子命令命令行接口。
  • 支持 bash 命令行补全
  • 用 Python 编写,无需编译,直接安装使用。

彻底避免以下问题:

  • 头文件更新,受影响的模块没有重新构建。
  • 被依赖的库需要更新,而构建时没有被更新,比如某子目录依赖遥远的某外部目录的代码,我在这个目录构建,外部目录的代码会被自动检查是否也需要重新构建。

https://github.com/chen3feng/typhoon-blade

 

15.RapidJSON C++的JSON开发包

Rapidjson 是一个 C++ 的快速 JSON 解析器和生成器,使用 SAX/DOM 风格的 API 设计。

https://github.com/miloyip/rapidjson

 

16. 微信开源PhxSQL

PhxSQL是一个兼容MySQL、服务高可用、数据强一致的关系型数据库集群。PhxSQL以单Master多Slave方式部署,在集群内超过一半机器存活的情况下,可自身实现自动Master切换,且保证数据一致性。

https://github.com/tencent-wechat/phxsql

 

更多请自行查看:http://alloyteam.github.io/ https://github.com/tencent-wechat
—————————————————————————————————————-

新浪:WeiBo https://github.com/weibocom


1.分布式缓存服务器 memcachedb

memcachedb是 一个由新浪网的开发人员开放出来的开源项目,给memcached分布式缓存服务器添加了Berkeley DB的持久化存储机制和异步主辅复制机制,让memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合于需要超高性能读写速度,但是 不需要严格事务约束,能够被持久化保存的应用场景,例如memcachedb被应用在新浪博客上面。

https://github.com/stvchu/memcachedb

2.动态流量管理方案 Upsync

Upsync,微博开源基于Nginx容器动态流量管理方案 。Nginx 以其超高的性能与稳定性,在业界获得了广泛的使用,微博的七层就大量使用了 Nginx 。结合 Nginx 的健康检查模块,以及动态 reload 机制,可以近乎无损的服务的升级上线与扩容。这个时候扩容的频次比较低,大多数情况下是有计划的扩容。Upsync,开发了模块 nginx-upsync-module,它的功能是拉取 consul 的后端 server 的列表,并更新 Nginx 的路由信息。此模块不依赖于任何第三方模块。consul 作为 Nginx 的 db,利用 consul 的 KV 服务,每个 Nginx work 进程独立的去拉取各个 upstream 的配置,并更新各自的路由。

https://github.com/weibocom/nginx-upsync-module

3.高性能的内核 Socket 实现 Fastsocket

Fastsocket 是一个高扩展性的 Socket 以及 Linux 内核的底层网络实现。可以在多核机器上提供极好的性能,此外使用和维护还非常简单。目前该项目已经在新浪的生产环境中使用。该项目由清华大学和新浪网联合组成的 Fastos 团队开发,该团队的使命是提升 Linux 内核的效率。Fastsocket 目前已经使用在新浪微博的生产环境上,主要用于提供负载均衡服务的 HAProxy,线上实际性能提升一倍,从2014年3月份稳定运行至今,预计2014年底完成负载均衡全部集群的 Fastsocket 升级。Fastsocket 完全兼容 BSD Socket API,现有各类基于 Socket 的网络应用可以直接使用 Fastsockt。 目前经过兼容测试的常用服务软件有:HAProxy、Nginx、Lighttpd、Redis 和 Memcached。

https://github.com/fastos/fastsocket

4.轻量级 RPC 框架 Motan

Motan 是一套高性能、易于使用的分布式远程服务调用(RPC)框架。

功能

  • 支持通过spring配置方式集成,无需额外编写代码即可为服务提供分布式调用能力。
  • 支持集成consul、zookeeper等配置服务组件,提供集群环境的服务发现及治理能力。
  • 支持动态自定义负载均衡、跨机房流量调整等高级服务调度能力。
  • 基于高并发、高负载场景进行优化,保障生产环境下RPC服务高可用。

https://github.com/weibocom/motan

5.TCP 性能剖析工具 Tcpdive

Tcpdive 是 TCP 性能剖析工具,主要特性:

  • 更多 TCP 内部性能信息
  • 定量评估 TCP 性能改进
  • 描述在 TCP 层的 HTTP 处理,依赖于 HTTP Apps
  • 容易部署,使用友好

Tcpdive 已经在新浪的生产环境上部署使用:

  • 提高微博图片服务质量
  • 提高微博视频服务质量
  • 在有线和无线网络中比较 TCP 性能
  • 记录不同应用的 TCP 流量

https://github.com/fastos/tcpdive

6.PHP框架 Yaf

Yaf是一个C语言编写的PHP框架,Yaf 的特点:

  1. 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销.
  2. 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存.
  3. 更短的内存周转周期, 提高内存利用率, 降低内存占用率.
  4. 灵巧的自动加载. 支持全局和局部两种加载规则, 方便类库共享.
  5. 高性能的视图引擎.
  6. 高度灵活可扩展的框架, 支持自定义视图引擎, 支持插件, 支持自定义路由等等.
  7. 内建多种路由, 可以兼容目前常见的各种路由协议.
  8. 强大而又高度灵活的配置文件支持. 并支持缓存配置文件, 避免复杂的配置结构带来的性能损失.
  9. 在框架本身,对危险的操作习惯做了禁止.
  10. 更快的执行速度, 更少的内存占用.

https://github.com/laruence/yaf
—————————————————————————————————————-

小米:XiaoMi https://github.com/XiaoMi


1.分布式的发布和监控系统 Minos

Minos 是小米公司开发的一个分布式的发布和监控系统。最初是小米开发的用来在 Hadoop 和 ZooKeeper 集群上发布和管理的工具。Minos 可轻松扩展来支持其他的系统,目前已经支持包括 HDFS、YARN 和 Impala 。

https://github.com/XiaoMi/minos

 

2.互联网企业级监控系统 OpenFalcon

Open-Falcon 是小米运维部开源的一款互联网企业级监控系统解决方案.

监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择。当公司刚刚起步,业务规模较小,运维团队也刚刚建立的初期,选择一款开源的监控系统,是一个省时省力,效率最高的方案。之后,随着业务规模的持续快速增长,监控的对象也越来越多,越来越复杂,监控系统的使用对象也从最初少数的几个SRE,扩大为更多的DEVS,SRE。这时候,监控系统的容量和用户的“使用效率”成了最为突出的问题。

监控系统业界有很多杰出的开源监控系统。我们在早期,一直在用zabbix,不过随着业务的快速发展,以及互联网公司特有的一些需求,现有的开源的监控系统在性能、扩展性、和用户的使用效率方面,已经无法支撑了。

因此,我们在过去的一年里,从互联网公司的一些需求出发,从各位SRE、SA、DEVS的使用经验和反馈出发,结合业界的一些大的互联网公司做监控,用监控的一些思考出发,设计开发了小米的监控系统:Open-Falcon。

Highlights and features

  • 数据采集免配置:agent自发现、支持Plugin、主动推送模式
  • 容量水平扩展:生产环境每秒50万次数据收集、告警、存储、绘图,可持续水平扩展。
  • 告警策略自发现:Web界面、支持策略模板、模板继承和覆盖、多种告警方式、支持回调动作。
  • 告警设置人性化:支持最大告警次数、告警级别设置、告警恢复通知、告警暂停、不同时段不同阈值、支持维护周期,支持告警合并。
  • 历史数据高效查询:秒级返回上百个指标一年的历史数据。
  • Dashboard人性化:多维度的数据展示,用户自定义Dashboard等功能。
  • 架构设计高可用:整个系统无核心单点,易运维,易部署。

https://github.com/XiaoMi/open-falcon

 

3.物联网框架 IoT.js

IoT.js 旨在为物联网提供一个基于 Web 技术的可相互操作的服务平台。IoT.js 的目标是要在资源受限的设备上良好运行,例如只有几 KB 的 RAM。所以它支持广泛的物联。

https://github.com/Samsung/iotjs
—————————————————————————————————————-

豆瓣 DouBan https://github.com/douban


1.分布式计算框架 DPark

DPark 是 Spark 的 Python 克隆,是一个Python实现的分布式计算框架,可以非常方便地实现大规模数据处理和迭代计算。 DPark 由豆瓣实现,目前豆瓣内部的绝大多数数据分析都使用DPark 完成,正日趋完善。

https://github.com/douban/dpark

 

2.iOS/Mac 音频播放器 DOUAudioStreamer

DOUAudioStreamer 是 iOS 和 Mac 的基于核心音频的流媒体音频播放器。

https://github.com/douban/DOUAudioStreamer

 

3.CODE 豆瓣代码托管系统

Douban CODE 是豆瓣开发的一个基于 git 版本控制系统的协作平台。

CODE —— C: Community O: Original D: Developer E: Eldamar

目前 CODE 仅开放了一个框架,支持:

  • clone & push project
  • create project
  • create user

准备环境

  • MySQL
  • Memcached
  • Python >= 2.7
  • pip >= 1.4.1
  • virtualenv
  • git

https://github.com/douban/code
—————————————————————————————————————-

网易 NetEase https://github.com/netease


1.分布式TCP压力测试工具 tcpcopy

tcpcopy是一种应用请求复制(基于tcp的packets)工具,其应用领域较广,目前已经应用于国内各大互联网公司。

总体说来,tcpcopy主要有如下功能:

1)分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测试工具真实地多),也可以提前发现一些bug
2)普通上线测试,可以发现新系统是否稳定,提前发现上线过程中会出现的诸多问题,让开发者有信心上线
3)对比试验,同样请求,针对不同或不同版本程序,可以做性能对比等试验
4)利用多种手段,构造无限在线压力,满足中小网站压力测试要求
5)实战演习(架构师必备)

https://github.com/session-replay-tools/tcpcopy

 

2.桌面应用软件的跨平台解决方案 heX

heX 是网易有道搜索部门开发的一个允许你采用前端技术(HTML,CSS,JavaScript)开发桌面应用软件的跨平台解决方案,基于HTML5 + node.js,类似appjs。是你开发桌面应用的一种新的选择,意在解决传统桌面应用开发中繁琐的UI和交互开发工作,使其变的简单而高效。特别适合重UI,重交互的桌面应用软件。

https://github.com/netease-youdao/hex

https://github.com/netease-youdao/hex-samples

 

3.Android性能测试工具 Emmagee

Emmagee是监控指定被测应用在使用过程中占用机器的CPU、内存、流量资源的性能测试小工具。

支持SDK:Android2.2以及以上版本

Emmagee功能介绍

1、检测当前时间被测应用占用的CPU使用率以及总体CPU使用量

2、检测当前时间被测应用占用的内存量,以及占用的总体内存百分比,剩余内存量

3、检测应用从启动开始到当前时间消耗的流量数

4、测试数据写入到CSV文件中,同时存储在手机中

5、可以选择开启浮窗功能,浮窗中实时显示被测应用占用性能数据信息

6、在浮窗中可以快速启动或者关闭手机的wifi网络

https://github.com/NetEase/Emmagee

 

4.基于udp的请求复制工具 udpcopy

udpcopy用来解决udp应用的一个开源软件,与tcpcopy同属于xcopy系列,可以导入udp流量到测试系统中去,这样就可以有效地对系统进行各种测试,比如压力测试,冒烟测试等等。

https://github.com/wangbin579/udpcopy

 

5.实时编辑刷新的前端服务器 Puer (推荐:browser-sync https://github.com/BrowserSync/browser-sync

简而言之,Puer是一个可以实时编辑刷新的前端服务器。特性一览:

  • 提供一个当前或指定路径的静态服务器
  • 所有浏览器的实时刷新:编辑css实时更新(update)页面样式,其它文件则重载(reload)页面
  • 提供简单熟悉的mock请求的配置功能,并且配置也是自动更新。
  • 可用作代理服务器,调试开发既有服务器的页面,可与mock功能配合使用
  • 集成了weinre,并提供二维码地址,方便移动端的调试
  • 可以作为connect中间件使用(前提是后端为nodejs,否则请使用代理模式)

https://github.com/leeluolee/puer
————————–阿里巴巴开源的好软件太多,请自行选择所需,我列几个我们用的————————-

阿里巴巴 Alibaba https://github.com/alibaba/ https://github.com/thx


1.分布式key/value存储系统 Tair

Tair是由淘宝网自主开发的Key/Value结构数据存储系统,在淘宝网有着大规模的应用。您在登录淘宝、查看商品详情页面或者在淘江湖和好友“捣浆糊”的时候,都在直接或间接地和Tair交互。Tair是一个Key/Value结构数据的解决方案,它默认支持基于内存和文件的两种存储方式,分别和我们通常所说的缓存和持久化存储对应。

Tair除了普通Key/Value系统提供的功能,比如get、put、delete以及批量接口外,还有一些附加的实用功能,使得其有更广的适用场景,包括:

  • Version支持
  • 原子计数器
  • Item支持

https://github.com/alibaba/tair

 

2.TFS 分布式文件系统

TFS(Taobao FileSystem)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,其设计目标是支持海量的非结构化数据。

目前,国内自主研发的文件系统可谓凤毛麟角。淘宝在这一领域做了有效的探索和实践,Taobao File System(TFS)作为淘宝内部使用的分布式文件系统,针对海量小文件的随机读写访问性能做了特殊优化,承载着淘宝主站所有图片、商品描述等数据存储。

https://github.com/alibaba/tfs

 

3.消息中间件 RocketMQ

https://github.com/alibaba/RocketMQ

https://github.com/alibaba/RocketMQ-docs

 

4.分布式计算系统 JStorm

Jstorm是参考storm的实时流式计算框架,在网络IO、线程模型、资源调度、可用性及稳定性上做了持续改进,已被越来越多企业使用

https://github.com/alibaba/jstorm

 

5.淘宝Web服务器 Tengine

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

 

以下沿引项目主页上的特性介绍:

 

  • 继承Nginx-1.2.8的所有特性,100%兼容Nginx的配置;
  • 动态模块加载(DSO)支持。加入一个模块不再需要重新编译整个Tengine;
  • 更多负载均衡算法支持。如会话保持,一致性hash等;
  • 输入过滤器机制支持。通过使用这种机制Web应用防火墙的编写更为方便;
  • 动态脚本语言Lua支持。扩展功能非常高效简单;
  • 支持管道(pipe)和syslog(本地和远端)形式的日志以及日志抽样;
  • 组合多个CSS、JavaScript文件的访问请求变成一个请求;
  • 可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线;
  • 自动根据CPU数目设置进程个数和绑定CPU亲缘性;
  • 监控系统的负载和资源占用从而对系统进行保护;
  • 显示对运维人员更友好的出错信息,便于定位出错机器;
  • 更强大的防攻击(访问速度限制)模块;
  • 更方便的命令行参数,如列出编译的模块列表、支持的指令等;
  • 可以根据访问文件类型设置过期时间;

https://github.com/alibaba/tengine

 

6.SeaJS 模块加载框架

Sea.JS 是一个遵循 CommonJS 规范的模块加载框架,可用来轻松愉悦地加载任意 JavaScript 模块。SeaJS 支持的标准模块遵循 Modules/Wrappings 规范的 define 形式,可运行于 Web 浏览器以及 node.JS 等环境中。

https://github.com/seajs/seajs

 

7.阿里巴巴分布式数据库同步系统 otter

otter 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统。

https://github.com/alibaba/otter

 

8.Taobao Open API 客户端 TOP (有Net版)

TOP 是 Taobao Open API 客户端。

APIs

  • User
    • taobao.user.buyer.get 查询买家信息API
    • taobao.user.get 获取单个用户信息
    • taobao.user.seller.get 查询卖家用户信息
    • taobao.users.get 获取多个用户信息
  • Category (Working)
    • taobao.itemcats.authorize.get 查询商家被授权品牌列表和类目列表
    • taobao.itemcats.get 获取后台供卖家发布商品的标准商品类目
    • taobao.itemcats.increment.get 增量获取后台类目数据
    • taobao.itemprops.get 获取标准商品类目属性
    • taobao.itempropvalues.get 获取标准类目属性值
    • taobao.topats.itemcats.get 全量获取后台类目数据
  • Shop
    • taobao.shop.get (白名单用户才能调用)

9.模拟数据生成器 Mock.js

Mock.js 是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试。提供了以下模拟功能:

  • 根据数据模板生成模拟数据
  • 模拟 Ajax 请求,生成并返回模拟数据
  • 基于 HTML 模板生成模拟数据

https://github.com/nuysoft/Mock

 

10.服务框架 Dubbo

Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。

主要核心部件:

  • Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制.
  • RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能
  • Registry: 服务目录框架用于服务的注册和服务事件发布和订阅

https://github.com/alibaba/dubbo

 

11.接口文档管理工具 RAP

 

RAP通过GUI工具帮助WEB工程师更高效的管理接口文档,同时通过分析接口结构自动生成Mock数据、校验真实接口的正确性,使接口文档成为开发流程中的强依赖。有了结构化的API数据,RAP可以做的更多,而我们可以避免更多重复劳动。

 

https://github.com/thx/RAP

 

Nginx7天入门:https://github.com/taobao/nginx-book
—————————————————————————————————————-

其他项目:
1.去哪儿:

MySQL自动化运维工具 Inception

MySQL语句的审核,在业界都已经基本被认同了,实际上也是对MySQL语句写法的统一化,标准化,而之前的人工审核,针对标准这个问题其实是很 吃力的,标准越多,DBA越累,开发也越累。 那么在这个都追求自动化运维的时代,审核也必须要跟上步伐,因此Inception诞生了。而Inception可以做的工作远不止是一个自动化审核工 具,同时还具备执行,生成对影响数据的回滚语句(类似闪回的功能),这样一条龙服务的工具,将会给DBA的工作带来翻天覆地的变化,DBA从此就从繁重的 审核、登上去执行,出错了很难回滚(如果提前没有备份的话)的被动局面解放了出来,突然发现,做DBA原来可以这么轻松,工作可以不饱和了,那就有更多的 自由时间学习、进一步向自动化运维平台的实现等更智能化的方向去发展,是具有里程碑意义的。

https://github.com/mysql-inception/inception

2.大众点评

实时应用监控平台 CAT

CAT 由大众点评开发的,基于 Java 的实时应用监控平台,包括实时应用监控,业务监控。

CAT 支持的监控消息类型包括:

  • Transaction 适合记录跨越系统边界的程序访问行为,比如远程调用,数据库调用,也适合执行时间较长的业务逻辑监控,Transaction用来记录一段代码的执行时间和次数。
  • Event 用来记录一件事发生的次数,比如记录系统异常,它和transaction相比缺少了时间的统计,开销比transaction要小。
  • Heartbeat 表示程序内定期产生的统计信息, 如CPU%, MEM%, 连接池状态, 系统负载等。
  • Metric 用于记录业务指标、指标可能包含对一个指标记录次数、记录平均值、记录总和,业务指标最低统计粒度为1分钟。
  • Trace 用于记录基本的trace信息,类似于log4j的info信息,这些信息仅用于查看一些相关信息

消息树

CAT监控系统将每次URL、Service的请求内部执行情况都封装为一个完整的消息树、消息树可能包括Transaction、Event、Heartbeat、Metric和Trace信息。

https://github.com/dianping/cat

 

3.搜狐:

Redis云管理平台 CacheCloud

CacheCloud提供一个Redis云管理平台:实现多种类型(Redis StandaloneRedis SentinelRedis Cluster)自动部署、解决Redis实例碎片化现象、提供完善统计、监控、运维功能、减少开发人员的运维成本和误操作,提高机器的利用率,提供灵活的伸缩性,提供方便的接入客户端。

https://github.com/sohutv/cachecloud

基于 MySQL 的数据库中间件 SOHU-DBProxy

SOHU-DBProxy 是由 搜狐 数据库团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.3版本的基础上, 修改了大量bug,添加了很多功能特性。现在已经在sohu的多个业务线上使用

DBProxy 主要功能:

1 即使在同一个连接(只要不在同一个事务中)也能连接复用

2 负载均衡提高读性能,支持动态扩展

3 动态添加的SQL审核和过滤。能够统计的SQL长时间运行影响性能,并且阻止其运行

4 用户连接限制

5 自动摘除宕机的DB

6 读写分离(当前版本没有,代码和测试已经完成,没有合并到当前版本)

https://github.com/SOHUDBA/SOHU-DBProxy

58https://github.com/58code

大众点评https://github.com/dianping

豌豆荚https://github.com/wandoulabs

华为https://github.com/HuaweiBigData

from:http://www.cnblogs.com/dunitian/p/5581520.html