大公司都有哪些开源项目?阿里,百度,腾讯,360,新浪,网易

奇虎360

大公司都有哪些开源项目?阿里,百度,腾讯,360,新浪,网易

文章插图
 
1.MySQL中间层 Atlas
Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目 。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性 。目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平台,每天承载的读写请求数达几十亿条 。
主要功能:
* 读写分离
* 从库负载均衡
* IP过滤
* SQL语句黑白名单
* 自动分表
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之间实现了资源完全隔离,不会出现资源窜用的情况 。实现了进程管理,插件的空间进程会被及时回收,占用内存空间 。插件的静态广播会被当作动态处理,如果插件没有运行(即使没有插件进程运行),其静态广播也永远不会被触发 。
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
4.分布式配置管理工具 QConf
QConf 是奇虎 360 内部分布式配置管理工具 。用来替代传统的配置文件,使得配置信息和程序代码分离,同时配置变化能够实时同步到客户端,而且保证用户高效读取配置,这使的工程师从琐碎的配置修改、代码提交、配置上线流程中解放出来,极大地简化了配置管理工作 。
特点 一处修改,所有机器实时同步更新 高效读取配置 安装部署方便,使用简单 服务器宕机、网络中断、集群迁移等异常情况对用户透明 支持c/c++、shell、php、Python、lua 等语言 。
5.开源类Redis存储系统 Pika
Pika 是 360 DBA 和基础架构组联合开发的类 Redis 存储系统,完全支持 Redis 协议,用户不需要修改任何代码,就可以将服务迁移至 Pika 。有维护 Redis 经验的 DBA 维护 Pika 不需要学习成本 。


推荐阅读