Thursday, July 15, 2021

V2EX - 技术

V2EX - 技术


几百万的表,用户喜欢用 备注 来查询,备注没发上索引,这个该怎么解决,能查询快一些!

Posted: 15 Jul 2021 04:08 AM PDT

几百万的表,用户喜欢用 备注 来查询,备注没发上索引,这个该怎么解决,能查询快一些!

大家帮我给些方案,参考一下

如何在大量文本中高效的匹配出字符串?

Posted: 15 Jul 2021 04:07 AM PDT

我不是专业做技术的,因此会有很多技术盲区,碰到棘手问题也不知如何自行寻找解决方案,因此提问,感谢诸位。

需求背景是这样的:

在数百万的网页 html 源代码里面,寻找出包含某个特定字符串(或匹配某条正则)的网页,输出其 URL 信息。

由于是数据分析用途,需要很频繁的为了突发的需求而多次运行。

目前的解决方案是这样的:

数据存在 MongoDB 里面( zstd 压缩),匹配的时候使用 Python 直接遍历出所有网页,再通过 Python 内置的方法( in 条件或者 re )来进行判断。

如果仅使用 in 条件,目前每秒平均能匹配 4000 多个网页,百万的网页全部运行一次需要十多分钟,比较费力。此外,已经配置了阿里云 ECS 的对应容量下可选的最高速度的 SSD 。

尝试过的其它方案有:

使用 ElasticSearch 来建立全文索引。但发现在占用了大量额外硬盘空间的代价下,需要全量导出匹配结果时候的效率仍然很低下,或许是 ES 仅在匹配 top n 结果的时候才是高效的?又或只是我哪里没做对?

也尝试过 MongoDB 取消压缩,发现速度变更慢了,或许瓶颈是在硬盘 IO 不是在 CPU 上面?

公司最近开始接私活,然后拉部分人去做私活的项目给额外红包。这是公司正常操作吗

Posted: 15 Jul 2021 04:01 AM PDT

pyqt5 中使用 ffmpeg 及打包

Posted: 15 Jul 2021 03:56 AM PDT

最近用 pyqt5 写了个处理视频的小应用,其中要用到 ffmpeg 提取视频音频合并到另一个视频中去。本地调试时,由于本机(mac os)安装了 ffmpeg,使用类似 ffmpy3 包可以正常使用。如果要打包成 .app 或者 .exe 时,用户机器上没有安装 ffmpeg 。

试过根据系统平台先下载好对应的 ffmpeg 可执行程序,和应用的安装包一起发给用户,应用内根据设置的 ffmpeg 路径或者默认应用存放目录去调用 ffmpge,可以正常使用,但是这样就会有两个可执行文件。。能否打包到一个可执行文件或者有其它好点的解决方案,感谢回复!

前端是不是应该更注重性能优化,有什么大型前端项目学习?

Posted: 15 Jul 2021 03:55 AM PDT

目前在学前端,以为一直以为前端就是前端,现在深入了解之后发现其实前端也是部属在后端,就是前端所需的资源(代码 /样式 /资源)等都存储在后端的。只不过浏览器在打开的时候,从后端去获取信息再加载到浏览器中运行。

所以从这点来说,前端更加要注重性能:
1. 资源和数据要尽量小,方便快速传输加载。
2. 因为浏览器要开很多页面,所以前端资源应该尽早释放,要注重内存优化。
3. 前端已经不是单个静态网页,而是复杂的容器(可以做复杂的事情,比如 canvas,webgl )。

不知道大型前端项目的代码量有多少(应该也大不到哪里去,跟后端比就是小虾米)?
前端对构建大型应用的可能性有多大?

大家在 Linux 服务器上会配置那些 alias 提升效率?

Posted: 15 Jul 2021 03:41 AM PDT

先说我的(公司): alias cp="cp -i" alias rm="rm -i" alias mv="mv -i" alias ll="ls -l --color=auto" ...

虽然说没有银弹,但是我感觉 c++完全可以设计成更友好,开发速度更快的语言

Posted: 15 Jul 2021 03:31 AM PDT

c++大佬别杠我,不可否认的是 c++学起来实在太难,写起来实在太慢

实际上很多东西感觉完全可以反过来吸收别的语言的优点

为 windows11 新右键菜单添加自定义菜单

