cloud107202

cloud107202

V2EX 第 50909 号会员,加入于 2013-11-30 10:37:00 +08:00
今日活跃度排名 3017
cloud107202 最近回复了
9 天前
回复了 YugenFring 创建的主题 程序员 kotlin 可以完美平替 Java 吗?
前 kotlin 重度用户。近两年综合 Java 目前的发展趋势与方向,我是认为在 Android 开发之外的服务端编程里,完全没有需要使用 kotlin 的场景
16 天前
回复了 lanweizhujiao 创建的主题 程序员 Java 自己写什么功能可以提升技术?
可以看看功能比较聚焦的库,我个人强推 lettuce
这里可以考虑做个线程读写分离。没接触过 .Net 我会用 Java 的 type 与 API 描述,自行对应一下:

首先把成员 devices 与相关的操作都封装到一个类型里面,对外暴露一个 public 的阻塞队列成员变量,Java 的话我会用有阻塞语义的 ArrayBlockingQueue. 这个类型在构建的时候(onCreation),启动一个单线程去 poll 这个 Queue. devices 的更新逻辑都由这个单线程完成

外面的异步操作获取到设备信息后,以 ImmutableEvent 的形式把必要的信息封装描述好,放入队列. 形如 ArrayBlockingQueue<DeviceUpdatedEvent> 这样子,里面的单线程 poll 到事件直接更新 Dictionary 即可。

最后剩下这个“多个监控线程每隔 100 毫秒读取一次所有设备状态” ,这里简单起见可以将 devices 也设置成 public ,直接在外面访问 devices 成员(重点是:一定要约定好,在 poll 的线程之外的逻辑,全部只能 read 这个 ConcurrentDictionary )。因为 Dictionary 本身使用了线程安全的 ConcurrentDictionary ,对它的 CRUD 是线程安全的,只需要防止外面监控程序获取到某个尚未更新完成的某个 Device 实例(有点像 DB 的脏读),这里给 Device 每个属性设置 volatile 肯定是不合适的:可以考虑前面提到的,在负责 poll 的单线程,获取到更新事件后,不要就地改变 device 对象本身的属性值,而是以 deepCopy 的方式创建个全新的 Device 实例。然后用 ConcurrentDictionary.put(key, value) 的 API 直接更新整个 Device 对象,规避外部监控线程在 scan 的时候,获取到属性更新不完整的 stale state
36 天前
回复了 Dlin 创建的主题 程序员 工作中有接触过让你们觉得技术不错的人么
这种迹象很典型,多是要换环境的信号
如果自己也有心收拾下现在这种混乱,可以一点点的把这些建设起来。
如果有心,只需要个方向和方案的提示就好
https://github.com/prometheus-operator/kube-prometheus

没一个人说明白。。。。 利用 kubernetes 的 operator 机制,监听到带特定 meta 的 svc 描述,operator 会自动抓取和拉取监控数据

service.yaml 开头形如下面这坨

apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/path: /metrics
prometheus.io/port: "8080"
prometheus.io/scheme: http
prometheus.io/scrape: "true"


综述:
1. 如果是自有服务,按前面说的来定义 service meta 部分
2. 如果是非 kubernetes 托管的外部服务,比如中间件,一般是部署对应的 exporter 服务。然后自定义一组同上的 service + 指向具体 IP 的 endpoint.
37 天前
回复了 ghostwind 创建的主题 程序员 [求问] 股票实时的周线和月线是怎么做的
tick 先处理成 snapshot. snapshot 携带日内的累计性质数值,最关键的是成交量与成交额

对于日级别以上的 K ,用 snapshot 触发最新一根周期 K 线的数值变更(最高、最低价、成交量、成交额),这里带一点日期逻辑,比如周 K 线里面,归属于当周就是处理归并到最近一根周 K 线,周一当天这种新的一周开始,就创建全新一根周 K.

分钟级别的没弄过,粗看用 tick 直接搞搞就好
@ovtfkw 您可以心里想想就好,大可不必张开肛门泄出来
64 天前
回复了 furlxy 创建的主题 程序员 天空卫士终端
工作必须装的话,新建一个单独的桌面,把这个窗口拖拽过去,或者小心拖放到最右下角,只会漏出一个不起眼的边框。

否则 recovery mode + rm -rf 伺候
fluent-bit C 语言编写,主流用途的插件丰富,基准内存占用个位数 MB
@paranoiagu 可能是容器的 jdk 版本不认容器平台 CRI 的 cgroupV2. 要检查并升级 jdk 到支持 cgroupV2 的小版本
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2951 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 15ms · UTC 11:07 · PVG 19:07 · LAX 04:07 · JFK 07:07
Developed with CodeLauncher
♥ Do have faith in what you're doing.