gmcache一个用go写的分布式缓存,类似memcached

stirlingx 发表了文章 • 0 个评论 • 80 次浏览 • 1 天前 • 来自相关话题

主要是用来练手的,欢迎大家仍砖头

  • 使用ectd做服务发现
  • broker作为代理服务器,对client的请求做转发,用一致性hash算法对key映射到后端gmcache。

项目地... 查看全部

主要是用来练手的,欢迎大家仍砖头



  • 使用ectd做服务发现

  • broker作为代理服务器,对client的请求做转发,用一致性hash算法对key映射到后端gmcache。


项目地址:


https://github.com/liyue201/gmcache


Gmcache


A distributed key/value memory cache written in go.


Features



  • Light weight

  • Pure golang

  • Supports set,get and delete

  • Supports grpc and http protocols

  • Scalable architecture


Architecture


gmcache-cluster

beegoapix - beego api extension

luffyke 发表了文章 • 0 个评论 • 57 次浏览 • 2 天前 • 来自相关话题

beegoapix

beegoapix is beego api extension framework, to develop more faster api service.

Install

查看全部
					

beegoapix


beegoapix is beego api extension framework, to develop more faster api service.


Install


go get github.com/luffyke/beegoapix

Function



  1. accept all client http request, reflect and call sub-controller to handle request(v0.1)

  2. log request and response(v0.1)

  3. error handling(v0.1)

  4. version control(v0.2)

  5. priviledge(v0.2)

  6. combine controller

  7. cache(etag)


Demo


make sure have installed beego and bee tool.


new api project


bee api hello

edit router.go


package routers

import (
"hello/controllers"
"github.com/luffyke/beegoapix"
)

func init() {
beegoapix.Router()
// add your business path mapping
beegoapix.RegController("app", controllers.AppController{})
}

write your business controller


package controllers

import (
"github.com/luffyke/beegoapix/api"

"github.com/astaxie/beego/logs"
)

type AppController struct {
}

func (this *AppController) CheckVersion(request api.ApiRequest) (response api.ApiResponse) {
logs.Debug(request.Id)
logs.Debug(request.Data["versionCode"])
response.Data = make(map[string]interface{})
response.Data["versionName"] = "version name 1.0"
return response
}

run the server


bee run

post the request


http://localhost:8080/v1/app/check-version

request


{
"id":"12345678",
"sign":"abc",
"client":{
"caller":"app",
"os":"android",
"ver":"1.0",
"platform":"android",
"ch":"offical",
"ex":{
"imei":"1a2b3c"
}
},
"page":{
"page":1,
"size":10
},
"user":{
"uid":"123",
"sid":"abc"
},
"data":{
"versionCode":"v1.0.0"
}
}

response

{
"state": {
"code": 0,
"msg": ""
},
"data": {
"versionName": "version name 1.0"
}
}

Android demo


please reference to project beegoapix-android-demo

go-workerpool 支持每分钟百万并发的抽象原型

qianguozheng 发表了文章 • 0 个评论 • 115 次浏览 • 6 天前 • 来自相关话题

使用 Golang 实现了一个简单的消费者模式, 主要解决每分钟百万请求的问题。

基本原理:建立固定的工作线程去缓冲池中取数据处理。以此来控制固定时间内处理的请求数

源码地址

查看全部

使用 Golang 实现了一个简单的消费者模式, 主要解决每分钟百万请求的问题。


基本原理:建立固定的工作线程去缓冲池中取数据处理。以此来控制固定时间内处理的请求数


源码地址


https://github.com/qianguozheng/go-workerpool.git


用途



  1. 控制goroutine的数目

  2. 简练模型


实际使用场景及灵感来源


http://marcio.io/2015/07/handling-1-million-requests-per-minute-with-golang/

Grumpy:Google开源神器 Go上运行Python

wwdyy 发表了文章 • 0 个评论 • 305 次浏览 • 2017-01-07 13:46 • 来自相关话题

Grumpy是一个Python to Go的源码源代码翻译编译器和运行时,旨在取代CPython 2.7。

关键区别在于,Grumpy是将Python源码编译为Go源代码,然后将其编译为本地代码,而不是字节码。这也就意味着Grumpy没... 查看全部

Grumpy是一个Python to Go的源码源代码翻译编译器和运行时,旨在取代CPython 2.7。


关键区别在于,Grumpy是将Python源码编译为Go源代码,然后将其编译为本地代码,而不是字节码。这也就意味着Grumpy没有虚拟机(VM)。编译好的Go源码是对Grumpy运行时的一系列调用,一个Go库服务于具有相似目的的Python C API(尽管不直接支持C API)。