Posted: 15 Jul 2021 02:52 AM PDT

windows11 新右键菜单干掉了几乎所有老的右键菜单..目前 app 也很少开始适配..
这两天查了微软的文档还有微软的开源项目,目前终于搞出来了一个可以添加自定义的菜单的代码
现在菜单需要在 AppxManifest.xml 中定义:

  <desktop4:Extension Category="windows.fileExplorerContextMenus">           <desktop4:FileExplorerContextMenus>             <desktop5:ItemType Type="*"  >               <desktop5:Verb Id="Command1" Clsid="46F650E5-9959-48D6-AC13-A9637C5B3787" />             </desktop5:ItemType>           </desktop4:FileExplorerContextMenus>         </desktop4:Extension>         <com:Extension Category="windows.comServer">           <com:ComServer>             <com:SurrogateServer  DisplayName="Context menu verb handler">               <com:Class Id="46F650E5-9959-48D6-AC13-A9637C5B3787" Path="X.dll" ThreadingModel="STA"/>             </com:SurrogateServer>           </com:ComServer>         </com:Extension> 

然后就只需要实现 IExplorerCommand 接口,然后注册就行了

class __declspec(uuid("46F650E5-9959-48D6-AC13-A9637C5B3787")) TestExplorerCommandHandler final : public BaseExplorerCommand { public: 	const wchar_t* Title() override { return L"sample"; } 	const EXPCMDSTATE State(_In_opt_ IShellItemArray* selection) override { return ECS_ENABLED; } };  CoCreatableClass(TestExplorerCommandHandler)   class BaseExplorerCommand : public RuntimeClass<RuntimeClassFlags<ClassicCom>, IExplorerCommand, IObjectWithSite> { ... } 

我自己写了 2 个,一个 7z 解压,一个 vscode 打开文件..
其他的可以自行开发了..这个应该都难不倒大家了

demo 代码我扔到 github 了,无聊的可以看看 ikas-mc/ContextMenuForWindows11
代码问题大家看看就行了,我第一次写 c++

谷歌时间轴位置记录得太详细了。

Posted: 15 Jul 2021 02:44 AM PDT

哪一天,从哪里去哪里,怎么去。 第一次发现这个,可怕。

Android Studio 提示 Cannot resolve symbol 'XXX' 问题如何解决?

Posted: 15 Jul 2021 02:40 AM PDT

现状,Android Studio 对于一些 Symbol 不能 Resolve, 具体请看图 1 、图 2 。
图 1: https://sm.ms/image/oJinhPQ7V1kbOFr
图 2: https://sm.ms/image/GnWVsPkcDF7y1fZ

试过的方法
1. Clean Project
2. Invalidate and Restart
均没用

求个解决方案

正式库用 k8s 做注册中心时,本地开发调试时要用什么做注册中心来调试呢?

Posted: 15 Jul 2021 02:36 AM PDT

如何解决 webpack definePlugin 注入的变量在 IDEA 的语法检查中,报未声明变量的问题

Posted: 15 Jul 2021 02:10 AM PDT

MYSQL SELECT 不加 text 类型的字段会对读取速度有帮助吗

Posted: 15 Jul 2021 01:51 AM PDT

有一文章表,字段有:idtitlecontent等。 其中content字段为text类型,用于存放富文本。

在进行文章列表检索时: SELCT id, title FROM t1

SELECT 不加 content 字段会对查询速度有帮助吗(即:MYSQL 扫描行时会不会连带 content 字段一起读取了)?

考虑到富文本字段一般都好几兆,如果会一起读取,我得考虑把富文本单独放一张表,不然文章一多,读着太慢了。

阿里云镜像站 7 月 15 日上线,敬请期待! 到底上不上? 都维护好几个月了

Posted: 15 Jul 2021 12:49 AM PDT

哎。。。。

尝试用 golang 撸了一个 web 站点检查的 promethus exporter

Posted: 15 Jul 2021 12:21 AM PDT

https://github.com/huangmingyou/http_check_exporter

不是专业的开发人员,所以代码凑合用。

Java 新手又来请教问题了, 把 mysql join 查询 改成单表查询然后自己组装, 求问如何优化我写的 stream 操作

Posted: 15 Jul 2021 12:21 AM PDT

代码如下:

WmHBuQ.png WmHwjg.png

