Friday, February 18, 2022

V2EX - 技术

V2EX - 技术

V2EX - 技术


kubernetes(K8S)快速上手教程 + 实践

Posted: 18 Feb 2022 05:41 AM PST

上次发了 Docker 视频,挺多人说要 K8S 的,这次它来了。

适合新人快速上手,配有 Demo 项目演示操作,看完你可以轻松掌控集群部署,年薪百万指日可待,卷起来!

课程内容

  • 什么是 kubernetes ,什么时候需要 kubernetes ,以及它的组成架构。
  • 用 3 种不同的方式教大家如何安装 kubernetes 集群。包括 minikube ,云平台搭建,裸机搭建( 3 台服务器)。
  • 通过一个 demo 项目演示如何部署项目到集群中,怎么对外暴露服务端口
  • 怎么部署数据库这种有状态的应用,以及如何数据持久化
  • 集群中配置文件和密码文件的使用
  • 怎么使用 Helm 应用商店快速安装第三方应用
  • 怎么使用 Ingress 对外提供服务

视频地址:B 站 | 西瓜视频 | YouTube

配套课件

优化健康码读写速度的面试题

Posted: 18 Feb 2022 05:35 AM PST

对于一个地区海量用户,有 3 种状态:红码 /黄码 /绿码。

  1. 如果特定地方出现红码,会根据地理位置把附近用户状态设置成黄码
  2. 经过一段时间,清零后,黄码变成绿码

怎么设计后台架构?

昨天在 B 站刷到的推荐,有点意思,跟同行探讨一下

img

现在国内做虚拟币的项目风险大吗?

Posted: 18 Feb 2022 05:33 AM PST

上礼拜有个朋友叫我和他帮一老板做一个虚拟币平台项目,我当时答应了。前几天看到一个群里说现在虚拟币项目是面向监狱编程,说看银监会的规定。我看到规定上确实明文写着相关内容,并告知我朋友,他说不开放给境内就可以了。于是我又继续看了下规定,发现在做境外,服务的境内人员也属于违法行为,并再次告知。他说我懂你意思了。(意思就是我怕了不干了),而我也确实如此。

在这里想请问大家的是,目前国内形势对于虚拟币项目是怎么样的呢?我的朋友会有风险吗?

网站被拥有强大 ip 代理池的爬虫搞, ua 随机变化,怎么办

Posted: 18 Feb 2022 05:31 AM PST

每个 ip 只访问 1-2 页面,没法封锁 ip ,ua 也是随机变化

计算机如何通过电话线拨打电话

Posted: 18 Feb 2022 05:27 AM PST

我有个比较小众的需求,现有普通有线座机电话和不接入互联网的计算机,希望实现自动通话和播放通知功能。

有人了解软件层面如何调制通话指令吗?我刚接触这个东西不知道该查哪方面的资料,希望懂行的朋友不吝赐教。

bottlepy 还有人在用吗?

Posted: 18 Feb 2022 05:26 AM PST

自己的项目,反正自己用,都是 bottlepy 写的。结果这次想升级一下。发现 bottle-redis 插件竟然挂掉了。

然后再定睛一看,这玩意从七年前 0.2.3 版本以后就没再没有发过新版,3.5 引入的一个问题自从 PR 被合并掉以后就再也没有发过新的。

https://github.com/bottlepy/bottle-redis/commit/4c2306e5c8dbaa271514bcc28980150b55d53f68

感觉自己好老了。

多个 spring boot 工程运行

Posted: 18 Feb 2022 05:21 AM PST

有多个 springboot 工程运行在一台主机上,如何优化资源占用? 或者如何精简配置单个工程,减少内存占用?

访问 cloudflare 的 1.1.1.1 公共 DNS 有概率会被跳转到反诈中心页面

Posted: 18 Feb 2022 05:20 AM PST

我的运营商是湖南电信,访问 3 次有两次跳转到反诈中心。

自荐一个企业级的轻量 RPC

Posted: 18 Feb 2022 05:01 AM PST

SRPC 是全搜狗以及腾讯部分业务线上使用的 RPC 框架,包括多种 IDL(protobuf/thrift)、多种 RPC 协议( srpc/brpc/thrift/tRPC ,且 tRPC 协议是唯一授权的开源版实现)、二进制协议与 HTTP 互转、支持多种压缩算法,AOP 模块化方式支持框架级数据上报(可对接 OpenTelemetry )。

