V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  RedisMasterNode  ›  全部回复第 6 页 / 共 27 页
回复总数  525
1 ... 2  3  4  5  6  7  8  9  10  11 ... 27  
我出两个小建议,但是可能都需要对全局代码进行查找和替换。不过改动量还算可控的。

1. 如果只是针对 json 格式和 struct 定义不完全匹配,可以用 jsoniter 库,通过这个配置玩一下:jsoniter.Config{DisallowUnknownFields: true}
2. 如果需要在 struct 上自定义 tag ,例如:required ,那可以提供一套自定义的 json 方法,里面先使用 github.com/go-playground/validator/v10 进行检查(支持的 tag 应该足够用了),再执行原生的 json 方法,方法签名保持不变

对于方案 2 ,全局的代码应该可以通过修改 import ,把所有的 json 包都替换成自行实现的 json 包,提供 marshal / unmarshal 方法就可以了
197 天前
回复了 simyong 创建的主题 NAS 3000 元以内家庭自组 NAS 求推荐
便宜的价位大伙儿都推黑群为主,我也介绍一手我的,之前 NAS 小白(现在也时)的时期,想:
1. 要新净,不要太脏的二手(当然这个一般意味着没性价比);
2. 要小,不要占空间,我选了 2 盘位的,4+4T 硬盘比较能满足需求,所以不求多,求迷你;
3. 容易用,所以不用装系统或者折腾。

最后选了 500 元的兮克 NAS ,跟蜗牛比起来应该配置会相对低一些,不过外皮是新的,感觉很满意。目前跑了大约半年,因为自己的事儿(装东西)重启过 2-3 次,没有因为机器的原因重启,楼主如果需求类似的话也可以康康,不过开销上比 3000 低很多,肯定也比一些 3000 的机器有更多缺点短板。
@kingofzihua 很高兴在这里看到有人提及 skywalking go ,我也是其中的一位 contributor ,我觉得混合编译及代码生成是个很有创意的 idea ,因为项目比较新,短期内也没办法直接推广到公司用,未来看看其他使用方的反馈
204 天前
回复了 blueboyggh 创建的主题 Python Python 如何提取两个字符串中的相同部分?
补充一句刚刚测试了一下大约 2000 字符的对比,其实很快很快,主要看楼主希望达到什么程度,例如最差最差接受 1 秒执行完,那是非常轻松的,如果是真的有 1ms 内处理的需求再考虑其他方案就是了
204 天前
回复了 blueboyggh 创建的主题 Python Python 如何提取两个字符串中的相同部分?
>>> find_common_substrings(str1, str2, 4)
['haha']
204 天前
回复了 blueboyggh 创建的主题 Python Python 如何提取两个字符串中的相同部分?
可以很暴力解决,如果数据量不太大

https://pastebin.com/raw/q3wf0h23

测试例子:
>>> str1 = "abcdefgandhahaok"
>>> str2 = "acsdefokokhhaha00"
>>> find_common_substrings(str1, str2, 3)
['def', 'hah', 'haha', 'aha']
@paceewang1 我们之前在业务团队的时候倾向于用 ctx 传递,因为第三方库的方法签名不可控不可改,但是基本都保留了 ctx 。如果用 log 传递,或者说把 log 变量放在结构体内传递,它是对 ctx 的隐式使用,而且是 hardcode 的使用,无法分离出来给第三方方法用(或者说成本不如方法 1 )

而这个帖子,其实不是想讨论如何改成传递 ctx ,而是说不发生任何业务修改的情况下如何拦截采集这种信息。因为想改动的人不是业务团队,也就是不是写这个代码的人,而是平台提供方,如何在极低成本(例如,只修改 cmd/main.go 方法里面的一两行)的目标下完成改造,(尽可能)让所有调用、日志都携带 trace 信息。

另外我们之前选用方法 1 做业务层面的改造时,log.Info(string) 改成了 log.Info(context.Context, string),这个没啥好办法,都是全局的字符串替换修改调用方的,修改成了 context.TODO() 传入,然后等未来慢慢补全,实际落地下来感觉效果还可以的,而且有利于整体习惯养成。用 log 传递那是不是又不用设计 ctx 在方法签名里了?实际上这在 go 里是个不好的实践,相当于用 log 传递的方式,节约了 log.Info 调用的改造成本,但是继续保留了不传 ctx 的坏习惯,个人认为不可取。
216 天前
回复了 lemonteacode 创建的主题 Kubernetes 预算 2500 练习 k8s 集群物理机选择
正在工 epyc 和 7d12 做一样的事情,32 核 64 线程基本满足所有需求。主板是 atx 的。
以前也用过 2680v4 ,只要 80 一片。在我看来搞这个破事最大的问题还是国内墙搞,配置稍微麻烦,硬件没有很多要求。。4c16g 的电脑也一直在跑
@mrgeneral mesh 层如何将 in & out 的流量进行关联呢?
例如我是服务 B ,收到了一个服务 A 的请求,处理,然后向服务 C 发一个请求,mesh 的基础设施如何保证发给 C 的请求携带的 TraceID 与 A 发给我的 TraceID 一样呢?
@crysislinux 五楼这个是不好的解决方案,视角很局限,我们想解决的是业务间传递的问题,而对于单一的服务,如果它自己有这样的需求,它肯定有办法独立解决,向上抛错误也好,补齐 ctx 也罢。