public class Service{      public IPage<ChannelAgentOrgVO> getChannelAgentTeamStream(Page<ChannelAgentOrgVO> page, Channel channel) {          Page<Channel> channelPage = this.getPage(new Page<>(page.getCurrent(), page.getSize()), channel);          Stream<Channel> channelStream = channelPage.getRecords().stream();         Stream<ChannelAgentOrgVO> voStream = channelStream.map(c -> {             ChannelAgentOrgVO vo = new ChannelAgentOrgVO();             vo.setChannel(c);             return vo;         });         List<Long> channelOrgIds = channelPage.getRecords().stream().map(Channel::getChannelOrgId).collect(Collectors.toList());         List<Long> agentOrgIds = channelPage.getRecords().stream().map(Channel::getAgentOrgId).collect(Collectors.toList());         List<Long> agentTeamIds = channelPage.getRecords().stream().map(Channel::getAgentTeamId).collect(Collectors.toList());           List<ChannelOrg> channelOrgList = channelOrgService.lambdaQuery().in(ChannelOrg::getId, channelOrgIds)                 .select(ChannelOrg::getId,                         ChannelOrg::getCode,                         ChannelOrg::getName,                         ChannelOrg::getFullName,                         ChannelOrg::getType)                 .list();         List<Org> agentOrgList = agentOrgService.lambdaQuery().in(Org::getId, agentOrgIds)                 .select(Org::getId,                         Org::getCode,                         Org::getName,                         Org::getFullName,                         Org::getType)                 .list();         List<AgentTeam> agentTeamList = agentTeamService.lambdaQuery().in(AgentTeam::getId, agentTeamIds)                 .select(AgentTeam::getId,                         AgentTeam::getName,                         AgentTeam::getFullName,                         AgentTeam::getAddressDetail,                         AgentTeam::getAddressName,                         AgentTeam::getAddressContact)                 .list();           voStream = voStream.peek(vo -> channelOrgList.forEach(channelOrg -> {             if (Objects.equals(channelOrg.getId(), vo.getChannel().getChannelOrgId())) {                 vo.setChannelOrg(channelOrg);             }         }));         voStream = voStream.peek(vo -> agentOrgList.forEach(agentOrg -> {             if (Objects.equals(agentOrg.getId(), vo.getChannel().getAgentOrgId())) {                 vo.setAgentOrg(agentOrg);             }         }));         voStream = voStream.map(vo -> {             agentTeamList.forEach(agentTeam -> {                 if (Objects.equals(agentTeam.getId(), vo.getChannel().getAgentTeamId())) {                     vo.setAgentTeam(agentTeam);                 }             });             return vo;         });           return new PageResult<>(channelPage, voStream.collect(Collectors.toList())).getVoPage();     } } 

nodejs 新人求助 !

Posted: 14 Jul 2021 11:42 PM PDT

java 转 nodejs 得多久,都需要学习什么? 求助求助

C++ 中 Lambda 对变量的捕获居然是在声明时就做了

Posted: 14 Jul 2021 10:38 PM PDT

我看到在 C++ 14 特性中支持 Lambda 表达式捕获 move-only 的类型(原先是引用或值传递),于是写了一个小 demo:

auto p = std::make_unique<int>(1); auto task1 = [p = move(p)](){ *p = 5; }; cout << *p << endl; 

上述代码可以通过编译,但是运行时出现 core dump ,明显是因为此时 p 已经被 move 到 Lambda 表达式中去了,这里就迷惑,我一直以为要 auto task = [](){...}(); 或是 task1(); 执行时才会做参数的初始化(类似函数那样),但从结果来看,从声明的那一刻变量就已经被捕获了。

虽然这一点对原本的值传递和引用捕获的参数来讲没有什么感知,但是对于捕获 move-only 类型的函数确实会产生一定的影响,因为从 Lambda 声明的这一刻开始你原本的外部变量就不能使用了。

另外被捕获到 Lambda 内部的 move-only 变量是以类似 static 的状态存在的,即多次调用 task*p 的改变会累积,以这个 demo 可以看的比较清楚:

auto p = std::make_unique<int>(1); auto task1 = [p = move(p)](){                                                      (*p)++;                                                                          cout << *p << endl;                                                                                                                                               };  task1(); task1(); task1(); 

Android 12 的 Beta3 好拉呀