以上这些层次都在同一套代码里,用了多种多态的方式互通每层的不同类功能,架构整体是解耦合的,因此代码很短只有一万多行。接口上用了代码生成,rpc 接口比 protobuf 原生简单,且 thrift 纯自解析、接口与原生兼容。轻量级的体现除了代码精简以外,还有依赖少、编译快(单核编译 32 秒)、体积小( strip -S 后 1.4M )、内存小(示例 server 跑起来 4M )。

目前每天上百亿的请求量,涵盖搜广推业务,稳定且性能好。虽然企业级的应用几十万 QPS 也是基操,但更重要的还是高 QPS 下保证请求延迟的稳定性。另外支持 Windows ,发现使用者中用 Windows 的占比还不小。

Proto 文件:

syntax = "proto3"; // both proto2 and proto3 are supported  message EchoRequest {     string message = 1;     string name = 2; };  message EchoResponse {     string message = 1; };  service Example {     rpc Echo(EchoRequest) returns (EchoResponse); }; 

Server 实现:

#include <stdio.h> #include <signal.h> #include "example.srpc.h"  using namespace srpc;  class ExampleServiceImpl : public Example::Service { public:     void Echo(EchoRequest *request, EchoResponse *response, RPCContext *ctx) override     {         response->set_message("Hi, " + request->name());     } };  int main() {     SRPCServer server_tcp;     SRPCHttpServer server_http; // 同时启动一个 http server      ExampleServiceImpl impl;     server_tcp.add_service(&impl); // 同一份实现可以加到多种协议的 server 中     server_http.add_service(&impl);      server_tcp.start(1412);     server_http.start(8811);     getchar(); // press "Enter" to end.     server_http.stop();     server_tcp.stop();      return 0; } 

Client 调用:

#include <stdio.h> #include "example.srpc.h"  using namespace srpc;  int main() {     Example::SRPCClient client("127.0.0.1", 1412);     EchoRequest req;     req.set_message("Hello, srpc!");     req.set_name("v2ex");      client.Echo(&req, [](EchoResponse *response, RPCContext *ctx) {     	if (ctx->success())             printf("%s\n", response->DebugString().c_str());     });      getchar(); // press "Enter" to end.     return 0; } 

也可以用 curl 直接发 http 请求到 http server 中:

curl 127.0.0.1:8811/Example/Echo -H 'Content-Type: application/json' -d '{message:"Hello, srpc!",name:"CURL"}' 

由于 SRPC 定位很轻量级,目前我们也在继续往周边生态探索和建设中。项目主页有 benchmark 、wiki 以及 tutorial 现成示例,欢迎大家提出宝贵的建议。

项目地址: https://github.com/sogou/srpc

V 友们,考在职研究生有用吗?

Posted: 18 Feb 2022 04:56 AM PST

计算机专业在职研究生对于找工作有用吗?

大龄程序员还刷 leetcode 么?

Posted: 18 Feb 2022 04:46 AM PST

先说自己吧

从 06 年开始干互联网,一直是大头兵或者技术 Leader 的角色,冲在业务第一线。 不论多高的业务复杂度或者并发,业务处理多了,技术必然退化,很多操作系统基础或者算法结构都快忘光了

听闻同行找工作各种卷,我也没啥特别的光环,找工作不论内推、还是猎头,技术面都免不了

如去面试:十几年经验了,面试官问我个 udp 和 tcp 区别,我作为面试者没法抵触,另外我不复习下还真说不明白这俩区别

我现在空闲时间开始系统的学习网络、操作系统、和算法结构,还有也刷刷 LeetCode

35+同行们,你们找工作都怎么准备呢?

win10 无法正常更新了!

Posted: 18 Feb 2022 03:58 AM PST

之前应该不小心被我动了 c 盘文件夹权限,怎么弄已经无法回溯了。 从那以后就再也无法更新系统了。一更新就提示 0x80010108 错误。 我网上搜索解决办法也一直没有找到解决办法。有人遇到过吗? 病毒和威胁防护那块设置里也无法更新 1.png 2.png 3.png

多云虚拟机统一监控功能详解

Posted: 18 Feb 2022 03:31 AM PST

Cloudpods 是一个开源的 Golang 实现的云原生的多云和混合云融合平台。

Cloudpods 不仅可以管理本地的虚拟机和物理机资源,还可以管理其他公有云和私有云平台的资源。

GitHub: https://github.com/yunionio/cloudpods

本文主要通过总体介绍、核心监控 Agent 介绍、总结和演示三个部分为大家解析多云虚拟机统一监控的功能。

1 、多云虚拟机统一监控

首先,作为一个多云管理平台,统一监控是一个非常必要且重要的功能。

1 )架构

云联壹云一直都有统一监控的功能,主要是搜集各个基础设施的监控信息,然后进行统计。

