牛骨文教育服务平台(让学习变的简单)
博文笔记

中国开源项目哪家强?看看阿里,百度,腾讯,360等都开...

创建时间:2016-10-30 投稿人: 浏览次数:3194
奇虎360




开源github地址: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的架构,实现多团队协作开发具有一定的好处。

特点:

支持Androd 2.3以上系统

插件APK完全不需做任何修改,可以独立安装运行、也可以做插件运行。要以插件模式运行某个APK,你无需重新编译、无需知道其源码。

插件的四大组件完全不需要在Host程序中注册,支持Service、Activity、BroadcastReceiver、ContentProvider四大组件

插件之间、Host程序与插件之间会互相认为对方已经”安装”在系统上了。

API低侵入性:极少的API。HOST程序只是需要一行代码即可集成Droid Plugin
超强隔离:插件之间、插件与Host之间完全的代码级别的隔离:不能互相调用对方的代码。通讯只能使用Android系统级别的通讯方法。

支持所有系统API

资源完全隔离:插件之间、与Host之间实现了资源完全隔离,不会出现资源窜用的情况。

实现了进程管理,插件的空进程会被及时回收,占用内存低。

插件的静态广播会被当作动态处理,如果插件没有运行(即没有插件进程运行),其静态广播也永远不回被触发。

更多查看: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

1.WeUI 为微信Web服务量身设计

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

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
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。