后端开发环境快速搭建
1. 前言 本文介绍了后端开发常用的环境配置以及常用中间件的安装。
2. 终端配置 2.1 安装oh-my-zsh 1 2 3 sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh \ | sed 's|^REPO=.*|REPO=${REPO:-mirrors/oh-my-zsh}|g' \ | sed 's|^REMOTE=.*|REMOTE=${REMOTE:-https://gitee.com/${REPO}.git}|g') "
编辑配置文件 vim~/.zshrc 设置主题为 ZSH_THEME=”robbyrussell”
2.2 代码高亮插件 1 git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom} /plugins/zsh-syntax-highlighting
2.3 命令提示插件 1 git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom} /plugins/zsh-autosuggestions
编辑配置文件,激活插件 plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
2.4 vim显示行号 1 cp /usr/share/vim/vimrc ~/.vimrc
进入insert模式,加上下面两行
2.5 终端配置vscode打开文件 1 alias code="/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code"
2.6 安装homebrew 1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) "
3. Go环境 1 go env -w GO111MODULE=on
1 go env -w GOPROXY=https://goproxy.cn,direct
3.1 安装Gin 1 go get -u github.com/gin-gonic/gin
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package mainimport ( "github.com/gin-gonic/gin" ) func main () { r := gin.Default() r.GET("/hello" , func (c *gin.Context) { c.JSON(200 , gin.H{ "message" : "Hello world!" , }) }) r.Run() }
3.2 安装Gorm 1 go get -u github.com/jinzhu/gorm
4. Docker配置常用开发环境 4.1 MySQL 1 docker run --name mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql
4.2 Redis 1 docker run --name redis507 -p 16379:6379 -d redis:5.0.7
4.3 protoc环境 1 2 3 4 5 brew install protoc export GOROOT="/usr/local/go" export GOBIN=$GOROOT /binexport GOPATH="/Users/cl/go" export PATH=$PATH :$GOPATH /bin
4.4 kafka 使用docker-compose up -d 一键安装 编写docker-compose.yml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 version: '2.1' services: zoo1: image: confluentinc/cp-zookeeper:7.3.2 hostname: zoo1 container_name: zoo1 ports: - "2181:2181" environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_SERVER_ID: 1 ZOOKEEPER_SERVERS: zoo1:2888:3888 kafka1: image: confluentinc/cp-kafka:7.3.2 hostname: kafka1 container_name: kafka1 ports: - "9092:9092" - "29092:29092" - "9999:9999" environment: KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka1:19092,EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9092,DOCKER://host.docker.internal:29092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT,DOCKER:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181" KAFKA_BROKER_ID: 1 KAFKA_LOG4J_LOGGERS: "kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO" KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 KAFKA_JMX_PORT: 9999 KAFKA_JMX_HOSTNAME: ${DOCKER_HOST_IP:-127.0.0.1} KAFKA_AUTHORIZER_CLASS_NAME: kafka.security.authorizer.AclAuthorizer KAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND: "true" depends_on: - zoo1 kafka-ui: container_name: kafka-ui image: provectuslabs/kafka-ui:latest ports: - 8080 :8080 depends_on: - kafka1 environment: DYNAMIC_CONFIG_ENABLED: "TRUE"
4.5 ES 同kafka
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 version: "3.7" services: elasticsearch: container_name: elasticsearch image: docker.elastic.co/elasticsearch/elasticsearch:8.9.1 environment: - node.name=elasticsearch - ES_JAVA_OPTS=-Xms512m -Xmx512m - discovery.type=single-node - xpack.security.enabled=false ports: - 9200 :9200 - 9300 :9300 networks: - elastic kibana: image: docker.elastic.co/kibana/kibana:8.9.1 container_name: kibana ports: - 5601 :5601 networks: - elastic depends_on: - elasticsearch networks: elastic: