rabbitmq-生产者

1. go get安装amqp go get github.com/streadway/amqp 2. 创建连接RabbitMQ // 1. conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/") defer conn.Close() 3. 创建一个通道,队列和消息发布和接受都从这里操作 ch, err := conn.Channel() defer ch.Close() 4. 声明消息要发送到的队列 q, err := ch.QueueDeclare( "hello", // 队列名称 false, // 声明为持久队列 false, // 使用完毕自动删除队列 false, // exclusive false, // no-wait nil, // arguments ) 5. 发布消息到队列中 rand.Seed(time.Now().UnixNano()) // 4.将消息发布到声明的队列 for { count := rand.Intn(5) body := strconv.Itoa(count) err = ch.Publish( "", // exchange q.Name, // routing key false, // mandatory false, // immediate amqp....

一月 24, 2023 · 1 分钟 · Ken

rabbitmq-初识

#安装篇 安装环境 rabbitmq | erlang 安装rabbitmq前需要先安装erlang,需要注意如下表的对应版本的 兼容性 RabbitMQ version Minimum required Erlang/OTP 3.11.73.11.63.11.53.11.43.11.33.11.23.11.13.11.0 25.0 3.10.14 3.10.14 3.10.133.10.123.10.113.10.103.10.93.10.8 3.10.14 1.安装完rabbitmq后,需要自行设置环境变量 2.然后打开cmd输入 rabbitmq-plugins enable rabbitmq_management 3.浏览器中打开http://localhost:15672/#/ 初始账号密码均为guest 到此就表示你的电脑安装rabbitmq成功了

一月 24, 2023 · 1 分钟 · Ken

go-初识chan

代码参考至 《Go语言精进之路》 例子1 package main import ( "fmt" "sync" "time" ) type signal struct{} func worker(i int) { fmt.Printf("worker %d :is working... \n", i) time.Sleep(time.Duration(i) * time.Second) fmt.Printf("worker %d :is done... \n", i) } func spawnGroup(f func(i int), num int, groupSignal <-chan signal) <-chan signal { c := make(chan signal) var wg sync.WaitGroup for i := 0; i < num; i++ { time.Sleep(1 * time.Second) wg.Add(1) go func(i int) { <-groupSignal fmt....

十二月 17, 2022 · 2 分钟 · Ken

go-素数筛

问题描述: 素数是一个自然数,它具有两个截然不同的自然数除数:1和它本身, package main func Generate(ch chan<- int) { for i := 2; ; i++ { ch <- i } } func Filter(in <-chan int, out chan<- int, prime int) { for { i := <-in if i%prime != 0 { out <- i } } } func main() { ch := make(chan int) go Generate(ch) for i := 0; i < 1; i++ { prime := <-ch print(prime, "\n") ch1 := make(chan int) go Filter(ch, ch1, prime) ch = ch1 } }

十二月 17, 2022 · 1 分钟 · Ken

go-快速排序

package main import "fmt" func main() { var arr = []int{9, 7, 6, 8, 4, 1, 5, 2, 3, 0} fmt.Printf("arr: %v\n", arr) sort(arr, 0, len(arr)-1) fmt.Printf("arr: %v\n", arr) } func sort(arr []int, leftBound int, rightBound int) { if leftBound > rightBound { return } var left = AdjustArray(arr, leftBound, rightBound) fmt.Printf("arr: %v\n", arr) sort(arr, leftBound, left-1) sort(arr, left+1, rightBound) } func AdjustArray(arr []int, leftBound int, rightBound int) int { var mid = arr[rightBound] var left = leftBound var right = rightBound - 1 for { if left >= right { break } for { if arr[left] > mid || left >= rightBound { break } left++ } for { if arr[right] < mid || right <= leftBound { break } right-- } if left < right { swap(arr, left, right) } } swap(arr, left, rightBound) return left } func swap(arr []int, a, b int) { var temp = arr[a] arr[a] = arr[b] arr[b] = temp } 输出...

十二月 14, 2022 · 2 分钟 · Ken

go-希尔排序算法

package main import "fmt" func main() { var arr = []int{9, 7, 6, 8, 4, 1, 5, 2, 3} fmt.Printf("arr: %v\n", arr) var gap = 1 for { if gap >= (len(arr))/3 { break } gap = gap*3 + 1 } fmt.Printf("gap: %v\n", gap) for gap := gap; gap > 0; gap = (gap - 1) / 3 { for i := gap; i < len(arr); i++ { for j := i; j > gap-1 && arr[j] < arr[j-gap]; j -= gap { swap(arr, j, j-gap) } } fmt....

十二月 10, 2022 · 2 分钟 · Ken

go-插入排序算法

package main import "fmt" func main() { var arr = []int{9, 7, 6, 8, 4, 1, 5, 2, 3} for i := 1; i < len(arr); i++ { for j := i; j > 0; j-- { if arr[j] < arr[j-1] { swap(arr, j, j-1) } } fmt.Printf("arr: %v\n", arr) } } func swap(arr []int, a, b int) { var temp = arr[a] arr[a] = arr[b] arr[b] = temp } 输出...

十二月 10, 2022 · 1 分钟 · Ken

go-冒泡排序算法

package main import "fmt" func main() { var arr = []int{9, 7, 6, 8, 4, 1, 5, 2, 3} for i := len(arr) - 1; i > 0; i-- { for j := 0; j < len(arr)-1; j++ { if arr[j] > arr[j+1] { swap(arr, j, j+1) } } fmt.Printf("arr: %v\n", arr) } } func swap(arr []int, a, b int) { var temp = arr[a] arr[a] = arr[b] arr[b] = temp } 输出...

十二月 8, 2022 · 1 分钟 · Ken

docker-安装教程

Centos7 # step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3 sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo # Step 4: 更新并安装Docker-CE sudo yum makecache fast sudo yum -y install docker-ce # Step 4: 开启Docker服务 sudo service docker start

十二月 8, 2022 · 1 分钟 · Ken

Go-选择排序算法

正常版 每次寻找一个最小值并交换 package main import "fmt" func main() { var arr = []int{5, 3, 8, 6, 1, 8, 6, 1, 7} fmt.Printf("arr: %v\n", arr) for i := 0; i < len(arr)-1; i++ { var minPos = i for j := i + 1; j < len(arr); j++ { if arr[j] < arr[minPos] { minPos = j } } swap(arr, i, minPos) fmt.Printf("arr: %v\n", arr) } } func swap(arr []int, a, b int) { var temp = arr[a] arr[a] = arr[b] arr[b] = temp } 输出结果...

十二月 6, 2022 · 2 分钟 · Ken