图片

2 )过去的实现

之前,进行监控查询、监控报警、监控运维的实现方式是调用各个云厂商的云 API ,获取其监控数据,这样的实现比较简单自然。

但是缺点也很明显:

第一,监控数据的不统一。阿里云的监控数据和腾讯云的监控数据虽然大体上一致,但是也会有不同之处。

第二,调用云 API 时,会有调用次数限制。比如阿里云的 API 会限制每天的调用次数,若调用次数超过限制值,则会导致无法获取数据,所以只能调高调用的间隔,这可能会造成一些数据的缺失。

图片

第三,监控数据的延迟比较高。一方面是因为次数的限制导致它的间隔要调大,我们要不断拉下来,相当于是二手数据,延迟较高,对于告警等会有阻碍作用,因为告警需要即时的数据。

3 )现在的实现

现在的实现是给多云虚拟机安装监控 Agent ,监控 Agent 会在虚拟机上收集监控数据,然后主动将数据 push 到云联壹云的数据库中,如此上述的三个缺点即可克服。

因为每个虚拟机都有统一的 Agent ,所以最终得到的数据也是统一的。

由于不通过云厂商的 API ,所以也没有调用次数的限制。

是 Agent 主动 push 数据,我们也可以控制延迟。

图片 现在的实现是通过监控 Agent 来做多云虚拟机的统一监控,下面为大家重点介绍监控 Agent 。

2 、监控 Agent

监控 Agent 是运行在虚拟机上的 daemon ,它的作用是采集监控数据,并把数据传回到云联壹云的 influxdb 中。

那么如何将 Agent 安装到虚拟机中?如何让它采集数据?如何把数据传回来?

之后还有相关的超详细内容,篇幅所限,点击了解全文详情: https://mp.weixin.qq.com/s/YChQekRVuQuhq6SVuSiMuQ

[idea 与 datagrip] 抛弃 datagrip

Posted: 18 Feb 2022 03:12 AM PST

背景

公司电脑,16G 内存

问题

datagrip ,在开启 idea 等等软件的场景下,由于电脑本身内存可能已经开始吃紧,会变得非常卡。 同时 datagrip 也是非常的吃内存的,2G 轻轻松松

提问

请问有 sql 指令提示友好的,使用内存较少的软件可供使用吗

网络超时问题求解

Posted: 18 Feb 2022 03:03 AM PST

现象:访问 redis 超时。 客户端包在 1 楼。 服务端包在 2 楼。

客户端在容器里面,截图抓包是在容器所在的宿主机抓的包。 服务端 redis 部署在虚机里面。

有几个问题想不通:

  1. 客户端跟服务端抓包的 seq,ack 值不一样,但是应用层内容是一样的。

  2. 客户端发的 psh,ack 的包,到服务端 redis 那边就变成了 rst,ack 了。导致 redis 那边断开连接。

什麼程式能做基於 TLS 的 TCP 代理?

Posted: 18 Feb 2022 03:01 AM PST

提問背景:
有一郵件伺服器,訪問其對應 port 會發現直接返回主域名 TLS 證書。這樣就會有些安全問題(例如被網路測繪服務掃到從而永久編入數據庫、遭遇無目標的 DDOS 等)。由於伺服器安裝時間久遠,軟體部份無法直接升級,所以就無法實現類似於 Nginx 那樣的防護方式。因此就想到了接收郵件時在前面加前置代理這樣的操作。

想問的問題:
什麼軟體可以做基於 TLS 名稱的前置代理?就是想實現使用到了正確的網域名稱就正常運作,如果不正確就直接斷開連線的效果。


其他電郵服務<------->前置代理<------->自有電郵服務器

关于 k8s 的 service 请教

Posted: 18 Feb 2022 02:54 AM PST

场景描述:现在有一个场景,3 个 pod ,pod-A, pod-B, pod-C, 建了一个 service ,所以 sevice 会管理 3 个 ednpoint, ep-A, ep-B, ep-C

问题:如何让 service 管理部分 ep,例如 service 去管理 ep-A, ep-B

想问下怎么实现

CS 技术书籍/课程中英文的割裂,造成的尴尬情况

Posted: 18 Feb 2022 02:46 AM PST

在学校上课、看书的时候,用的都是英文的原版教材,老师讲课和 PPT 也都是用英文

学习的时候,中文教材质量确实不行,翻译得很难懂,英文教材却很好阅读

现在准备复习找工作,发现很多中文名词看不懂,都得一个个查英文意思,严重影响复习速度

