最近写的一个项目,用了一个神奇的玩意儿,zeroMq.本来go使用第三方库只需要go get -u "xxx" ,一下就好了,但这个不行.go语言中拉完三方库后,需要有一个gcc的环境才能将项目正常启动.
go get -u "github.com/pebbe/zmq4"
1.使用方法
上面的安装好zmq的三方库之后,需要在windows电脑上搭建一个gcc的环境.
安装mingw 地址 , 根据你自己电脑是32位还是64位选择.
安装完成之后,配置环境变量
找到安装目录中的这个文件,路径配置到Path中即可.
myscs2启动
在cmd窗口中输入 minw64.exe (具体是64还是32看你自己安装目录中的应用程序)
go启动
找到写go代码的软件(记事本当我没说),如:goland , 将goland的应用程序路径复制下来,粘贴到下面,然后回车启动.这样项目才能正常运行
2.部署(linux版)方法
部署到windows系统的服务器,操作和上面的使用方法相同
这里用debain发行版的linux服务器介绍 (docker 容器部署)
前置流程大致相同,在项目和main.go同级的目录下编写Dockerfile
我使用的是debian:buster的基底镜像
FROM debian:buster
ENV MYPATH #你的工作目录
WORKDIR $MYPATH
RUN apt-get -y update \
&& apt-get -y install --no-install-recommends apt-utils \
&& apt-get -y install vim \
&& apt-get -y install pkg-config libzmq3-dev \
&& apt-get -y install git \
&& apt-get -y install gcc g++ \
&& apt-get -y install wget \
&& wget -q -O /root/go1.22.2.linux-amd64.tar.gz https://dl.google.com/go/go1.22.2.linux-amd64.tar.gz \
&& tar -C /usr/local -xzf /root/go1.22.2.linux-amd64.tar.gz \
&& echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile \
&& . /etc/profile \
&& go version \
&& echo "export PATH=$PATH:/usr/local/go/bin" >> /root/.bashrc \
&& go env -w GOPROXY=https://goproxy.cn,direct \
&& go env -w GO111MODULE=on
注意下面的地方
一定要安装 pkg-config 和 libzmq3-dev这两个包
- pkg-config : 提供了一种简洁,一致的方式来获取库的编译以及链接信息
- libzmq3-dev: debain发行版linux服务器的zmq包
gcc的环境就不在说了,更加需要的.
剩下的就是执行Dockerfile构建容器 , 然后docker exec -it 容器id /bin/bash 进入容器.
进入容器之后,就和部署普通的go项目一样了.go build -o main , 然后nohup ... 启动二进制文件就好了.
2.1 踩坑日记
构建镜像的时候,不仅仅要将项目启动端口暴露出去,你启动的zeromq中的端口也需要暴露.
serverSocket.Bind(initialization.Config.Zmq.Point)