Thursday, June 3, 2021

V2EX - 技术

V2EX - 技术


你们引入缓存中间件,会去解决数据库缓存双写一致性的问题吗

Posted: 03 Jun 2021 04:15 AM PDT

看了一篇博文了解了一些相关的内容,了解到引起不一致性的原因:
先删缓存,再更新 DB (这种策略应该没有人用?)
先更新 DB,再删缓存(这种发生不一致性的概率虽然可以忽略不计,但是是否需要去防止?)
先更新 DB,然后删除缓存失败(真的会发生删除缓存失败吗?网络原因?)
DB 主从复制的延迟造成不一致
。。。

解决这个双写一致性问题,需要双删和重试。感觉这种方式代价有点大啊。
在实际生产中,会这样去解决吗?有没有更好的办法?

要求将阿拉伯数字转成葡萄牙文,要求如下: 1 、求 Java 源码 2 、数值最大到 10 亿,小数点后两位 3 、预算 100 人民币 ---预算不足,还请见谅

Posted: 03 Jun 2021 04:08 AM PDT

由于没贴上自己的联系方式,导致有位同学没能联系上我,非常抱歉。

现在重新编辑一下联系方式:微信( 17686026701 ) 请根据手机号搜索。

或者苦于选不部的方式,我联系您,谢谢

go 语言的一个死锁问题

Posted: 03 Jun 2021 04:03 AM PDT

两个 goroutine,一个输出奇数,一个输出偶数,交替输出,最终达到顺序输出的目的。

其中 B 协程运行到最后的时候,如果不做特殊的处理,继续向 A 通道写入数据,会导致 A 通道死锁。

感到很奇怪,为什么会这样? A 通道这时候是没有数据的,为什么不让写?