Posted: 14 Jul 2021 09:53 PM PDT

阿里云 ECS 无法 git clone GitHub repo

Posted: 14 Jul 2021 09:41 PM PDT

Postman 200 然而 curl 302

Posted: 14 Jul 2021 09:32 PM PDT

我想抓点儿数据,地址是 https://www.uukanshu.com/b/151226/
然而浏览器和 postman 访问没问题,200
用 curl 就不行了,返回一个 302 跳转 404 的页面。

我特意查看了 postmanheader

Wm3ACd.png


使用 curl 加上 postmanheader 执行一下

curl -H "User-Agent:PostmanRuntime/7.28.2;Accept:*/*;Host:www.uukanshu.com;Accept-Encoding:gzip, deflate, br;Connection:keep-alive;Cookie:ASP.NET_SessionId=tbugww5w3cqigikqsg2ezvm5; fcip=111" https://www.uukanshu.com/b/151226/ 

得到如下的返回

<html><head><title>Object moved</title></head><body> <h2>Object moved to <a href="/404.htm">here</a>.</h2> </body></html> 

想请教一下如何解决这个问题呢,目标网站没看懂是如何做的校验,谢谢

简历上的推荐实战项目(第二弹)

Posted: 14 Jul 2021 09:26 PM PDT

这次的推荐项目都是来自于 Google Cloud Architecture 里面的内容,对比其他项目它有几点优势:

  1. 配置环境简单:教程里面都有手把手教学,包括配置指南和环境设置,可以直接用 Google Cloud 提供的工具和命令行工具来搭建,省下不少本地搭环境的时间。
  2. 项目简单,扩展性强:很多项目一两天就能做完,自己加一些小功能也很简单,能够快速搭建出有自己特色的项目。
  3. 简历的技能列表:这里的项目涉及了很多 Google Cloud 的组件,例如 Pub/Sub, Dataflow 等,可以加在简历上。

服务端

  • 使用 Cloud Build 为 Salesforce 构建无服务器 DevOps 流水线
  • 使用审核日志、Pub/Sub 、ZetaSQL 、Dataflow 和 Data Catalog 构建 BigQuery 数据沿袭系统
  • 构建流式视频分析流水线
  • 使用 BigQuery ML 构建电子商务推荐系统
  • 构建实时嵌入相似度匹配系统
  • 通过 Spinnaker 和 GKE 实现持续交付流水线
  • 使用 Azure Pipelines 和 Google Kubernetes Engine 创建 CI/CD 流水线
  • 为 IoT 设备构建多架构容器映像
  • 使用 Firebase 、BigQuery 和 Looker 创建统一应用分析平台

人工智能

  • 使用 AI Platform 、Dataflow 和 BigQuery 检测金融交易中的异常
  • 使用 Dataflow 、BigQuery ML 和 Cloud Data Loss Prevention 构建安全的异常检测解决方案
  • 使用 Dataflow 和 Cloud Vision API 构建机器学习视觉分析解决方案

移动端

  • 使用 Firebase 和 App Engine 柔性环境构建 Android 应用
  • 使用 Compute Engine 和 REST 构建移动应用
  • 使用 Google Compute Engine 和 gRPC 构建移动应用
  • 使用 Firebase 和 App Engine 柔性环境构建 iOS 应用

所有项目 Github 链接

Windows SLAAC 无状态模式下能 IPv6 后缀自定义

Posted: 14 Jul 2021 06:05 PM PDT

IPv6 SLAAC 无状态模式下 系统一般支持 eui64 (绑定 mac )和 stable-privacy (随机字符串)两种模式,在 Linux 下 能通过 IPv6Token=::1 类似这样的配置来实现后缀固定,这样既可以避免 eui64 泄露隐私,又可以避免 stable-privacy 太随机不方便端口开放。那么问题来了,Windows 我知道可以切换 eui64 和 stable-privacy 两种模式,又没有方法能自定义后缀呢?

Windows 11 小组件完全魔改指南(insider 版)

Posted: 14 Jul 2021 02:29 PM PDT

首先说明,这里介绍的方法不一定能在正式版中使用,微软可能会采取行动封堵这个操作。

这里先不评价 Win11 的小组件实用性在哪里。。就给那些希望深度定制内容的人一个操作指南吧。

本文只面向有一定基础知识的玩家,魔改有风险,注意常备份