所以现在就达到了这种尴尬两难的状况:

  1. 看不懂中文教材,所以只能学英文教材

  2. 学完英文教材,又无法应对中文环境的要求了(比如看中文网站的技术博客、找工作、面试)

求推荐 87 或 6x 机械键盘

Posted: 18 Feb 2022 02:42 AM PST

预算 2000 左右或以内

需求:蓝牙、mac

看过 realforce ,没有蓝牙款

thx

SpringBoot 中如何记录调用外部接口的操作日志?

Posted: 18 Feb 2022 02:16 AM PST

使用 httpclient 调用外部接口时,如何记录接口调用时长,调用接口 uri 、method 、传入参数、接口响应?

miui12.5 第三方手势总是会失效

Posted: 18 Feb 2022 01:49 AM PST

手机是红米 k40 系统 muui12.5

第三方手势总是会隔一段时间自动失效 得再呼出小爱同学重新打开流体手势才行
有什么解决的办法吗

之所以不用小米自带的手势是因为我用的是微软桌面 用了第三方桌面之后 miui 自带的全面屏手势就不能用了

还没刷题的 v2 算法老哥可以试试我这儿 40W-100W 的工作机会

Posted: 18 Feb 2022 01:48 AM PST

似乎是同事的招人任务没完成,托我发布下,我们技术人员也不知道去哪发帖啊,各位有推荐的吗 招一些算法工程师 薪资:40-100 万 /年(可根据自身能力) 学历最好好一点,硕士希望比较大,或 211 ,985 海外名校最好;或者大厂工作经验 工作经验至少一年以上就行,如果是校招或者应届,学历 or 实习项目很强的,也可以试试 算法方向的,我们是做 nlp 的,但是深度学习,机器学习的都要,哪怕是图像的也可以 还需要 java 后端,能力适中以上都行。

一轮我可以面试,可以适当放宽 v2 坛友的要求😀 比如大家懒得刷题,我可以放宽😀 或者有推荐发帖的地方吗,平时我也就刷刷 v2 ,有这机会就先发出来给 v2 坛友试试,或者转发联系我都行

安卓 12 这个拉面条特效简直离谱

Posted: 18 Feb 2022 01:30 AM PST

上下左右全都是弹的,连图片都是弹来弹来去得,又晃眼质量又差,强行加这种效果能改善用户体验?

求助,动态设置页面 meta 的 TDK 在查看网页源代码里看不到

Posted: 18 Feb 2022 01:22 AM PST

是这样的,为了优化一下页面的 title 、keywords 、description 这些东西。 我根据后端返回的内容,用 js 对他们值做了修改。 结果在查看元素的时候可以看到。 但是,在界面右键 查看网页源码 看的时候,发现还是原来的。

我看 CSDN 这种。都是每个页面的源码,都是各自文章的 title 、keywords 、description 这些, 这是咋做的呢?

我使用的前端是 Vue ,后端是 springboot.

导致 AWS 服务器无响应的一个问题

Posted: 18 Feb 2022 01:12 AM PST

用的 AWS EC2,一直有一个没有排查出来的问题,目前在服务器上 100%触发,我怀疑是 AWS 的问题. 一运行 npm 部分相关的程序, 会导致服务器负载大幅上升,其他线程的响应时间延迟近百倍(所以我猜是 CPU 跑满了),并且不响应 ctrl+c,但是 AWS monitor 里 CPU 监控才跑到 3%,Network 占用也正常 无法退出进程,broken pipe 之后 ssh 也不响应,控制台上也无法连接到服务器,唯一的办法是在控制台上重启服务器。 运行的命令有: npm list | grep react-scripts npm install 其中 install 命令可以运行一部分,但装一会就卡死了 各位大佬有没有想法,这个问题卡了好久了

kong 管理面板

Posted: 18 Feb 2022 12:57 AM PST

请问有没有好的 kong 管理面板,除了 konga 之外,konga 好久不更新了

你们编译 iOS Framework 会用 Archive 模式吗?

Posted: 18 Feb 2022 12:34 AM PST

手头上有一个 iOS 动态库项目,因为想要自动编译生成 XCFramework ,在网上找了一个脚本生成 XCFramework ,结果发现生成的 XCFramework 库(arm64+armv7 架构)比平常生成的 framework 大多了,前者是 23.1M, 后者是 4.7M

上面用的生成 XCFramework 脚本是 How to make XCFramework / Fat Framework in Xcode 里的第 1 个脚本

研究了一下,发现这个脚本里是用 Archive 生成目标 framework 的,而我们平常都是直接用 Run+Release 模式编译的。查问题手动进行 Archive 编译时,发现生成的 Products 目录还是空的。搜了一下在 Build Setting 中设置 SKIP_INSTALL 为 NO ,就能成功 Archive 出 framework 了,大小跟前面脚本生成的一致了,是 23.1M 。

