项目官方地址:https://github.com/Terry-Mao/goim/blob/master/README_cn.md
一:安装jdk1.8及以上版本
可参考链接:https://www.cnblogs.com/Dylansuns/p/6974272.html
进入到该目录没有则创建:cd /data/programfiles
下载:wget http://download.oracle.com/otn-pub/java/jdk/8u25-b17/jdk-8u25-linux-x64.rpm?AuthParam=1421409865_906dd11e2cabef6e49c0a4e4b1a92b3a
解压:tar -zxvf jdk-8u162-linux-x64.tar.gz -C /usr/local
二:安装Kafka,安装之前先安装zookeeper
zookeeper安装教程:https://www.cnblogs.com/myjava1/p/8032216.html
Kafka安装教程:http://www.mamicode.com/info-detail-1735252.html
kafka自带启动zookeeper
cd /root/kafka_2.12-1.1.0
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/zookeeper-server-stop.sh
启动kafka命令
bin/kafka-server-start.sh config/server.properties &
停止kafka命令:
bin/kafka-server-stop.sh
创建Topic:(创建一个名为xxx的topic,只有一个副本,一个分区。)
bin/kafka-topics.sh --create --zookeeper 192.168.100.252:2181 --replication-factor 1 --partitions 1 --topic KafkaPushsTopic
启动Producer并发送消息:
bin/kafka-console-producer.sh --broker-list 192.168.100.252:9092 --topic KafkaPushsTopic
启动Consumer并接收消息
bin/kafka-console-consumer.sh --bootstrap-server 192.168.100.252:9092 --topic KafkaPushsTopic --new-consumer --from-beginning --consumer.config config/consumer.properties
三:安装golang
1.下载源码(根据自己的系统下载对应的安装包)版本太低部署goim时会报错(man.main等等错误)
$ cd /data/programfiles
$ wget -c --no-check-certificate https://storage.googleapis.com/golang/go1.9.2.linux-amd64.tar.gz
$ tar -xvf go1.5.2.linux-amd64.tar.gz -C /usr/local
2.配置GO环境变量
$ vi /etc/profile
# 将以下环境变量添加到profile最后面
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/data/apps/go
$ source /etc/profile
四、部署goim
(出错解决方法)
如果配置GOBIN后go ./...没有在/data/apps/go文件里生成bin,pkg文件夹,则在配置的GOBIB里找到bin,pkg文件夹复制到/data/apps/go文件夹里
go get golang.org/x 包失败解决方法 https://blog.csdn.net/alexwoo0501/article/details/73409917
package golang.org/x/net/websocket: unrecognized import path "golang.org/x/net/websocket" (https fetch: Get https://golang.org/x/net/websocket?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
不翻墙的情况下怎么解决这个问题?其实 golang 在 github 上建立了一个镜像库,如 https://github.com/golang/net 即是 https://golang.org/x/net 的镜像库
获取 golang.org/x/net 包,其实只需要以下步骤:
mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/net.git
1.下载goim及依赖包
$ yum install hg
$ go get -u github.com/Terry-Mao/goim
$ mv $GOPATH/src/github.com/Terry-Mao/goim $GOPATH/src/goim
$ cd $GOPATH/src/goim
$ go get ./...
2.安装router、logic、comet、job模块(配置文件请依据实际机器环境配置)
$ cd $GOPATH/src/goim/router
$ go install
$ cp router-example.conf $GOPATH/bin/router.conf
$ cp router-log.xml $GOPATH/bin/
$ cd ../logic/
$ go install
$ cp logic-example.conf $GOPATH/bin/logic.conf
$ cp logic-log.xml $GOPATH/bin/
$ cd ../comet/
$ go install
$ cp comet-example.conf $GOPATH/bin/comet.conf
$ cp comet-log.xml $GOPATH/bin/
$ cd ../logic/job/
$ go install
$ cp job-example.conf $GOPATH/bin/job.conf
$ cp job-log.xml $GOPATH/bin/
到此所有的环境都搭建完成!
五、启动goim()
/data/logs/goim/panic-router.log 如果没有该文件在对应位置创建
$ cd /$GOPATH/bin
$ nohup $GOPATH/bin/router -c $GOPATH/bin/router.conf 2>&1 > /data/logs/goim/panic-router.log &
$ nohup $GOPATH/bin/logic -c $GOPATH/bin/logic.conf 2>&1 > /data/logs/goim/panic-logic.log &
$ nohup $GOPATH/bin/comet -c $GOPATH/bin/comet.conf 2>&1 > /data/logs/goim/panic-comet.log &
$ nohup $GOPATH/bin/job -c $GOPATH/bin/job.conf 2>&1 > /data/logs/goim/panic-job.log &
如果启动失败,默认配置可通过查看panic-xxx.log日志文件来排查各个模块问题.
然后在example 下面有 demo 页面。
编译 main ,然后启动:
附带其它相关配置链接:
编译构建goim项目:http://www.th7.cn/Program/go/201712/1290383.shtml
Linux安装go环境:https://www.cnblogs.com/rookie404/p/6358596.html
go语言中文网:https://studygolang.com/pkgdoc
GOBIN环境变量的问题,如果设置了这个环境变量,则不生成bin目录,可执行文件都存到GOBIN里。
如果使用go build需要使用-o参数指定生成的编译后的文件的路径。
gopath里bin目录存的是编译后生成的可执行文件
PS:会考虑这个是另外的原因,go get websock时
要先
go get github.com/golang/net/websocket
然后
mv github.com/golang/net/websocket golang.org/x/net/websocket
然后import的时候用 golang.org/x/net/websocket
特别的蛋疼