我们知道,win10 的新闻和兴趣功能使用的是 windows.msn.com/shell (中国为 windows.msn.cn/shell ),所以以此类推,win11 的小组件用的就是 https://windows.msn.com/newsandinterests 了(

因此如果想要深度定制内容,就可以从劫持这几个网址入手

虽然理论上只要第一个就够了 劫持内容可以通过 hosts 来做到(使用代理的朋友请自行解决),直接在 hosts 文件写入

127.11.45.14 windows.msn.com 127.11.45.14 windows.msn.cn 127.11.45.14 localhost.windows.msn.com 

(注意 127.0.0.0/8 整个都是本地回环,为了避免与 127.0.0.1 上的其他服务冲突,可以选择一个独特的地址)

然后考虑到目标页面是 https 页面,我们可以通过自签名证书+安装根证书的方法绕过,这里采用 mkcert 的方案

mkcert --install mkcert windows.msn.com windows.msn.cn localhost.windows.msn.com 

得到证书和私钥文件后就可以放到自己喜爱的 http 服务器里部署了

然后再打开 widgets 就可以拿到自己定制的页面了

什么,你说还是原来的?那就是因为缓存的关系,不能及时刷新(还有 service worker ),可以通过删除 %LocalAppData%\Packages\MicrosoftWindows.Client.WebExperience_cw5n1h2txyewy\LocalState\EBWebView 目录来强行移除缓存(操作前终止小组件相关进程)


然后再来说说这玩意有啥实用性:全局呼出( win+w,触屏用户可以侧滑呼出 ),几乎在所有界面可用(除了某些独占显示的游戏),定制后可用作第二个开始菜单 /启动器

教你们如何用最古老的 VC 编译器,来支持最新的 C++语法。

Posted: 14 Jul 2021 01:04 PM PDT

C++已经进化到了 std=2023 标准,能实装各种魔幻新技术。

然而最新的 VC++编译器,由于体积过大,只能在线安装。在线下载有些特殊 packages, 微软的官方地址还会过期,返回 404 (我都不敢相信!)

于是乎,用回了上古 VC, 2005/2008 之类的。在渣机器上,不论启动速度,定制化插件,还是编译后文件大小,都算令人满意。唯一遗憾的是,C++11 标准是从 VC2010 开始支持的,以前版本什么美妙新语法都不支持。但是(凡事总有个但是),经过 LLVM 开发小组多年的不懈努力,终于可以让老 VC 用上最新版本的 CLANG,并且还可以调试。

具体方法是:

