知识点-云计算
参考文献
What are Iaas, Paas and Saas?
IaaS/PaaS/SaaS
在云计算中,云服务供应商提供了三种使用的模型:IaaS、PaaS和SaaS。
IaaS (Infrastructure-as-a-Service): 是对云托管的物理和虚拟服务器、存储和网络的按需访问——用于在云中运行应用程序和工作负载的后端 IT 基础设施.
PaaS (Platform-as-a-Service): 是按需访问完整的、随时可用的云托管平台,用于开发、运行、维护和管理应用程序。
SaaS (Software-as-a-Service): 即用型云托管应用程序软件的按需访问。
Linux工具-find
参考文献
find
1234567891011121314151617181920212223242526272829303132333435363738394041# find [PATH] [option] [action]参数: 1. 与时间有关的参数: -atime n : n 为数字,意义为在 n 天之前的『一天之内』被 access 过的档案; -ctime n : n 为数字,意义为在 n 天之前的『一天之内』被 change 过状态的档案; -mtime n : n 为数字,意义为在 n 天之前的『一天之内』被 modification 过的档案; -newer file : file 为一个存在的档案,意思是说,只要档案比 file 还要新, 就会被列出来~2. 与使用者或群组名称有关的参数: -uid n : n 为数字,这个数字是使用者的账号 ID,亦即 UID ,这个 UID 是记录在 /etc/passwd 里面与账号名称对应的数字。这方面我们会在第四篇介绍。 -gi ...
Kali-遇到的问题
参考文献
apt-get update签名验证失败
解决办法
1234# 下载签名wget archive.kali.org/archive-key.asc # 安装签名apt-key add archive-key.asc
Linux-网络管理
参考文献
hosts
1cat -n /etc/hosts
hostname
1cat /etc/hostname
查看ip地址
123hostname --ip-addresshostname -I
黑白名单
/etc/hosts.allow 白名单
123456789# /etc/hosts.allow: list of hosts that are allowed to access the system.# See the manual pages hosts_access(5) and hosts_options(5).## Example: ALL: LOCAL @some_netgroup# ALL: .foobar.edu EXCEPT terminalserver.foobar.edu## If you're going to protect the portmapper use the name "rpcbind" for the# daemon name. ...
微服务
参考文献
极客时间-<<从0开始学微服务>> 胡忠想
微服务
微服务相比于服务化又有什么不同呢?
服务拆分粒度更细。微服务可以说是更细维度的服务化,小到一个子模块,只要该模块依赖的资源与其他模块都没有关系,那么就可以拆分为一个微服务。
服务独立部署。每个微服务都严格遵循独立打包部署的准则,互不影响。比如一台物理机上可以部署多个 Docker 实例,每个 Docker 实例可以部署一个微服务的代码。
服务独立维护。每个微服务都可以交由一个小团队甚至个人来开发、测试、发布和运维,并对整个生命周期负责。
服务治理能力要求高。因为拆分为微服务之后,服务的数量变多,因此需要有统一的服务治理平台,来对各个服务进行管理。
从单体应用走向服务化
服务化拆分的两种姿势
纵向拆分
是从业务维度进行拆分。标准是按照业务的关联程度来决定,关联比较密切的业务适合拆分为一个微服务,而功能相对比较独立的业务适合单独拆分为一个微服务。
横向拆分
是从公共且独立功能维度拆分。标准是按照是否有公共的被多个其他服务调用,且依赖的资源独立不与其他业务耦合。
服务化拆分的前置条件
从 ...
算法-Graph Problems
参考文献
Graph
基础概念
顶点
边
未加权图
加权图
顶点矩阵
邻接表
算法-CSP问题
参考文献
CSP问题
CSP问题是指约束满足问题(Constraint Satisfaction Problem),是一类重要的人工智能问题。在CSP问题中,变量的取值受到一定的约束条件限制,目标是找到满足所有约束条件的变量取值。常见的CSP问题有地图着色、八皇后、数独等。解决CSP问题的方法包括回溯算法、约束传播、启发式搜索等。CSP问题在人工智能领域有着广泛的应用,如排课、时间表安排、资源分配等。通过有效的算法和技术,可以高效地解决各种实际问题。
澳大利亚地图着色问题
The Australian map-coloring problem
八皇后问题
The eight queens problem
Word search
现有框架
choco-solver
https://github.com/chocoteam/choco-solver
算法-搜索
搜索
Classic Computer Science Problems in Java
线性搜索
二分搜索(Binary search)
深度优先搜索(DFS Depth-first search)
12345678910111213141516171819202122232425262728public static <T> Node<T> dfs(T initial, Predicate<T> goalTest, Function<T, List<T>> successors) { // frontier is where we've yet to go Stack<Node<T>> frontier = new Stack<>(); frontier.push(new Node<>(initial, null)); // explored is where we've been Set<T> explored = new H ...
LeetCode-斐波拉契数列
参考文献
Classic Computer Science Problems in Java
斐波拉契数列
12345678910111213public class Fib2 { private static int fib2(int n) { if (n < 2) { return n; } return fib2(n - 1) + fib2(n - 2); } public static void main(String[] args) { System.out.println(fib2(5)); System.out.println(fib2(10)); }}
剪枝
1234567891011121314151617public class Fib3 { static Map<Integer, Integer> memo = new HashMap<>(Map.of(0, 0, 1, 1)); private static int fib3( ...
LeetCode-汉诺塔
参考文献
Classic Computer Science Problems in Java
汉诺塔
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748import java.util.Stack;public class Hanoi { private final int numDiscs; public final Stack<Integer> towerA = new Stack<>(); public final Stack<Integer> towerB = new Stack<>(); public final Stack<Integer> towerC = new Stack<>(); public Hanoi(int discs) { numDiscs = discs; for (int i = 1; i <= discs; i++) ...