package main  import (   "fmt" )  func main() {   // 创建 3 个 channel,A,B 和 Exit   A := make(chan bool)   B := make(chan bool)   Exit := make(chan bool)    go func() {     // 如果 A 通道是 true,我就执行     for i := 1; i <= 10; i += 2 {       if ok := <-A; ok {         fmt.Println("A 输出", i)         B <- true       }     }   }()    go func() {     defer func() { Exit <- true }() // 这个协程的活干完之后,向主 goroutine 发送信号     // 如果 B 通道是 true,我就执行     for i := 2; i <= 10; i += 2 {       if ok := <-B; ok {         fmt.Println("B 输出", i)         if i != 10 { // 如果 i 等于 10 了,就不要再向 A 通道写数据了,否则将导致 A 通道死锁,至于为什么,坦白说我很疑惑           A <- true         }       }     }   }()    A <- true // 启动条件   <-Exit    // 结束条件 } 

请问存储百万条或者千万条抖音评论应该选用什么数据库?怎么设计?

Posted: 03 Jun 2021 03:44 AM PDT

每个抖音作者都会有数条视频,而每条视频下又会有数条评论。估计会有数百个抖音作者,千万条评论,读写会比较频繁,可能会日增几万条或者十万条数据,老板想把这些评论信息都存到数据库(评论者抖音号、评论内容,评论时间,对应的视频 id )。

我目前想到的是存到 MongoDB,每一个作者抖音号是一个集合名字,集合里就是这个作者下所有视频的评论(每条评论里会包含对应的视频 id );

同事建议用关系型数据库,把表分细一点,然后设置外键,查询的时候联合查询,如果数据量大的话,哪种方式会更好一些呢?是应该选用关系型数据库还是非关系型呢?烦请赐教。

分享个 vscode 好工具,一键 vscode 到当前 Finder 文件夹, 拿走不谢!

Posted: 03 Jun 2021 03:10 AM PDT

在 toolbar 上一键 vscode 打开当前文件夹 传送门下载>>

  1. 确保code已经 install 到系统 PATH
  2. 按住 command 键,选中code to.app拖到 toolbar


是否有必要用 K8S

Posted: 03 Jun 2021 02:45 AM PDT

公司是做 ToB 私有化部署,预估每个月有 5-10 个项目,产品加上中间件 大约十几个进程,有专门的交付同学,需要交付部署。现在方案是采用 docker 容器方式,准备上 K8S 。

但是老板今天质疑为什么要上 K8S,主要是两点:

  1. 多了 K8S, 部署的时候服务资源就要多占用,毕竟 K8S 本身也需要资源
  2. K8S 能够带来哪些显著收益

这两个问题也是自己在纠结的,同时也在想 K8S 能够带来什么,交付更快?

爱普生 ef12 腾讯极光系统播放 nas 影片

Posted: 03 Jun 2021 02:45 AM PDT

618 买了一个投影仪,用的腾讯极光系统,下载了一个 nplayer 发现挂载不了 nas,nfs 和 smb 都试了,没有权限,是系统的问题吗,下了个 plex 又找不到 plex server,烦死了,求推荐最佳使用方式

咨询贴:流媒体服务器技术选型

Posted: 03 Jun 2021 01:54 AM PDT

前提背景:本人用阿里云的直播服务做出过基于小程序直播项目,高峰人数也就 900 来人。随后也接触了长鹏厂商,用过他们的录播主机,但稳定性一般般。

后续工作方向:类似监控这样,就小程序打开后,可以看到各个教室里的摄像头直播画面。当然一次只能看一个教室,想看其他的得退出,另外选。摄像头有很多厂家的(已知海康,奥维亚,ITC )。

技术调研:我在网上看的最多的是 nginx-rtmp-module,只是 aurt 作者年更。同时还找到了另一个开源项目 SRS,这个项目我部署用了 4 天,尝试了各种我项目会需要用到的功能,有个重要的模块没办法实现,翻了 Issues 和百度,官方确实没有实现相关功能(项目 C++写的)。

所以在这询问下各位大佬,还有啥开源项目或者技术是我可以尝试的,还可以考虑 nginx-rtmp-module 吗?(因为作者最近居然更新了)

golang aspect 切面

Posted: 03 Jun 2021 01:32 AM PDT

自己写了一个 golang aspect 面向切面的项目,
地址是这里 https://github.com/Justice-love/go-aspect , 求 star.

实现的效果如下图: 图 1 图 2

安卓手机的闪信功能怎么关闭? 巨烦

Posted: 03 Jun 2021 01:20 AM PDT

Win10 资源管理器里面的快速访问列表,文件夹后面的别针按钮怎么去掉啊

Posted: 03 Jun 2021 12:04 AM PDT

如下图的红区部分

16227005226863.png

强迫症看着真不舒服

vue v-for 循环嵌套报错问题,请大佬闷帮忙看看

Posted: 02 Jun 2021 11:14 PM PDT

我准备实现一个树形结构渲染,大概是以下这样

楼栋 i 	楼层 n     	房间 x 

但是在循环楼层 n房间 x时出现了报错,取不到上一个v-foritem,告诉我未定义

我直接贴代码吧, 用的vue.js

错误

ReferenceError: hall is not defined 

js

let app = new Vue({     el: '#app',     data: {         // 楼栋、楼层、房间数据         hallList: [             {                 index: 4,                 name: '四号楼',                 show: true,                 floorList: [                     {                         index: 1,                         name: '一层',                         show: true,                         roomList: [                             {                                 id: 1,                                 room_number: '4604',                                 room_type: '14',                                 room_status: 1,                                 is_dirty: 52,                                 order_id: 1,                                 member: ['余小波', '李家平']                             }                         ]                     },                     {                         index: 2,                         name: '二层',                         show: true,                          roomList: [                             {                                 id: 1,                                 room_number: '4604',                                 room_type: '14',                                 room_status: 1,                                 is_dirty: 52,                                 order_id: 1,                                 member: ['余小波', '李家平']                             }                         ]                     }                 ]             },             {                 index: 3,                 name: '三号楼',                 show: true,                 floorList: [                     {                         index: 1,                         name: '一层',                         show: true,                          roomList: [                             {                                 id: 1,                                 room_number: '4604',                                 room_type: '14',                                 room_status: 1,                                 is_dirty: 52,                                 order_id: 1,                                 member: ['余小波', '李家平']                             }                         ]                     },                     {                         index: 2,                         name: '二层',                         show: true,                          roomList: [                             {                                 id: 1,                                 room_number: '4604',                                 room_type: '14',                                 room_status: 1,                                 is_dirty: 52,                                 order_id: 1,                                 member: ['余小波', '李家平']                             }                         ]                     },                     {                         index: 3,                         name: '三层',                         show: true,                          roomList: [                             {                                 id: 1,                                 room_number: '4604',                                 room_type: '14',                                 room_status: 1,                                 is_dirty: 52,                                 order_id: 1,                                 member: ['余小波', '李家平']                             }                         ]                     }                 ]             }         ],         // 当前渲染楼层         floorList: [],         // 选中楼栋楼层         currentHallIndex: 3,         currentFloorIndex: 1,     }, }); 

html

<li class="hall-body" v-for="(hall, i) in hallList" :key="i">     <div class="hall-body-title">         {{hall.name}}     </div>      <div class="hall-body-content">         {{hall.floorList}}         <!-- 楼层 -->         <li class="floor-body" v-for="(floor, n) in hall.floorList" :key="n" >             <div class="floor-body-title">                 {{floor.name}}              </div>             <div class="floor-body-content">                 <!-- 房间 -->                 <li class="room" v-for="(room, x) in floor.roomList" :key="x" >                     <div class="room-number">{{room.room_number}}</div>                 </li>             </div>         </li>     </div> </li> 

我这个场景, clickhouse 适用吗?

Posted: 02 Jun 2021 11:10 PM PDT

比如求每个客户的"平均购买力"。 我们表设计 3 个字段 ( userId,orderId,price )。 但是 price 可能会变动,这条记录会被删除(业务原因)。

为了支持 update\delete,我们选择版本折叠树。 主键设置 (userId,orderId)两个字段。 但是我的统计维度却只要 userId (求每个客户的"平均购买力"),如果通过一个维度去聚合 "版本折叠树",得到的数据又是不准确的。

有什么办法吗?

请问前端 axios 1s 内有多个请求,前两个立即执行,后面的延迟 0.5s,然后后面的重复前面的判断,请问怎么写呢

Posted: 02 Jun 2021 11:03 PM PDT

这个把我给整崩溃了,

后端接口是做了限制的,防止爬虫。1s 内访问超过 3 个接口,后面的都会强制终止请求。 我前端要怎么写才能满足我上面所说的呢

关于 electron 无边框窗口拖动的问题

Posted: 02 Jun 2021 08:07 PM PDT

有没有一个比较好的库或者源码,可以实现非 css 样式方式的窗体的拖动呢(程序有多个窗体)?
需要至少可以兼容 win,macos

求 Chrome 浏览器自动识别输入点击插件

Posted: 02 Jun 2021 03:49 PM PDT

需求: 1.我有一个列表,大概一百行数据 2.打开 Chrome 浏览器,打开网页,自动识别填写窗口输入列表一行数据,点击提交,循环下一个其他网页 注意:每个窗口都提交的是不同数据

有一块闲置 SAS 盘想用起来,劳烦 V 友推荐 SAS 卡。

Posted: 02 Jun 2021 02:19 PM PDT

想把闲置的 SAS 盘给 pve 加上,做 zfs,需要可以直通的 SAS 卡。 由于不太懂,SAS 卡型号也挺多,最近貌似挖矿把二手 SAS 卡也炒起来了。 LSI SAS 9210-8i SAS2008 6GB 这个貌似能直通,价格涨了一倍。。。 9260-8i 便宜点 应该是不能做直通 只能弄成单盘 raid0 不能 ZFS 。 请 V 友推荐推荐。

求助美国的同学帮忙代收下 Admob 的验证码!

Posted: 02 Jun 2021 12:24 PM PDT

最近开了个 Admob 的账号,需要验证地址,想求个在美国的朋友帮忙收一封挂号信(由 Google 发出)。

需要提供给我地址,我填写到 Google 的后台,然后 Google 发送一封挂号信,信里面有一个验证码,我用这个验证码来验证地址。

毕竟涉及到一些个人隐私,不知到能不能帮帮忙,先谢谢大家了!

DNS Glue 记录居然不能删除,顺便求助怎么联系 .dev registry

Posted: 02 Jun 2021 12:12 PM PDT

域名是在 NameSilo 注册的 .dev 后缀,想修改 Glue 记录,但是没用,好像是 .dev registry 的策略?

I can't delete "Registered NameServer (aka Glue Record)" for my this domain. It says: Sorry, the selected host is set to not be deleted, or is currently linked to one or more domains and therefore cannot be deleted. But there is no domain linked to this host.

It doesn't have to be a domain in your account. If you know any domain name that is using these Nameservers, you can't delete them until the Nameservers are changed for that domain name. You could try to contact the registry operator for .dev and ask if it is possible for them to let you know which domains are using your registered Nameservers.

这个 Glue 记录仅仅是测试用的,现在所有的域名都不指向它了,但是删不掉。

求助一下有没有什么办法解决这个问题……

有没有 app 或者 magisk/xposed 插件可以实现有程序请求摄像头权限时弹出通知?打孔屏,还是两个大孔,一盖住就弹出下拉菜单,可恶啊。

Posted: 02 Jun 2021 11:34 AM PDT

大佬们求解一个 go map 无序的问题

Posted: 02 Jun 2021 10:57 AM PDT

要求:需要根据用户传入的 jsonStr 中的nameuser_id的顺序拼接其值。

代码:

package main  import ( 	"encoding/json" 	"fmt" 	"reflect" )  func main() { 	jsonStr := `{"name":"tom","user_id":"123"}` // 这是传入的参数,name 与 user_id 顺序不能确定先后 	var str string 	m := make(map[string]interface{}) 	_ = json.Unmarshal([]byte(jsonStr), &m) 	 	v := reflect.ValueOf(m) 	keys := v.MapKeys() 	for _, key := range keys { 		v1 := v.MapIndex(key).Interface().(string) 		str += v1 	} 	fmt.Println(str) 	// 由于 map 无序,不能固定输出:tom123 	// 如何保持与 json 中键一致,固定输出? 	// 比如若 json_str := `{"user_id":"123""name":"tom"}` 则输出 123tom } 

在线运行: https://play.golang.org/p/_ZMfsISpKWz

还请大佬们赐教,感激不尽。

★3W+! GitHub 中文排行榜,帮助你发现高分优秀中文项目

Posted: 02 Jun 2021 09:49 AM PDT

GitHub 中文排行榜

榜单设立目的

  • GitHub 中文排行榜,帮助你发现高分优秀中文项目;
  • 各位开发者伙伴可以更高效地吸收国人的优秀经验、成果;
  • 中文项目只能满足阶段性的需求,想要有进一步提升,还请多花时间学习高分神级英文项目;

榜单设立范围

  • 设立 1 个总榜(所有语言项目汇总排名)、18 个分榜(单个语言项目排名);

榜单入选规则

  • 一个小小的要求:项目的 Description 和 README.md 都要包含中文说明;
  • 更新越持续越好:最近半年内有更新过的项目才有机会入选(拥抱活跃,远离僵尸);
  • Stars 越多越好:在满足持续更新的前提条件下,各榜根据 Stars 对项目进行排序;

榜单更新频率

  • 每周更新一次;

榜单推荐

一天刷完 4600 个单词,在例子中背单词?

Posted: 02 Jun 2021 09:31 AM PDT

根据题主之前的学习经验发现,想要理解和记住一个公式,必须在例子中去学习

人本来就是很难记住抽象的东西,就像以前想要记住一个公式,老师就会让我去做大量的题

所以背单词也是一样,通过在例句中背单词效果是最好的

可惜市面上的背单词软件都直接显示例句中文,达不到记忆效果

所以我就自己做了一个例句+单词的背诵软件

汉译+句子

感兴趣的大佬可以体验下 httq://1.117.97.166:9931/book_list

httq://ww.jifud.cn/=0mkX

neovim floating window 中如何实现 fzf 的这种输入并展示搜索结果的 UI 呢?

Posted: 02 Jun 2021 08:27 AM PDT

  1. 第一行蓝色部分不可编辑, 后面可以输入, 修改, 删除. 2.第 2+行还能显示选项(这个貌似就是一行行的文本, 只是设置了不可编辑, 然后映射了快捷键只能上下滚动选择)

这样的一套 ui 实现下来还是非常麻烦...

看 leaderf 的 cli.py 的代码, 看懵了 😂

No comments:

Post a Comment