Optimus-Xs' Blog

如何优雅的编写Dockerfile

容器需要从Dockerfile开始,本文将介绍如何写出一个优雅的Dockerfile文件。 Docker容器 容器的特点 我们都知道容器就是一个标准的软件单元,它有以下特点: 随处运行:容器可以将代码与配置文件和相关依赖库进行打包,从而确保在任何环境下的运行都是一致的。 高资源利用率:容器提供进程级的隔离,因此可以更加精细地设置CPU和内存的使用率,进而更好地利用服务器的计算...

JPA的级联操作

JPA 中的级联 由于重复性的操作十分烦琐,尤其是在处理多个彼此关联对象情况下,此时我们可以使用级联(Cascade)操作。级联 在关联映射中是个重要的概念,指当主动方对象执行操作时,被关联对象(被动方)是否同步执行同一操作。 JPA 中关联关系配置 在 JPA (Java Persistence API) 中设置实体的关联关系是核心功能之一。主要通过在实体类中使用注解(Anno...

密码管理器的进化史

主要从密码管理器保护密码的安全性角度,分享一下相关的专业知识。因密码管理器涉及很多方面的知识,本系列文章只讨论数据加密保护。 密码管理器历史 第一代密码管理器 技术架构 安全技术:有管理,无保护 典型代表:小本子、记事本、浏览器集成的密码管理器和一些私密云笔记 众所周知,互联网服务越来越流行,需要登录的网站不断增多,需要记住的密码快速增加。 但是,密码设置要求要复杂,包含...

4种强化域名安全的协议

传统的 DNS 有啥问题 传统的 DNS 是一个【比较古老】的协议。最早的草案可以追溯到1983年。1987年定稿之后,基本上没啥变化。 设计 DNS 的时候,互联网基本上还是个玩具。那年头的互联网协议,压根儿都没考虑安全性,DNS 当然也不例外。所以 DNS 的交互过程全都是【明文】滴,既无法做到“保密性”,也无法实现“完整性”。 缺乏“保密性”就意味着——任何一个能【监视】你上网流量...

海量积分数据实时排名处理方式

需求概述 积分排名在很多项目都会出现,大家都不会陌生,需求也很简单,积分排名主要满足以下需求: 查询用户名次。 查询TopN(即查询前N名的用户) 实时排名(很多项目是可选的) 当排序的数据量不大的时候,这个需求很容易满足,但是如果数据量很大的时候比如百万级、千万级甚至上亿的时候,或者有实时排名需求;这个时候要满足性能、低成本等需求,在设计上就变得复杂起来了 常规积分排...

堆的原理和实现

堆 堆这种数据结构,有很多的实现,比如:最大堆,最小堆,斐波那锲堆,左派堆,斜堆等。从孩子节点的个数上还可以分为二叉堆,N叉堆等。本文我们从最大二叉堆堆入手看看堆究竟是什么 什么是堆 我们先看看它的定义 堆是一种完全二叉树(不是平衡二叉树,也不是二分搜索树哦) 堆要求孩子节点要小于等于父亲节点(如果是最小堆则大于等于其父亲节点) 满足以上两点性质即可成为一棵合格的堆数据结构...