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

网站哪类业务建设投入会带来间接收益免费做视频的软件app

网站哪类业务建设投入会带来间接收益,免费做视频的软件app,开源镜像网站开发,wordpress仿 模板前言 下面是我根据业务需求画了一个架构图#xff0c;没有特别之处#xff0c;很普通#xff0c;都是我们常见的中间件#xff0c;都是一些幂等性GET 请求。有一个地方很有意思#xff0c;从service 分别有10000 qps 请求到Redis#xff0c;并且它们的key 是一样的。这样…前言 下面是我根据业务需求画了一个架构图没有特别之处很普通都是我们常见的中间件都是一些幂等性GET 请求。有一个地方很有意思从service 分别有10000 qps 请求到Redis并且它们的key 是一样的。这样一个简单的业务Redis 就需要承担20000qps此时监控 redis 我们会发现有一个峰值如果Redis 没有值这些流量会穿透到PostgreSQL监控PostgreSQL也有一个峰值。于是我在想如果在Service 层我们我们让流量排队阻塞只需一个流量去请求Redis 获取数据那么所有的key 不都获取数据了吗对于Redis 和 PostgreSQL 来说流量就是1那么流量的收缩比就是20000:2也就是10000:1这是很高效的。 描述了那么多这个方案可以用来解决缓存击穿实际上它超越了这个问题。这个方案这么好我们该怎么实现了在这里我们用 Singleflight 去实现。接下来我将着重讲解 Singleflight 。 一、什么是Singleflight 字面解释就是单飞模式我通常叫它归并回源策略。它的主要目的是确保在任何给定时间内对昂贵或重复操作的调用只有一次。当多个 goroutine 请求相同资源时singleflight 可确保函数只执行一次并且结果由所有调用者共享。这种模式在不适合缓存或结果会经常变化的情况下特别有用。 二、Singleflight是如何工作的 单飞机制非常简单它提供了一个Group每个Group 代表一类工作我们需要做的就是这类工作中需要防止重复操作。 首次启动第一次请求资源时会初始化Group并且对计算资源函数进行调用 并发请求处理如果在初始请求仍在处理过程中又有其他对同一资源的请求提出单飞会保留这些调用。 结构共享一旦第一个请求完成结果将返回给原始调用者并同时与所有其他等待的调用者共享。 防止重复整个过程中要保证一类工作函数只会调用一次防止重复工作。 三、Singleflight 的优点 效率通过确保只有一个请求完成工作可避免对服务和数据库造成不必要的负载。 简单singleflight 抽象了处理对同一资源的并发请求的复杂性使您的代码更简洁、更易懂。 资源优化 它有助于优化内存和 CPU 的使用因为相同的计算不会重复多次。 四、Singleflight 的redis 请求 wg : sync.WaitGroup{}wg.Add(10)for i : 0; i 10; i {go func() {defer wg.Done()v, _, _ : group.Do(key1, func() (interface{}, error) {client : redis.NewClient(redis.Options{Addr: 127.0.0.1:6379},)a : client.Get(context.Background(), a)return a, nil})fmt.Println(v)}() ​}wg.Wait() output: 用wireshark 抓包可以看到 只有一个客户端发起了请求所有的客户端都返回了数据 五、Singleflight 方法讲解 Do这个方法执行一个函数并返回函数执行的结果。你需要提供一个 key对于同一个 key在同一时间只有一个在执行同一个 key 并发的请求会等待。第一个执行的请求返回的结果就是它的返回结果。函数 fn 是一个无参的函数返回一个结果或者 error而 Do 方法会返回函数执行的结果或者是 errorshared 会指示 v 是否返回给多个请求。 DoChan类似 Do 方法只不过是返回一个 chan等 fn 函数执行完产生了结果以后就能从这个 chan 中接收这个结果 Forget告诉 Group 忘记这个 key。这样一来之后这个 key 请求会执行 f而不是等待前一个未完成的 fn 函数的结果。 Do 和 DoChan 最终都会调用 doCall只不过 Do 是同步如果一个key 处理的很慢就可能造成阻塞DoChan 是异步调用的这个地方一定要注意不同的key 的数据每个不同的key 都要开一个goroutine  数量多的话就会造成系统的内存OM掉了。这个地方大家一定要注意了建议用协程池。
http://www.w-s-a.com/news/788166/

相关文章:

  • 有没有什么做水利资料的网站杭州建设信用平台
  • 电子商务网站建设及推广方案论文wordpress无法显示文章
  • 建设工程监理网站前端和后端分别需要学什么
  • 公司网站制作效果国内最好的在线网站建设
  • 徐州好点的做网站的公司有哪些wordpress 工具插件下载
  • 如何用云服务器建设网站微网站免费开发平台
  • 官网的网站设计公司做网站需要准备哪些东西
  • 程序员和做网站那个好找工作wordpress二维码 插件
  • 湖南城市建设技术学院官方网站青海省建设局网站
  • 响应式网站有什么区别百度网站官网
  • 金华企业自助建站系统长沙建站公司模板
  • 云主机 做网站友情链接网站
  • 定制型网站设计天津网站模板建站
  • 为什么公司网站打开很慢wordpress汉化插件
  • 用dw做教学网站做网站用什么配置笔记本
  • 秦皇岛网站制作服务无网站无产品链接如何做SOHO
  • 国际婚恋网站做翻译合法吗南宁网络推广有限公司
  • 济南做网站公司排名销售市场规划方案
  • 营销型网站定制珠海建站网站
  • 企业网站代码wordpress页面重定向循环
  • 厦门网站建设哪家便宜用wordpress做企业网站
  • 网站备案有幕布python 做网站速度
  • 旅游网站模板psd网站后台维护主要做什么
  • 晋江做任务的网站网站如何设置关键词
  • 呼伦贝尔网站建设呼伦贝尔ps网页设计心得体会
  • 字母logo设计网站动画设计方案及内容
  • 怎样做网站建设方案wordpress 附件预览
  • 网站内容编辑wordpress cron原理
  • 户外商品网站制作建筑网络图片
  • 注册了网站怎么建设做网站是学什么专业