另外发现把 BitCode 改为 NO 后,手动 Archive 生成的 framework 大小变为 6.3 MB 了。

这个 Framework 项目里用到了 OpenSSL 的 libssl.a 和 libcrypto.a 库,可能是这个原因,前者是 21.4M ,后者是 4.3M ,可能是这两个库的原因导致 Archive 生成的库比较大?感觉不太像。

同样都是 BitCode 为 YES 的情况下,为什么用 Run+Release 模式生成的 framework 就小很多呢,有人知道原因吗?

centos7 安装多个版本的 node,切换时只在当前终端上生效,重新打开窗口连上服务器还是以前的版本

Posted: 18 Feb 2022 12:07 AM PST

在我服务器上安装了多个 node 版本,我怎么样切换才能把 system 版本的 node 给切换调。经常是在当前窗口里面生效,重新开窗口连到服务器上还是以前的 node 版本。
nvm use v14.2.0 切换命令

raspbian 卡在启动界面的问题,不显示登录提示问题

Posted: 17 Feb 2022 11:56 PM PST

问题是突然出现的 忘记了期间做过什么操作

ssh 服务是正常的 ,所以可以远程登陆进去查看 然后就怀疑 getty 相关的服务有什么问题,手动启用 getty@tty1 勉强可以登陆进去 但是操作很卡,各种搜索 都没找到解决方法

最后直接升级 buster 到 bullseye ,(当然中间也不顺利) 用的是 apt full-upgrade (这个命令应该会移除一些包)

这时候问题解决了,后来发现 rc.local 服务状态是 masked 没有启动 估计是因为 python 包被移除了 然后想起来 我之前修改了脚本 把一个 python 脚本(里面有死循环)的输出 >/dev/null 了 这个本来没事,但是我把 后面的 & 符号移除了,导致 rc.local 服务一直卡住 然后后面的服务都没有正常启动

RSS 酱 - 自动运行并通知支持多种推送 订阅 通知 即时 稳定 FEED

Posted: 17 Feb 2022 11:16 PM PST

🔥项目地址: https://github.com/n0raml/rsschan

功能

实现了 Github Action 和云函数全云端

  • 准时
  • 订阅
  • 通知
  • 托管添加

技术

全轮子混合成,代码只有三十多行

rss 不及时和需要打开才能提醒,漏了很多消息。搞了个小工具来完成这些操作 😁

笔记本关闭后盖了之后,无法进入待机状态了,有日志提示

Posted: 17 Feb 2022 11:07 PM PST


环境

  • 操作系统:Linux Mint
  • 内核信息:Linux jimmy-mint 5.4.0-100-generic #113-Ubuntu SMP Thu Feb 3 18:43:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
  • 接着电源,非使用电池(使用电池也是一样的问题,时间长了,电池老化了,待机时间太短)

问题描述

  • 每次合上笔记本盖子之后,无法进入待机状态,再次打开仍然是开机状态。

问题排查

  • 已经配置过电源管理:
    • 空闲时计算机从不转入睡眠
    • 关闭笔记本电脑上盖时挂起
  • 查看日志/var/log/syslog看到如下提示:<warn> [sleep-monitor] inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying
  • 使用命令systemctl suspend,可日志/var/log/syslog中一直复现上述警告提示
  • 使用命令sudo pm-suspend可以进入待机状态,并且日志中无上述警告提示。

其他

  • 该问题估计不是内核的问题,因为存在好久了,之前也有降级过内核,依然存在该问题。

怎么能把 opencv, FFmpeg 打包到一个二进制里面或者工具里而且占用空间最少?

Posted: 17 Feb 2022 09:52 PM PST

如题

现在写一个工具用到了 FFmpeg 拆帧的功能,还有 opencv 图像处理的功能, 但实际上用的功能只是很少一点,这两东西打包都挺大,有没啥缩小空间的办法,或者替代品

好像 opencv 可以做拆帧 可以替代一部分 FFmpeg 不过实地测了下发现拆帧比 FFmpeg 慢

谁有 Azure 3500 想出?带价来一下?

Posted: 17 Feb 2022 08:01 PM PST

想收一个,可 pm 我,也可直接报价

请教一个 C 宏的写法

Posted: 17 Feb 2022 07:12 PM PST

#if defined(DEBUG) #define TODO(MSG) #else /// 抛出 MSG 编译错误 #define TODO(MSG) #error MSG  // 这样不行. #好像不能在后面 

No comments:

Post a Comment