自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

范安崇的博客

不积跬步,无以至千里;不积小流,无以成江海。

  • 博客(11)
  • 收藏
  • 关注

原创 Portainer 搭建 - Docker Swarm GUI Client(备忘)

一直直接远程终端操作Docker Swarm。今见网友使用Portainer管理客户端,甚是好用下面是搭建过程:创建 docker secrethtpasswd -nb -B admin 123456 | cut -d ":" -f 2echo -n '$2y$05$2pB5EZoxoQ6rfiULGeO8YO3mSwCXgYDVhjd6GLHZ7fDn2ur.6ZN0.' | docker s

2017-11-21 14:33:01 859

原创 Go游戏服务器开发的一些思考(二十六):Go Redis ORM库

ORM对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping)。通常指,数据库到程序内类对象的映射。程序中使用ORM的好处使用ORM,字段更改,编译器能做编译错误检查 直接使用数据库命令字符串,做修改,需要人工排查使用ORM,隐藏背后数据库操作策略 能比较容易做到,直接调用Load()、Save()这样的简单函数,使用

2017-11-19 14:20:17 2545

原创 behavior3editor生成过程(备忘)

1. 下载nodejs, node-v9.1.0-linux-x64.tar.xz,解压,进入目录:cp -r bin/* /usr/local/bin/cp -r include/* /usr/local/include/cp -r lib/* /usr/local/lib/cp -r share/* /usr/local/share/(window 直接下载安装程序安装)2.npm i

2017-11-14 12:09:03 2760 2

原创 Go游戏服务器开发的一些思考(二十五):Redis的Docker Swarm部署

痛点在redis 4出来之前,redis哨兵、redis集群 是无法通过简单的方式支持Docker Swarm的。原因是Docker Swarm的NAT端口映射机制,会导致redis无法正确获取宿主IP、端口。在redis 4之后,官方通过在redis.conf 、redis_sentinel.conf中,新增了slave-announce-ip、slave-announce-port、s...

2017-11-12 18:59:13 2467

原创 Go游戏服务器开发的一些思考(二十四):命令行库封装技巧

为什么使用命令行通常,游戏开发时,服务器端会使用配置文件,如json文件来配置启动时的程序参数。这样做有一个问题,配置文件会导致 Docker Swarm编排脚本变的复杂,难写。相反Docker Swarm编排脚本对命令行参数支持的非常好。道理很简单,若是配置文件,则需要做进镜像中,使得镜像做好后,镜像内的配置文件,已经没办法修改了!如果是命令行参数,则可以在编排脚本中,自由更改启动时的命令行参数!

2017-11-10 00:19:56 601

原创 Dockerfile脚本示例:Python3+Protobuf+wxPython

废话不多说,直接上脚本。(友情提示:本脚本并没有考虑镜像大小问题!)FROM pythonRUN git clone https://github.com/openx/python3-protobuf.gitRUN cd python3-protobuf && git clone https://github.com/google/googletest.git && mv googletest g

2017-11-09 18:14:18 1298

原创 goclipse的autoimport(备忘)

默认安装好的goclipse插件后,是不会自动补全import语句。有第3方插件:GoImports可以实现补全import语句。安装步骤如下:Execute go get golang.org/x/tools/cmd/goimportsGo to Preferences -> GoSet gofmt to ${GOPATH}/bin/goimports (which is where goi

2017-11-08 21:59:12 428 2

原创 Go游戏服务器开发的一些思考(二十三):Go语言Log库封装技巧

问题由来这里又涉及到Go语言的一处脑残设定。在C++中,#include 语句,会递归include .h文件中的.h文件。 这样做的好处是:很多.h文件只需要写include语句一次,基本上整个项目都可以用 这样做的坏处是:编译时间会变长于是,Go语言做了“优化”。import语句是不会递归import文件中的文件。 然后就是一个项目中,几乎每个文件中,都要敲一遍类似下面的语句

2017-11-06 23:07:41 907

原创 Go游戏服务器开发的一些思考(二十二):Godep包管理介绍

Godep介绍在21章中,介绍了官方go get的缺陷。go get最主要的问题是没有版本号的概念。每次拉取的都是master分支。本章将介绍下,一个github上开源的包管理项目:Godep。github地址为: https://github.com/tools/godep该工具可以将项目中所依赖的第3方库,以及版本号保存到名为Godeps.json的json文件中。并可以根据Godeps.

2017-11-04 21:18:49 982

原创 Go游戏服务器开发的一些思考(二十一):Go语言的两处脑残设定

总体来说,使用Go语言开发,可以极大的提高生产力。然而也有几处脑残设定,让人诟病不已。声明与实现不分离C++中,有.h、.cpp文件的概念。即可以做到声明与实现分离。这种特性可以带来很多优点:类结构清晰,方便阅读代码支持模块间相互引用的问题可以隐藏实现,只提供.h和.a的方式来提供库上面的几个优点,可能对于大多数程序来说,这不是很平常的事吗,是语言不是都有这样的功能吗…其实不是的。Go语言的

2017-11-04 09:28:50 2699

原创 Go游戏服务器开发的一些思考(二十):Docker Swarm部署Etcd示例

静态配置方式部署Etcd集群在部署Etcd集群时,可以通过给每个etcd实例配置etcd集群所有IP的方式来部署。这种方式,不是很灵活。比如 换机器、IP变了、机器当机等等,都会破坏这种部署配置。而通过 Docker Swarm方式,可以完美解决上述问题。使得即便是静态配置,也可以通过Docker Swarm自身,让etcd进程失效时,自动在Docker Swarm所管理的机器群上自动切换。从而保持

2017-11-03 00:17:09 745

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除