而在跨团队协作里面推动所有人完成一件事是比较困难的,一个单元没解决好,大家都没办法拿到最好的结果。

另外回归到方案本身,它是不太有实践价值的,试想你现在只在 request log 显示了 trace id ,其他所有日志都没 trace id ,你如何串联所有日志?那,这个 trace id 只出现在 request log 的意义又是什么,岂不是跟没有 id 一样了。
@odirus
@kkhaike
谢谢两位朋友的建议,是个可以实施并且可以慢慢推的方式,可能落地起来还需要搭配一些宣讲一点点改善
@JustSong 这个东西就跟你和刚用 Redis 的人讨论可不可以使用 `KEYS` 一样的,不可能要求所有人立刻就知道这个东西重要不重要,可行与否,以及是否强制要传。等发现问题要改的时候往往是很难改得动,所以才会有很强的需求寻找如何优雅解决,而不是反推他们 “全部做对”(当然,全部做对肯定是最好最好的,不能因为难就否认)。
@danbai 记下魔法了,跟 1 楼其实是一样的。让我们猜猜业务方愿不愿意改 orz
@Nazz 不是,哥们,那你这个 trace id 如何传递给下一个调用方呢?
@juzzle 我想了一下,这种方案可以在流量进来和流量出去的时候为(可能是空白的) ctx 补充 trace id ,但是印象中:
1. goroutine 没有唯一 ID ,之前了解到是故意这样设计的,不知道这种情况后来有没有改进
2. goroutine 之间的 trace id (可能)不容易传递

其实更想了解有没有一些无侵入,业务不感知的方案,能够达到同 goroutine 内补全 trace id 的效果(也就是可以不考虑问题 2 )
@OnlyShimmer 不是这个真不是重点,我朋友圈有好几个深圳,广州的移动业务员,我看他们发的消息基本都是要 60 元 300m 这档的,不管什么时期都有。但是与之相对,电信 60 元应该是不管 100m 还是 1000m 都不可能买到,它压根就没有这个档位的套餐,这是我想强调的,而不是说移动转网多划算。

重点是电信没有给入门用户的套餐,就算砍到 50m 100m 我也能接受,毕竟低延迟,但是事实上他们压根没有这档位。
@OnlyShimmer 移动携号转网还有更便宜的,基本上算下来 60 元(包含所有费用,月租、额外的宽带费可能每个月 10 元,都算在内)给的是千兆,需要合约保证用满 2 年。

我觉得三大运营商争资源再正常不过了,不过这其中电信的力度是最小最小最小的,基本上就没有每月 60 元这个档位的(含宽带)的套装,所以导致长期都没法选他们家,实在是太贵了。

至于网络质量,我在广深用了大约 1 年电信 100M 、4 年移动 600M/1000M (多处,不同区不同楼栋),电信网游延迟基本 10ms ,非常理想;移动延迟基本 30ms ,也属于是能正常玩的那档,个人体验下来这个费用差异确实是没有什么性价比,基本是花额外的钱去做一些比较极限的提升( 30ms->10ms ),见仁见智
268 天前
回复了 jincong 创建的主题 汽车 想买台车,求老哥们帮忙参谋参谋
10 代雅阁锐智车主,当时落地 24w 整。看需求觉得选思域,便宜一点通勤好,看人数也不那么迫切需要 B 级车。

不过如果选雅阁的话,有一个好处可能是开 10 多年不用换,家里有一辆 14 年的雅阁,当时 26w 落地的,开到现在依然新净,2.4L 动力可以,而且非常宽敞、耐用,没出过什么毛病。
273 天前
回复了 lsy6 创建的主题 Java 2023 年,有什么好点的微服务项目推荐吗
虽然但是)

其实我觉得适合写在简历上的项目可以考虑爬虫项目,TL;DR:
1. 海量数据,你爬下来上亿条数据(这个对于爬虫来说很正常),就能做亿级数据的 DB 优化、异构数据库、离线数仓等等;
2. 可以强调并发量,TPS 高爬虫才有效率,又是一大技术难点,如何压榨机器的资源
3. 以上两点在做正常的新手 Demo 项目(传统的商城、xx 管理系统)都是非常难做到的,或者说你可能需要自行生成这么大的数据量,但是在爬虫项目里很容易就能遇见

如果你想在爬虫项目里做一些服务化的事情,可以考虑按模块拆几个服务试试,例如
1. 实际发起调用的服务
2. 调度服务(例如有些数据想要实时更新点赞数、阅读数,那总得有一套规则,何时爬第一次,何时爬第二次,下发给哪个调用服务去爬取)
------------------------------------
3. 管理系统,或者用于展示的 Web UI 前后端
275 天前
回复了 StepfenShawn 创建的主题 程序员 回忆一下我开发的粤语编程语言
感觉不实用,但仍然很有意思哈哈哈,只看了一眼 README 就觉得太太太想试试了
1 ... 2  3  4  5  6  7  8  9  10  11 ... 27  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3152 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 12:39 · PVG 20:39 · LAX 05:39 · JFK 08:39
Developed with CodeLauncher
♥ Do have faith in what you're doing.