运行Grumpy程序


方法1:grumprun:


执行Grumpy程序的最简单方法就是使用make run,它封装了一个名为grumprun的shell脚本,它将stdin上的Python代码基于Grumpy构建和运行。以下所有的命令都假设从Grumpy源码根目录开始运行:


echo "print 'hello, world'" | make run

方法2:grumpc


对于复杂一些的程序,你需要使用grumpc把Python代码编译成Go源码以后再进行构建。首先,写一个简单的.py脚本;


echo 'print "hello, world"' > hello.py

接下来,创建工具链并导出一些使工具链工作的环境变量:


 make

export GOPATH=$PWD/build

export PYTHONPATH=$PWD/build/lib/python2.7/site-packages

最后,编译Python脚本并从中构建一个二进制文件:


tools/grumpc hello.py > hello.go

go build -o hello hello.go

好了,现在执行./hello二进制到你的核心内容里即可。


关于Grumpy更多内容,大家可以访问其源码托管地址:https://github.com/google/grumpy

Gitea 发布 1.0.1版本

lunny 发表了文章 • 0 个评论 • 159 次浏览 • 2017-01-05 22:52 • 来自相关话题

很高兴的宣布我们今天发布了Bug修订版 Gitea v1.0.1。这个版本我们合并了 查看全部

很高兴的宣布我们今天发布了Bug修订版 Gitea v1.0.1。这个版本我们合并了 9 个提交请求。你可以从 下载页面 下载二进制文件,注意选择适合你的平台。更多详细安装信息请参见 安装向导.


变更日志



  • BUGFIXES

    • Fixed localized MIN_PASSWORD_LENGTH #501

    • Fixed 500 error on organization delete #507

    • Ignore empty wiki repo on migrate #544

    • Proper check access for forking #563

    • Fix SSH domain on installer #506

    • Fix missing data rows on admin UI #580

    • Do not delete tags with releases by default #579

    • Fix missing session config data on admin UI #578

    • Properly show the version within footer on the UI #593


数人云Mesos调度器Swan v0.2最新功能演示

数人云 发表了文章 • 0 个评论 • 133 次浏览 • 2016-12-29 11:00 • 来自相关话题

数人云Mesos调度器Swan开源已经一个月啦,在社区和大家的共同呵护下成长了许多。小数带来了Swan v0.2的新版本,添加了很多新功能,工程师为了... 查看全部

数人云Mesos调度器Swan开源已经一个月啦,在社区和大家的共同呵护下成长了许多。小数带来了Swan v0.2的新版本,添加了很多新功能,工程师为了大家更好地了解Swan的新功能,为大家提供了录屏,欢迎收看!


腾讯地址:
https://v.qq.com/x/page/p0358dzspz5.html


Fork me on GitHub!
https://github.com/Dataman-Cloud/swan


关于数人云Mesos调度器Swan


Swan是基于Mesos Restful API编写的应用调度框架,可以帮助用户轻松发布应用,实现应用的滚动更新,并根据用户指定的策略做应用的健康检测和故障转移。

【goxel】Go 版的 axel 小工具

山羊wayne 发表了文章 • 0 个评论 • 218 次浏览 • 2016-12-20 14:21 • 来自相关话题

之前练手写的一个小工具 goxel,类似于 axel,如果你感觉对你有用或者还不错,不要吝啬你的 Star 哈,当然有任何问题或者改进也请告诉我... 查看全部

之前练手写的一个小工具 goxel,类似于 axel,如果你感觉对你有用或者还不错,不要吝啬你的 Star 哈,当然有任何问题或者改进也请告诉我。


goxel




Description


goxel like axel tool

Installation


$ go get github.com/WayneZhouChina/goxel

Usage


goxel [options...] <url>

Options:
-n Numbers of blocks to run(must).
-H Add header string.
-v More status information.
-o Specify local output file(must).
-h Help information.
-V Version information.
-cpus Number of used cpu cores(Default is current machine cores).

Example:


goxel -n 10 -o outfile http://xxx.com

版本更新 | Mesos调度器Swan v0.2来啦

数人云 发表了文章 • 0 个评论 • 124 次浏览 • 2016-12-13 19:22 • 来自相关话题

数人云Mesos调度器 Swan开源已经... 查看全部


数人云Mesos调度器 Swan开源已经一个月啦,在社区和大家的共同呵护下成长了许多。今天小数带来了Swan v0.2的新版本,添加了很多新功能,大家快来看看吧——




