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

在别人网站做的友链_为何百度检测带后缀cnindex.aspseo外贸网站制作

在别人网站做的友链_为何百度检测带后缀cn,index.asp,seo外贸网站制作,广元网站建设优化,页面设计所遵循的原则有哪些本人理解,顺序消息如果不分消息组,那么会影响并行处理速度,所以尽量消息组分的散一些 首先上要求,官方文档如下: 总结: 1.必须同一个消息组,消息组和消费组不是一个概念,不要混 2.必…

本人理解,顺序消息如果不分消息组,那么会影响并行处理速度,所以尽量消息组分的散一些
首先上要求,官方文档如下:
在这里插入图片描述
总结:
1.必须同一个消息组,消息组和消费组不是一个概念,不要混
2.必须单一生产者,也就是说线上生产只能开一个 pod,感觉局限有点高,无法多 pod 接入
3.必须串行发送,这个点也不太好,限制过高
以上三点
在我的案例中(企业微信回调消息)
那么只能开一个接口服务Pod 来接收微信回调,如果挂了,那完蛋,开多个 pod的话,那只有把请求放队列,通过队列pop进行消费再生产消息到 mq,这样同时也解决了第三点的串行发送。

生产的时候如何确定是顺序消息,只需要生产消息的时候给设定一个消息组

msg := &rmq_client.Message{
Topic: Topic,Body:  []byte("this is a message : " + strconv.Itoa(i)),
}
// set keys and tag
msg.SetKeys("a", "b")
msg.SetTag("ab")
// 这里设置消息组
msg.SetMessageGroup("fifo")

分组分的越细越好

提高消费速度

当拿到消息后,根据消息分组来进行并发处理,每个分组内进行串行处理,关键代码如下


func (m *RocketMq) ConsumerOrderly(funcMap map[string]func([]byte) error) {var err errorm.consumerOnce.Do(func() {Log().Info("##############pro consume orderly start#############", m.MqConfig)errTmp := m.proSimConsumer.Start()if errTmp != nil {Log().Panic("MQ启动失败", errTmp)return}})defer m.proSimConsumer.GracefulStop()// 总体保证有N个在运行var ch = make(chan int, m.MaxGoroutine)for {fmt.Println("start receive message")mvs, errReceive := m.proSimConsumer.Receive(context.TODO(), 8, 20*time.Second)if errReceive != nil {if strings.Contains(errReceive.Error(), "no new message") {Log().Info(errReceive)} else {Log().Error("顺序消息,拉取MQ消息失败:", errReceive)}time.Sleep(time.Second * 2)continue}var msgGroupMap = make(map[string][]*rmq_client.MessageView, 0)for _, v := range mvs {if _, ok := funcMap[*v.GetTag()]; !ok {Log().Error(v.GetTag(), ": action do not exist")continue} else {// 根据msgGroup汇总msgGroup := v.GetMessageGroup()msgGroupMap[*msgGroup] = append(msgGroupMap[*msgGroup], v)}}// 最大程度多线程消费for _, item := range msgGroupMap {ch <- 1go func(item []*rmq_client.MessageView) {for _, v := range item {fmt.Println(*v.GetTag(), *v.GetMessageGroup(), string(v.GetBody()))action, _ := funcMap[*v.GetTag()]if errTmp := action(v.GetBody()); errTmp != nil {Log().Error("mq顺序消费失败", errTmp)break} else {m.proSimConsumer.Ack(context.TODO(), v)}}<-ch}(item)}}
}

最后需要注意的点:

同一个消费者 Group ID 下所有的 Consumer 实例必须保证订阅的 Topic 一致,并且也必须保证订阅 Topic 时设置的过滤规则(Tag)一致。否则您的消息可能会丢失
请保证订阅一致性
在这里插入图片描述

http://www.mmbaike.com/news/51494.html

相关文章:

  • 做一个自适应网站多少钱知名的建站公司
  • 可以看帖子的网站企业网站推广
  • 网站用什么软件做seo数据统计分析工具有哪些
  • 怎么做网站在网上能搜到你神马站长平台
  • 做网站报价出名的淘宝怎么提高关键词搜索排名
  • 服务器做网站哪个系统好搜狗搜索推广
  • 建设网站青岛网络广告策划案
  • 建设银行网站用户名怎么查2022年网络流行语
  • wordpress增加购物车网络优化工程师有多累
  • 军事网站建设怎么打谷歌官网入口手机版
  • 沈阳网站制作的公司哪家好seo网络推广技术员招聘
  • 贵州省住房城乡建设厅官网正规seo需要多少钱
  • 中山市两学一做网站简述seo的基本步骤
  • 网站多久备案一次谷歌搜索广告
  • 长治做网站的公司国内疫情最新消息
  • 大数据营销试卷网络优化工具
  • 哪里有做网站企业包就业的培训学校
  • 网站上怎么做返回主页链接广告投放方案
  • 做水果网站需要些什么武汉seo培训
  • asp动态网站开发实训报告百度ocpc如何优化
  • 网站运作模式如何网上免费打广告
  • 中国旅游预订网站的建设始于哪一年杭州网络推广
  • 揭阳网站制作官方百度平台
  • 建论坛网站企业网站类型有哪些
  • 应聘网站开发题目百度权重查询工具
  • 常德做网站专业公司软文写作是什么
  • 网页设计和网站建设百度seo按天计费
  • 免费设计装修公司网站个人怎么在百度上做推广
  • 广丰网站建设网店推广有哪些方法
  • 阿里云突发性能适用于做网站吗宁波网站推广公司有哪些