golang 中实现并发安全的map

Go语言中的 map 在并发情况下,只读是线程安全的,同时读写是线程不安全的。 问题还原 下面来看下并发情况下读写 map 时会出现的问题 func main() { m := make(map[int]int) go func() { // 不停地对map进行写入 for { m[1] = 1 } }() go func() { // 不停地对map进行读取 for { _ = m[1] } }() } 会报错 fatal error: concurrent map read and map write 实现方案1 - 加锁 // 加锁的m...

使用docker-compose快速部署InfluxDB 2.4

docker-compose.yml version: '3' networks: web-network: services: docker-influxdb: image: influxdb:2.4 container_name: influxdb restart: always ports: - "8086:8086" #HTTP UI and API port environment: DOCKER_INFLUXDB_INIT_MODE: "setup" DOCKER_INFLUXDB_INIT_U...

nginx 安装rtmp模块实现推流服务器

安装模块 请移步 https://www.cuiwei.net/p/1011052604 配置文档 https://github.com/arut/nginx-rtmp-module/wiki/Directives vi /etc/nginx/nginx.conf load_module modules/ngx_rtmp_module.so; events { worker_connections 1024; } rtmp { server { listen 1935; chunk_size 4096; applicatio...

nginx 安装第三方模块

下面以rtmp模块为例 https://github.com/arut/nginx-rtmp-module 普通方式 静态模块 ./configure --add-module=/path/to/nginx-rtmp-module make //make编译,编译好的程序在objs文件夹下面,这时候不要执行make install 避免新编译的程序有问题,又覆盖了原有的程序 //备份原来的nginx可执行文件 mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old //把编译好的Nginx程序替换到原来的目录里 cp...

go-zero 创建api/rpc项目

1.创建目录ent-api,然后用goland打开 设置代理 GOPROXY=https://goproxy.cn 2.初始化项目 cuiwei@weideMacBook-Pro ent-api % go mod init ent-api go: creating new go.mod: module ent-api 创建项目(这里咱不用这种方式,咱通过 api文件创建) cuiwei@weideMacBook-Pro ent-api % goctl api new ent //rpc cuiwei@weideMacBook-Pro ent-api % goctl rpc new ...

静态HTML和CSS网站生成器 - Hugo

Hugo是用Go编写的静态HTML和CSS网站生成器。它针对速度、易用性和可配置性进行了优化。Hugo拿一个包含内容和模板的目录,并将其渲染成一个完整的HTML网站。 Hugo依赖带有前置内容的Markdown文件作为元数据,您可以从任何目录运行Hugo。这适用于共享主机和其他没有特权帐户的系统。 Hugo在几分之一秒内呈现了一个中等大小的典型网站。一个好的经验法则是,每段内容在大约1毫秒内呈现。 Hugo旨在适用于任何类型的网站,包括博客、tumbles和文档。 步骤 //安装 brew install hugo //查看版本 hugo version //新建站点 hugo new sit...

缺少某些方法: mustEmbedUnimplementedJobServiceServer()

默认情况下,要使用此工具生成的方法注册服务,服务实现必须嵌入相应的UnimplementedServer,以实现未来的兼容性。这是与之前包含在protoc-gen-go中包含的grpc代码生成器的行为更改。要恢复此行为,请设置require_unimplemented_servers=false选项。例如: protoc --go-grpc_out=require_unimplemented_servers=false[,other options...]:. \ 请注意,不建议这样做,并且仅提供该选项来恢复与之前生成的代码向后兼容性。 建议的做法是,在你的实现(blogServer)文件中...

go grpc

安装go环境 略。。。 安装protobuf brew install protobuf cuiwei@weideMacBook-Pro ~ % protoc --version libprotoc 3.21.5 安装Go plugins for the protocol compiler $ go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28 $ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2 export PATH="$PATH:$(g...

php 使用 grpc

前提 protoc(the protobuf compiler binary to generate PHP classes for your messages and service definition.) grpc_php_plugin(a plugin for protoc to generate the service stub classes.) grpc(PHP扩展) protobuf(PHP扩展) grpc/grpc(composer包) google/protobuf(composer包) 其中protoc,grpc_php_plugin,grpc,protobuf,这4...

cli和双击go的二进制文件得到不同的路径

先看代码 func main() { root, err0 := os.Getwd() if err0 != nil { println("empty") } println("dir: " + root) } 生成可执行文件 cuiwei@weideMacBook-Pro demo % go build -o app2 . cli的方式执行 cuiwei@weideMacBook-Pro demo % ./app2 dir: /Users/cuiwei/GolandProjects/demo 双击 app2 的方式 Last login:...