Feature List



  • Uri 支持:支持自定义资源,支持多资源下载

  • PortIndex:支持端口命名,健康检测支持portIndex,portName和portValue

  • Cli:命令行工具

  • Heathcheck:支持mesos自带的healthcheck,http和tcp两种

  • Raft:高可用,分布式数据复制和leader选举

  • Proxy:自带proxy功能,支持负载均衡

  • DNS:自带DNS功能,支持域名解析

  • 一容器一IP:支持IP地址固定分配,一容器一IP

  • Constraints:支持约束条件,UNIQUE和LIKE


Fork me on GitHub!
https://github.com/Dataman-Cloud/swan


关于数人云Mesos调度器Swan


Swan是基于Mesos Restful API编写的应用调度框架,可以帮助用户轻松发布应用,实现应用的滚动更新,并根据用户指定的策略做应用的健康检测和故障转移。

Go 语言 http/https 文件服务器

Akagi201 发表了文章 • 0 个评论 • 179 次浏览 • 2016-12-09 16:49 • 来自相关话题

serve

Repo: https://github.com/Akagi201/serve

Simple http serve... 查看全部

serve


Repo: https://github.com/Akagi201/serve


Simple http server for localhost development


Features



  • [x] Use gohttp as http framework.

  • [x] Static http file server.

  • [x] Support https.

  • [ ] Support http2.

  • [ ] Support WebSocket.

  • [ ] Support browser-sync like features.


Build



  • docker: docker build -t serve .

  • go build -o serve


Install



  • go get github.com/Akagi201/serve


Run



  • ./serve -h

  • openssl genrsa -out server.key 2048

  • openssl req -new -x509 -key server.key -out server.crt -days 365

  • sudo ./serve --http=0.0.0.0:8888 --domains=akagi201.org

Go 语言 udpproxy 调试工具

Akagi201 发表了文章 • 0 个评论 • 97 次浏览 • 2016-12-09 16:47 • 来自相关话题

udpproxy


Repo: https://github.com/Akagi201/udpproxy


A simple UDP Proxy Server in Golang.


Features



  • [x] one source, multi target based on copy.


Build



  • docker: docker build -t udpproxy .

  • go build main.go -o udpproxy


Run



  • --source: data source, default source is :2203.

  • --target: data target, e.g. ip:port.

  • --quiet: whether to print logging info or not.

  • --buffer: default is 10240.

最简 Go 语言 类 koa web 框架

Akagi201 发表了文章 • 0 个评论 • 209 次浏览 • 2016-12-09 13:19 • 来自相关话题

light


Repo: https://github.com/Akagi201/light


Build Status Coverage Status Go Report Card GoDoc


light


Light is a minimal web framework in Go.


Features



  • [x] Use pat as http router

  • [x] Use alice to manage middlewares.


Install



  • go get github.com/Akagi201/light


Import



  • import "github.com/Akagi201/light"

Go 语言 httpdump server 调试工具

Akagi201 发表了文章 • 0 个评论 • 120 次浏览 • 2016-12-09 13:17 • 来自相关话题

httpdump


Repo: https://github.com/Akagi201/httpdump


Simple Golang HTTP Server which dumps the incoming client headers and body


Build



  • docker: docker build -t httpdump .

  • go build main.go -o httpdump


Run



  • --host: default host is 0.0.0.0.

  • --port: default port is 2222.

Go 语言 udp server 调试工具

Akagi201 发表了文章 • 0 个评论 • 79 次浏览 • 2016-12-09 13:16 • 来自相关话题

udpdump

Repo: https://github.com/Akagi201/udpdump

Simple Gola... 查看全部

udpdump


Repo: https://github.com/Akagi201/udpdump


Simple Golang UDP Server which dumps the incoming client sending message.


Build



  • docker: docker build -t udpdump .

  • go build main.go -o udpdump


Run



  • --host: default host is 127.0.0.1

  • --port: default port is 2202

  • --file: If set, the received data will be dumped to the file.

  • --buffer: default is 10240

Go 语言 Web tail -f 工具, 基于 WebSocket

Akagi201 发表了文章 • 0 个评论 • 131 次浏览 • 2016-12-09 13:14 • 来自相关话题

WebTail

Repo: https://github.com/Akagi201/webtail

Realtime ta... 查看全部

WebTail


Repo: https://github.com/Akagi201/webtail


Realtime tail -f logs on the web


Features



  • [x] Use websocket to receive realtime log.

  • [x] Support go-bindata.

  • [ ] Support multi-files to display.


Build



  • ./gobin.sh

  • go build


Run



  • ./webtail --log=/tmp/xxx.log

Go 语言 http/https 文件服务器

回复

Akagi201 发起了问题 • 1 人关注 • 0 个回复 • 191 次浏览 • 2016-12-09 13:13 • 来自相关话题