1,下载最新版本 clang 和 libc 库( https://github.com/mstorsjo/llvm-mingw/releases

2,工程里写一段 C++23 的魔法代码,然后把 CPP 编译属性改成 Custom Build

3,用 c:/llvm-mingw/bin/i686-w64-mingw32-clang++.exe -std=c++2b -msse4a -mavx 来编译成 OBJ

4,编译选项里用-g -gcodeview 生成上古 VC 能识别的调试信息(这点很重要,能单步调试,C++语言才有灵魂)

5,见证奇迹

ASPdotNET 学习中,前端技术怎么选

Posted: 14 Jul 2021 12:51 PM PDT

前情:

ASP.NET 和 EF Core 入门资料求推荐

ASP.NET 的学习中,前端 HTML+JS 目前是否可以绕过?

经过一段时间的学习 重新捡起了 C#的语法 学习了 ASP.NET 的 MVC,razor,ef core 等,找的教程的三哥的,咖喱味英语虽然听的痛苦,但好歹也算面面俱到都能有个粗浅的解释,特别对于 JS 库使用,和 HTML 甚至和后端配合都有涉及,了解了个大概。

在实践过程中我发现,想要做出完成的东西,UI 部分(前端)是不能绕过的 所以应该 HTML-CSS-JS-VUE 那一套? 还是 WASM-Blazor 这一套?

另外我还有两个疑问和疑虑

  1. 以前有 C/S 和 B/S 之争,后者主要就是免部署轻巧嘛;但是现在流行大前端,后端 API 化,这不又回到了 C/S 一个样子了吗?

  2. 在学习.NET 过程中,找资料还是有不少的;但总感觉找到的资料都很难说清楚东西,大家谈论的欲望也不高……资料多流行的难道是 Java 、Go 之类的吗?

PS:非业界,看法可能很浅薄,请不吝指点,THX

请教一下 FreeIPA 的 sudo 命令管理

Posted: 14 Jul 2021 11:59 AM PDT

期望效果: 通过 freeipa 的 sudo 规则管理赋予普通用户使用 docker 的权限;

目前情况: 配置了 freeipa 的 sudo 命令:/usr/bin/docker,好像普通用户无法使用 sudo docker ps,提示:对不起,用户 xxx 无权以 root 的身份在 node1.example.com 上执行 /bin/docker images 。

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

Posted: 14 Jul 2021 08:10 AM PDT

GitHub 中文排行榜

榜单设立目的

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

榜单设立范围

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

榜单入选规则

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

榜单更新频率

  • 每周更新一次;

榜单推荐

服务层到底接收和返回什么对象。服务层的中转对象应该是什么 O?

Posted: 14 Jul 2021 07:26 AM PDT

最近看阿里巴巴的编程规范都绕晕了。

controller 接受的 VO,一时有人说是 view object, 一时有人说是 value object. 文章抄来抄去,不知道哪个对。

传进 service 层的时候到底是进来的时候就转换成 dto,还是把 vo 作为入参。返回出去的时候到底是返回一个 dto,还是返回一个 VO?

service 层之中 例如远端返回一个复杂 json,然后我就选了几个参数作为一个暂时对象。但这对象我也不准备直接返回出去,而是打算再和其他数据聚合,再返回甚至不返回。那么这个暂时的对象,他是属于 VO 吗,还是属于 dto 什么的。
这个暂时对象是作为内部类写在同一个文件里呢,还是分类为什么对象呢。这个命名的问题也困扰了我很久。

先感谢大家。

怎么让 Debezium 正常连接到阿里云的 MongoDB sharded cluster

Posted: 14 Jul 2021 07:24 AM PDT

我在阿里云的一台服务器上部署了 Debezium,用来获取 MongoDB sharded cluster 的日志实现 CDC,但是 Debezium 出现了连接不上的错误。

2021-07-13 02:40:09,047 INFO   MongoDB|dish|snapshot  Exception in monitor thread while connecting to server 172.18.69.198:27122   [org.mongodb.driver.cluster] com.mongodb.MongoSocketOpenException: Exception opening socket         at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:70)         at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:143)         at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.lookupServerDescription(DefaultServerMonitor.java:188)         at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:144)         at java.base/java.lang.Thread.run(Thread.java:834) Caused by: java.net.SocketTimeoutException: connect timed out         at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)         at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)         at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)         at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)         at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)         at java.base/java.net.Socket.connect(Socket.java:609)         at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:78)         at com.mongodb.internal.connection.SocketStream.initializeSocket(SocketStream.java:79)         at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:65)         ... 4 more 

我在那台服务器上登录进 MongoDB,执行sh.status(),其结果如下图所示。

也就是说"部署 Debezium 的那台服务器连接不上 replica set 中的成员",那么怎样才能让服务器能够连接上 replica set 中的成员呢?

多实例下提升单分区单消费组速度

Posted: 14 Jul 2021 07:21 AM PDT

背景
外部团队给了一个 topic,这个 topic 只有一个分区,因为消息之间有强顺序关系。

问题
目前我们团队发现这个 topic 的消费速度有点慢,想优化下。

我自己想到了两种解决办法,感觉这两种方式都不太好。

解法 1
基于多单消费者的基础上,自己写个线程池,并发处理消息。
这个方法的缺点是只能有一个实例在消费消息(单消费者),无法扩展。

解法 2
引入 kafka, 把消息做一层转发,可以根据自己的业务逻辑做分区。
缺点是引入了一个中间件。


欢迎大佬们讨论

前端新手 一个 ts 项目 怎么应用一个被修改过的 js 项目

Posted: 14 Jul 2021 07:08 AM PDT

现在有个开源的 js 项目 https://github.com/coderstory/expr-eval 这是一个表达式的解析器和执行器 自带了 d.ts 和相关配置

因为项目( vue3+ts )需要,我修改了源码,然后我就不知道整合到项目里了

这个项目我并不想发布到什么仓库里。我在想能不能发布到本地仓库,然后开发项目引入依赖 或者作为这个正在开发的项目的子项目( submodule )什么的。

No comments:

Post a Comment