当前位置: 首页 > news >正文

怎样推广公司的网站网络营销推广的优势

怎样推广公司的网站,网络营销推广的优势,wordpress rest post,自己电脑做采集网站消息队列:一种基于异步通信的解耦机制,用于在应用程序或系统组件之间传递消息和数据 消息队列相关概念: 生产者(Producer):生成并发送消息到消息队列中的应用程序或系统组件。 消费者(Consumer&…

消息队列:一种基于异步通信的解耦机制,用于在应用程序或系统组件之间传递消息和数据

消息队列相关概念:

生产者(Producer):生成并发送消息到消息队列中的应用程序或系统组件。

消费者(Consumer):从消息队列中接收和处理消息的应用程序或系统组件。

主题(Topic):消息队列中用于分类和分组消息的逻辑概念,生产者将消息发送到指定的主题,而消费者可以订阅特定的主题以接收相应的消息。

队列(Queue):消息队列中存储消息的容器,遵循先进先出(FIFO)的原则。

发布-订阅模式(Publish-Subscribe Pattern):一种消息分发模式,生产者将消息发送到一个或多个主题,而消费者通过订阅感兴趣的主题来接收相应的消息。

点对点模式(Point-to-Point Pattern):一种消息传递模式,生产者将消息发送到特定的队列中,而消费者从队列中接收并处理消息。

消息序列化(Message Serialization):将消息从应用程序的数据结构转换为可以在消息队列中传输和存储的格式,通常使用如JSON、XML 或二进制等格式。

消息持久化(Message Persistence):将消息保存到持久化存储中,以确保即使在消息队列或应用程序重启之后也不会丢失

在这里插入图片描述

安装kafka-go

go get github.com/segmentio/kafka-go

简单示例

package mainimport ("context""fmt""log""sync""time""github.com/segmentio/kafka-go"
)// writeByConn 基于Conn发送消息
func writeByConn(wg *sync.WaitGroup) {defer wg.Done()topic := "my-topic"partition := 0// 连接至Kafka集群的Leader节点conn, err := kafka.DialLeader(context.Background(), "tcp", "localhost:9092", topic, partition)if err != nil {log.Fatal("failed to dial leader:", err)}// 设置发送消息的超时时间conn.SetWriteDeadline(time.Now().Add(10 * time.Second))// 发送消息_, err = conn.WriteMessages(kafka.Message{Value: []byte("one!")},kafka.Message{Value: []byte("two!")},kafka.Message{Value: []byte("three!")},)if err != nil {log.Fatal("failed to write messages:", err)}// 关闭连接if err := conn.Close(); err != nil {log.Fatal("failed to close writer:", err)}
}// readByConn 连接至kafka后接收消息
func readByConn(wg *sync.WaitGroup) {defer wg.Done()// 指定要连接的topic和partitiontopic := "my-topic"partition := 0// 连接至Kafka的leader节点conn, err := kafka.DialLeader(context.Background(), "tcp", "localhost:9092", topic, partition)if err != nil {log.Fatal("failed to dial leader:", err)}// 设置读取超时时间conn.SetReadDeadline(time.Now().Add(10 * time.Second))// 读取一批消息,得到的batch是一系列消息的迭代器batch := conn.ReadBatch(10e3, 1e6) // fetch 10KB min, 1MB max// 遍历读取消息b := make([]byte, 10e3) // 10KB max per messagefor {n, err := batch.Read(b)if err != nil {break}fmt.Println(string(b[:n]))}// 关闭batchif err := batch.Close(); err != nil {log.Fatal("failed to close batch:", err)}// 关闭连接if err := conn.Close(); err != nil {log.Fatal("failed to close connection:", err)}
}func main() {var wg sync.WaitGroupwg.Add(2)go writeByConn(&wg)go readByConn(&wg)wg.Wait()
}

运行结果

one!
two!
three!
one!
two!
three!
one!
two!
three!
one!
two!
three!
one!
two!
three!
2023/08/25 10:14:10 failed to close batch:[7] Request Timed Out: the request exceeded the user-specified time limit in the request

可以看到,利用两个goroutine,成功在一个文件里实现了生产者写入消息,消费者消费消息并打印出来

http://www.ritt.cn/news/17808.html

相关文章:

  • 网站做1920px好吗商丘网站建设公司
  • 上海网站开发服务商b2b国际贸易平台
  • 美食网站网页设计公众号推广方法
  • 网站建设的整体流程seo课程培训课程
  • 做网站 插件seo外包公司排名
  • 郑州做网站优化运营商网页设计作品
  • 营销型网站整体优化成品网站源码在线看
  • 网站的类型及特点seo工程师是做什么的
  • 网站推广效果seo关键词推广优化
  • 学做淘宝店的网站吗运营推广seo招聘
  • 太原自助建站软件杭州百度百科
  • 视频网站做漫画天津seo优化排名
  • 奉贤长沙网站建设怎么做一个网站页面
  • 网站开发 xmind百度推广业务员
  • 做网站怎样更改背景赣州seo优化
  • 在线电影视频wordpress主题厦门seo俱乐部
  • 渭南微信小程序网站建设互联网营销模式有哪些
  • 温州专业网站推广百度推广网页版
  • 郑州手工网站建设有哪些免费推广软件
  • 专门找人做软件的网站上海谷歌seo
  • 网站做app的软件有哪些草根站长工具
  • 做网站分期付款比例怎么创建网页
  • 上海专业网站建设精英如何做一个自己的网站呢
  • 下载黑龙江建设网官网网站搜索大全浏览器
  • 学习网页制作的网站网站推广的方式和方法
  • 做微信小程序网站护肤品软文推广
  • wordpress做商城网站吗电脑培训学校排名
  • b2c的电子信息网站seo建站优化推广
  • 江苏宜安建设有限公司网站一手渠道推广平台
  • 做网站首页文件人民日报新闻