Rust学习路径 Sep 22, 2021

为什么学习rust

  • 高性能:Rust 速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。
  • 可靠性:Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。
  • 生产力:Rust 拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具——包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。
...
Arthas Sep 2, 2021

arthas用来动态调试很好用

...
一致性hash Aug 23, 2021 import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.IntStream; import lombok.extern.slf4j.Slf4j; /** * 带虚拟节点的一致性Hash算法 */ @Slf4j public class ShardHelper { private ConcurrentSkipListMap<String, Set<Integer>> nodeHash = new ConcurrentSkipListMap<>(); private SortedMap<Integer, String> hashNode = new ConcurrentSkipListMap<>(); private static final int VIRTUAL_NODES = 32; public synchronized void addRealNode(String name) { for (int i = 0; i < VIRTUAL_NODES; i++) { String virtualNodeName = name + "&&VN" + i; int hash = getHash(virtualNodeName); // log.info("{} {}", virtualNodeName, hash); hashNode.put(hash, name); nodeHash.computeIfAbsent(name, k -> ConcurrentHashMap.newKeySet()) .add(hash); } } public synchronized void removeRealNode(String name) { Set<Integer> hashes = nodeHash.remove(name); for (Integer hash : hashes) { hashNode.remove(hash); } } //使用FNV1_32_HASH算法计算服务器的Hash值,这里不使用重写hashCo ...
领域驱动设计 May 14, 2021 为什么要搞领域驱动设计 传统的软件开发模式有结构化设计,以数据为中心设计,面向对象设计。 结构化设计:面向流程,面向过程的设计。先做A,再做B,最后做C。由过程之间的组合完成整体的系统功能 以数据为中心设计:先设计数据库ER图,然后再进行设计。持久化数据在软件应用中加工组合修改,反馈给用户,修改持久化到数据库。 面向对象设计: ...
K8s Apr 19, 2021 new post with no content 控制面 nodes 控制面 关于集群的全局决策,例如调度。一键搭建脚本通常将控制面的组件放在一台机器上 Kube-apiserver 是k8s的控制面的前端,暴露k8s的api 可水平扩展,部署多台kube-apiserver来负载均衡 etcd k8s数据存储 kube-scheduler 监视没有分配node的pod,并且为其分配node kube-controller-manager 运行controller进程的组件 逻辑上,不同的控 ...
dd安装rhel8 Feb 17, 2021 参考文档 制作Linux的DD包 Linux格式化数据盘 CentOS8修改网卡名称eth0 制作 Linux 镜像 Linux_LVM_磁盘扩容 创建镜像 安装系统 wget http://blog.arloor.com/install-rhel8-form-centos7.sh -O a.sh&& bash a.sh 核心注意点:/boot单独分区为简单分区200M,根分区(/)使用lvm分区3.2G,格式ext4,软件选择最小安装 网卡配置选择为dhcp,dd到vps上之后可能需要改 ...
Maven发布到中央仓库 Feb 2, 2021

记录下如何把自己的项目发不到maven中央仓库

...
Java管理扩展:通过MBean获取jvm运行情况 Jan 30, 2021

搞下jvm信息的监控

...
Prometheus Exporter Jan 27, 2021

prometheus监控比较火,接入prometheus监控的第一步就是提供expoter,这里就是记录下怎么提供。

...
pxeboot自动安装rhel8 Jan 21, 2021 2020年12月8日,红帽宣布将从2021年12月31日起停止维护centos系统,转而将精力投向centos stream。2021年1月20日,红帽又宣布rhel系统的开发者订阅可以用于小型生产环境,允许授权16台主机获得红帽的更新。原文链接新年,新的Red Hat Enterprise Linux程序:访问RHEL的更简便方法。 但是想要在云服 ...