HTTP接口 Micro_SideCar
# Micro SideCar SideCar 提供了一个 集成应用程序到微型 生态系统 的HTTP接口 。 它类似于 Netflix 称为Prana 的SideCar。 ** 特性 ** * 登记 发现系统 * 主机 的 其他 服务发现 * 健康检查服务 * HTTP API 和负载平衡 要求 * 通过 PubSub的 的WebSockets ** 入门 ** **安装** <pr...阅读全文
# Micro SideCar SideCar 提供了一个 集成应用程序到微型 生态系统 的HTTP接口 。 它类似于 Netflix 称为Prana 的SideCar。 ** 特性 ** * 登记 发现系统 * 主机 的 其他 服务发现 * 健康检查服务 * HTTP API 和负载平衡 要求 * 通过 PubSub的 的WebSockets ** 入门 ** **安装** <pr...阅读全文
ccql 是 Github 官方开发的一个 MySQL 客户端工具,可以并行支持多个 MySQL 服务器,相当于同时在多个 MySQL 服务器上执行命令。阅读全文
Gomobile是一个应用于iOS和Android的优秀跨平台开发库,为开发者提供用于创建Android和iOS 移动平台代码的工具。 ### 环境设置 我们需要Go 1.5及以上版本(版本越高越好)。 然后,我们需要安装Gomobile: <pre class="brush:cpp ;toolbar: true; auto-links: false;">go get golang.org/x/mobile/cmd/gomobile</pre> 注:该命令可能需要几分钟的时间。 ...阅读全文
Easyjson用于序列化JSON数据,采用Go语言编写,而不是通过使用反射生成编组代码。一个库的目的之一是使所生成的代码足够简单,使得它可以容易地优化或固定。另一个目标是为用户提供不可定制的“encoding/json”,如产生snake_case名称或启用默认“omitempty“生成代码。 用法: <pre class="brush:shell;toolbar: true; auto-links: false;">go get github.com/mailru/easyjson/...阅读全文
OpenFalcon是一款小米监控系统。 功能: * **数据采集免配置**:agent自发现、支持Plugin、主动推送模式 * **容量水平扩展**:生产环境每秒50万次数据收集、告警、存储、绘图,可持续水平扩展。 * **告警策略自发现**:Web界面、支持策略模板、模板继承和覆盖、多种告警方式、支持回调动作。 * **告警设置人性化**:支持最大告警次数、告警级别设置、告警恢复通知、告警暂停、不同时段不同阈值、支持维护周期,支持告警合并。 * **历史数据高效查询**:秒...阅读全文
Pseudo利用一个算法/一个简单程序,然后在Python, JavaScript, C#, Go 和 Ruby 中生成为惯用代码。 Pseudo实现两层翻译:它采取目标 语言的语法 ,可以使用Y语言的本地标准库表达出X语言的标准库的方法/API。 应用实例: * generate code for the same task/algorithm in different languages (parser generators etc) * port a library/cod...阅读全文
KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP。 连时钟都需要外部传递进来,内部不会有任何一次系统调用。 整个协议只有 ikcp.h, ikcp.c两个源文件,可以方便的集成到用户自己的协议栈中。也许你实现了一个P2P,或者某个基于 UDP的协议,而缺乏一套完善的AR...阅读全文
基于Golang、WebSocket、TermJS的SSH远程终端,希望能帮到大家。 主要应用到隔离网络内,SSH远程终端的访问问题。 运行环境要求: 1、Intel 架构 2、Linux Kernel 3.x/x86_64 及更高版本 3、建议 Linux 发行版 CentOS 7.x 4、启用支持 SSL/TLS 模式访问时,需要生成对应的 SSL 证书文件且放置到 "conf" 文件夹下并配置 "conf.json" 文件 5、客户端要求...阅读全文
Cherry 是一个使用 Go 语言开发的 Web 聊天引擎。阅读全文
_rqlite_ 是一个用 Go 语言开发的分布式系统,提供 SQLite 数据库的复制功能。rqlite 使用 [Raft](http://raftconsensus.github.io/)来确保所有 SQLite 数据库实例的一致性。rqlite 确保每个数据库改变能同步到全部的节点,要么就一个都不同步。 rqlite 提供了数据库的容错以及复制,而且安装、发布和运维都非常简单。 ![image](http://static.oschina.net/uploads/img/201602/...阅读全文
PayPal-Go-SDK 是一个非 PayPal 官方的 Go 语言客户端开发包。 示例代码: <pre class="brush:cpp ;toolbar: true; auto-links: false;">import "github.com/logpacker/PayPal-Go-SDK" // ... // Create a client instance c, err := paypalsdk.NewClient("clientID", "...阅读全文
纽约时报开源的go微服务工具 提供如下特性 * 标准化配置和日志 * 可配置策略的状态监测端点 * 用于管理 pprof 端点和日志级别的配置 * 结构化日志,提供基本请求信息 * 端点的有用度量 * 优雅的停止服务 * 定义期待和词汇的基本接口阅读全文
Seesaw 是 Google 开源的一个基于 Linux 的负载均衡系统。Seesaw 包含基本的负载均衡特性,同时支持一些高级的功能,诸如:anycast, Direct Server Return (DSR), 支持多个 VLANs 和集中式配置。同时其设计的宗旨是易于维护。 需要注意的是,尽管该项目挂靠在 Google 名下,但并非 Google 官方产品。阅读全文
Kapacitor 是一个开源框架,用来处理、监控和警告时间序列数据。Kapacitor 使用 [TICKscript](https://docs.influxdata.com/kapacitor/v0.2/tick/) 脚本来定义任务,示例代码: <pre class="brush:java;toolbar: true; auto-links: false;">stream .from().measurement('cpu_usage_idle') .gro...阅读全文
mgmt 是一个分布式的,事件驱动的配置管理工具。该工具支持并行执行,其 librarification 作为新的及已存在的软件的基础管理工具。阅读全文
这是一个使用golang开发的ID生成器,它可以提供通过高效的方式产生连续唯一的ID值。在分库分表时可以提供非常有用的帮助。 **为什么要做id生成器** ** ** **如何实现的** go-id-builder使用mysql来做为最大id数的持久化存储。程序在每次启动的时候都会加载数据表中当前的所记录的id类型,将会自动申请1000个(配置文件中可修改)新的id号,加载到一个缓冲通道中,当用户向生成器的api接口发起请求时,从对应的缓冲通道中将数据取出返回给客户端。阅读全文
Gom 是一个可视化界面,处理 Go 程序的运行时间分析数据(runtime profiling data )。 ## Goals * 构建一个轻量级的工具,处理运行时间分析(runtime profiles ) * gom 不准备提供命令行工具那样的高细粒度的特性,用户需要更复杂功能时可求助 `go tool pprof` 工具 * 允许用户通过符号名字进行过滤,隐藏、忽略。 * 提高对 Go 的分析工具和软件包的关注度。 * 在其它可能的地方提供额外的轻量级数据 ### Min...阅读全文
gocryptfs 是一个使用 Go 开发的,加密的覆盖文件系统。gocryptfs 基于 [go-fuse](https://github.com/hanwen/go-fuse) FUSE 库和其 LoopbackFileSystem API 构建。gocryptfs 灵感来源于 [EncFS](http://www.oschina.net/p/encfs),修复了其安全问题,提供更好的性能。 gocryptfs 当前只支持 Linux 系统,以后会继续支持 OS X。 安装: <pre...阅读全文
pingd 是世界上最简单的监控服务,使用 golang 编写。软件支持 IPv6,但是服务器不支持。 pingd 允许同时 ping 上千个 IPs,在此期间还可以管理监控的主机。 用户提供主机名或者 IP,还有用户邮箱地址,就可以使用 3 个生成 URLs 来开启,停止或者删除你的追踪。每当你的服务器停机或者后台在线都会发送通知,还包含控制 URLs。 <pre class="brush:shell;toolbar: true; auto-links: false;">~$# star...阅读全文
Yoke 是 Postgres 的高可用集群,具有自动切换和自动集群恢复。Postgres冗余/自动故障转移解决方案,提供一个高可用PostgreSQL集群的简单管理。 Yoke 依赖: * 包含 'primary', 'secondary' 和 'monitor' 三个节点的 3-server 集群 * 'primary' & 'secondary' 节点需要互相之间进行 ssh 连...阅读全文
idgo是一个利用MySQL批量生成ID的ID生成器, 主要有以下特点: * 每次通过事务批量取ID,性能较高,且不会对MySQL造成压力. * 当ID生成器服务崩溃后,可以继续生成有效ID,避免了ID回绕的风险. 业界已经有利于MySQL生成ID的方案,都是通过: <pre class="brush:sql;toolbar: true; auto-links: false;">REPLACE INTO Tickets64 (stub) VALUES ('a'); SEL...阅读全文
Cloud Foundry-Mesos框架由华为与Mesosphere的工程师合作完成,能够为应用提供安全可靠的、可伸缩、可扩展的云端运行环境,并且应用能够 享用Cloud Foundry生态圈内各类丰富的服务资源。企业能够通过Cloud Foundry开发云应用,并通过Cloud Foundry-Mesos将应用部署到DCOS上,使应用能够与DCOS上安装的其他服务及应用框架共享资源,实现资源利用率最大化,能够大幅降低企业 数据中心运营成本。DCOS能够运行在虚拟和物理环境上,能够支持Lin...阅读全文
Bench 是一个通用的延迟基准库。它有简单的界面,可以测试各种系统。Bench 每秒发出固定频率的请求,并且同步测量每个请求的延迟。延迟通过 [HDR Histogram](https://github.com/codahale/hdrhistogram) 捕捉,它可以观察整个延迟,并校正 [Coordinated Omission](https://groups.google.com/forum/#%21msg/mechanical-sympathy/icNZJejUHfE/BfDekfBE...阅读全文
REX-Ray 是一个 EMC {code} 团队领导的开源项目,为 Docker、Mesos 及其他容器运行环境提供持续的存储访问。其设计旨在囊括通用存储、虚拟化和云平台,提供高级的存储功能。 当前支持的系统: * Ubuntu * Debian * RedHat * CentOS * CoreOS * OSX 运行时 CLI: <pre class="brush:shell;toolbar: true; auto-links: false;">$ export REXRAY...阅读全文
go-fuzz 是 Go 语言的随机测试工具,是覆盖驱动的 fuzzing 解决方案。Fuzzing 主要是应用在解析复杂输入的包(文本或者二进制)。 使用: <pre class="brush:shell;toolbar: true; auto-links: false;">func Fuzz(data []byte) int</pre>阅读全文
Redigo 是 Redis 数据库的 Go 客户端。 ### 特性 * 一个[类似 Print](http://godoc.org/github.com/garyburd/redigo/redis#hdr-Executing_Commands) 的 API,支持所有 Redis 命令 * [Pipelining](http://godoc.org/github.com/garyburd/redigo/redis#hdr-Pipelining),包含管道事物 * [发布/订阅](http...阅读全文
fabio 是一个快速、现代、zero-conf 负载均衡 HTTP(S) 路由器,用于部署 consul 管理的微服务。 fabio 由 eBay Classifieds Group 开发, 用于处理 marktplaats.nl 和 kijiji.it 的流量。Marktplaats 所有的流量都经过 fabio ,每秒有数千个请求,分发于数个 fabio 实例。但我们并没有观察到任何延迟。 特性: * Go 语言单一二进制,没有额外的依赖。 * Zero-conf * 通过后台观察器...阅读全文
DegDB 是分布式的经济图数据库。 运行: go run main.go -new -peers="example.com:8181,foo.io:8182"阅读全文
**go-itergen** 解决了 Go 一个常规而又非常重要的问题:没有映射,没有过滤器,什么都没有。如果你是函数式背景会感到非常苦恼,现在 got-itergen 提供 Go 的常规函数生成功能,为可迭代的类型生成常规函数,比如 map 和 filter。 go-itergen 支持的操作: * **Map** * **Filter** * **All** * **Some** * **Concat** * **Find** * **ForEach** * **Rever...阅读全文
Glide 是 Golang 的 Vendor 包管理器,方便你管理 vendor 和 verdor 包。 主要特性: * 简单管理依赖 * 支持 **versioning packages**,包括 [Semantic Versioning 2.0.0](http://semver.org/) 支持 * 支持 **aliasing packages** (e.g. for working with github forks) * Remove the need for munging...阅读全文
RobustIRC 是不会有网络中断情况的 IRC。 RobustIRC 主要特性: * 服务器不可用的时候不会有网络中断 * 可以使用标准 IRC 客户端 * 健壮,可以很好处理客户端和网络的连接问题阅读全文
proxyblock 是一个代理,使用白名单/黑名单来阻止不想看到的网页的内容,例如:广告、第三方 javascript 和其它 cruft。这个代理插入一个 iframe 到网页内容,运行用户来调节代理。 ![screenshot 0](http://static.oschina.net/uploads/img/201511/02110209_Jcmj.png)阅读全文
bfs 是使用 Go 编写的分布式文件系统(小文件存储)。阅读全文
KiteQ 是一个基于 go + [protobuff](http://www.oschina.net/p/protocol+buffers) 实现的多种持久化方案的 mq 框架(消息队列)。 特性: <pre>* 基于zk维护发送方、订阅方、broker订阅发送关系、支持水平、垂直方面的扩展 * 基于与topic以及第二级messageType订阅消息 * 基于mysql、文件存储方式多重持久层消息存储 * 保证可靠异步投递 * 支持两阶段提交分布式事务</pre> 工程结构: <pr...阅读全文
Tyk 是一个开源的、轻量级的、快速可伸缩的 API 网关,支持配额和速度限制,支持认证和数据分析,支持多用户多组织,提供全 RESTful API。 ![image](http://static.oschina.net/uploads/img/201408/14081242_DbHp.png)阅读全文
Machinery 是一个 Go 语言的异步任务队列和作业队列,基于分布式消息传递。类似 Python 的 [Celery](http://www.oschina.net/p/celery) 框架。 Machinery 中的任务(或者作业)可通过多个 worker 在很多服务器上并发的执行,或者可在单个服务器上利用 Go 的协程运行多个 worker 进程。 ![Example worker receives tasks](http://static.oschina.net/uploads/...阅读全文
Libnetwork 提供一个原生 Go 实现的容器连接,是容器的网络。libnetwork 的目标是定义一个健壮的容器网络模型(Container Network Model),提供一个一致的编程接口和应用程序的网络抽象。 Libnetwork一开始的代码只是 libcontainer 和 Docker Engine 中网络部分代码的合并,Docker 官方的愿景是希望 libnetwork 能像 libcontainer 一样,成为一个多平台的容器网络基础包。 受之前的一个 [GitHu...阅读全文
gopee 是一个 go 语言编写的 HTTP 的代理服务。相当于提供一个被屏蔽网站的简单访问方法。 你可以将它部署到一些 paas 平台上,下面是一个演示地址: [https://gopee.herokuapp.com/](https://gopee.herokuapp.com/) ![image](http://static.oschina.net/uploads/space/2015/0102/082844_2Mul_12.png)阅读全文
Leaf 是一个使用 Go 语言开发的开源游戏服务器框架,注重运行效率 并追求极致的开发效率。Leaf 适用于几乎所有的游戏类型。其主要的特性: * 良好的使用体验。Leaf 总是尽可能的提供简洁和易用的接口,尽可能的提升开发的效率 * 稳定性。Leaf 总是尽可能的恢复运行过程中的错误,避免崩溃 * 多核支持。Leaf 通过模块机制和 [leaf/go](https://github.com/name5566/leaf/tree/master/go) 尽可能的利用多核资源,同时又尽量避...阅读全文
Bat 是使用 Go 实现的 CLI 工具,类似 [cURL](http://www.oschina.net/p/curl) 的工具,可以说是 Go 语言版本的 cURL 。Bat 可以用来测试,调试和 HTTP 服务器进行一般的交互。 ![image](http://static.oschina.net/uploads/space/2015/0410/124843_xrWw_245869.png) ### 主要特性 * 表达式和直观的语法 * 内置 JSON 支持 * 表单和...阅读全文
Docopt。抛弃optparse和argparse吧,使用docstrings来构建优雅的,可读性强的,并且复杂(如果你需要的话)的命令行界面。Docopt 提供多种语言版本,包括:Java、Python、PHP、C/C++、.NET、D语言、Scala、Go 语言等,详细列表请看 [https://github.com/docopt/](https://github.com/docopt/) <pre class="brush:shell;toolbar: true; auto-links...阅读全文
TChannel 是用于 RPC 的网络复用和成帧协议。 ### 设计目的 * 容易用多种语言实现,尤其是 JS 和 Python。 * 高性能转发路径。中间件可以快速做出转发决策。 * 请求/回复模型不再按顺序,慢速请求不会堵在队列前头,阻止后续的快速请求。 * 大型请求/响应,可能/必须分成碎片成片,逐步发送。 * 可选 checksums. * 可用于在端点之间输送多种协议,例如 HTTP+ JSON 和 Thrift。阅读全文
Fragmenta CMS 是一个用户友好的内容管理系统,用 Go 编写。 Fragmenta CMS 可以让你快速建立网站,它包办了创建网站的一般性的繁琐工作,包括:用户登录,网页,博客文章等,让你专注于你 app 自身的特点,你可以: * 简单部署 —— 你只需要一个数据库和fragment —— 与内置的Web服务器本地进行测试 * 使用与你网站相同的风格进行Rich editing * 免费且开源 (MIT) ——下载二进制文件或自己编译阅读全文
# 欢迎使用 gonet/2是新一代游戏服务器骨架,基于[go语言](http://golang.org/)开发,采用了先进的[http/2](http://http2.github.io/)作为服务器端主要通信协议,以[microservice](http://martinfowler.com/articles/microservices.html)作为主要思想进行架构,采用[docker](https://www.docker.com/)作为服务发布手段。相比第一代[gonet](http...阅读全文
一个[Neovim](http://www.oschina.net/p/neovim) go的开发插件 [![YouTube demo of plugin in action](https://camo.githubusercontent.com/215a977a12d6780aa223c911febf294b7e5dae12/687474703a2f2f696d672e796f75747562652e636f6d2f76692f72374177357a6e52664e412f302e6a70...阅读全文
AdBlockPlus parser ,匹配和透明的HTTP/ HTTPS代理 ## abpcheck:一个命令行实用程序验证AdBlockPlus规则,运行: $ abpcheck easylist.txt 打印不能由 adblock package 进行解析的任何规则。 adblock: 实现解析器和匹配的AdBlockPlus规则。 adstop:广告拦截透明的HTTP/ HTTPS代理。 它被设计为低功耗,低内存的ARM设备上运行...阅读全文
Nomad 是一个集群管理器和调度器,专为微服务和批量处理工作流设计。Nomad 是分布式,高可用,可扩展到跨数据中心和区域的数千个节点。 Nomad 提供一个常规工作流跨基础设施部署应用。开发者使用一个声明式作业规范来定义应用该如何部署,资源有什么要求(CPU,内存,硬盘)。Nomad 接收这些作业,查找可用的资源来运行应用。调度算法确保所有的约束都满足,尽量在一个主机部署尽可能多的应用,优化资源利用。此外,Nomad 支持在所有主流操作系统运行虚拟化,容器化或者是独立的应用,灵活的支持广...阅读全文
Gryffin 是雅虎开发的一个大规模 Web 安全扫描平台。它不是另外一个扫描器,其主要目的是为了解决两个特定的问题 —— 覆盖率和伸缩性。 该平台采用 Go 语言开发,依赖: 1. Go 2. PhantomJS, v2 3. Sqlmap (for fuzzing SQLi) 4. Arachni (for fuzzing XSS and web vulnerabilities) 5. NSQ , 6. Kibana and Elastic search, for dashb...阅读全文
Nefarious IDE 是一个 [Eclipse](http://www.oschina.net/p/eclipse) 用来开发 [Google Go](http://www.oschina.net/p/go) 编程语言程序的插件。 **目前该项目的官方首页被禁止打开,不知何故。** ![image](http://www.oschina.net/uploads/img/201003/10222421_55ba.png) 目前实现的功能还比较简单,主要包括: - syntax h...阅读全文
Shipyard 是一个基于 Web 的 [Docker](http://www.oschina.net/p/docker) 管理工具,支持多 host,可以把多个 Docker host 上的 containers 统一管理;可以查看 images,甚至 build images;并提供 RESTful API 等等。 Shipyard 要管理和控制 Docker host 的话需要先修改 Docker host 上的默认配置使其支持远程管理。 ![Login](http://static....阅读全文