ARTS 打卡 第 31 周
ARTS 简介
Algorithm 是一道算法题,Review 是读一篇英文文章,Technique/Tips 是分享一个小技术,Share 是分享一个观点。
Algorithm
n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。
解题思路:典型的 dfs 问题
一层一层的遍历判断
在每一个可能的点判断列、左斜方、右斜方是否存在攻击,每一个方向用一个集合存储列 存放已经放置皇后的位置左斜方 放置行与列之间的关系,用坐标画一条直线,可以看出 col = row + c,c 表示某一个固定的值右斜方 同样放置行与列之间的关系,用坐标画一条直线,可以看出 col = d - row,d 表示某一个固定的值
最后统计所有满足条件的值
ps:参考资料
Review
学习-微服务架构模式系列,网站地址是:https://microservices.io 微服务架构-Pattern: API Gateway / Backends for Frontends 这篇文章的主要介绍了微服务架构下的外部 API 的模式:API 网管/前端专属的后端模式 背景:使用微服务架构,有多种客户端需要访问服务接口,服务接口通过 REST 方式暴露,在此情况下如何设计服务 API
问题:各种客户端如何访问各个服务
强制条件:
服务提供的 Api 粒度与客户端的需求存在差异
不同的客户端需要不同的数据
不同客户端的网络状况是不一样的
服务的实例数量和位置是动态改变的
服务分区或改变对于客户端应该是透明的
服务使用的协议可能对于 web 不是很友好
解决方法
所有的客户端访问一个统一的 API 网关,网关的两个方式简单的路有聚合多个服务
变种,后端前置 每一类客户端一个 Api Gateway
好处
将客户端与微服务的切分隔离
将客户端与服务发现隔离
提供适合的接口
降低了请求往返次数
通过将聚合服务逻辑转移到 API 网关来简化客户端
屏蔽了后台服务协议
不足
可以预见的复杂性
增加的响应时间
ps:《微服务架构设计模式》
Tips
记录我对于 Linux 的学习,网络管理的命令:
ps:“~” 表示为 home 目录,“.” 则是表示目前所在的目录,“…” 则表示当前目录的上一层目录 -h 用人类可读的格式展示(G(千兆字节),M(兆字节),K(千字节)),大部分命令有这个参数
nice 命令
nice 命令以更改过的优先序来执行程序 nice 表示的是 niceness ,其含义是友善度、谦让度。用于进程中,表示进程的优先级,也即进程的友善度。niceness 值为负时,表示高优先级,能提前执行和获得更多的资源,对应低友善度;反之,则表示低优先级,高友善度。
使用方式:nice [OPTION] [COMMAND [ARG]…] 常用选项:
-n djustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
–help 帮助
–version 版本
ps:当 nice 没有选项时,输出值表示系统进程缺省的 niceness 值,一般为 0。
ps:在 ps 的进程信息中 NI 表示的就是 nice 值,我们可以看到
nice vi&
与vi&
的 nice 值相差 10
Share
最近在极客时间报名了训练营,时间有点不充分,后期会补上的。最近的学习面向对象设计原则
版权声明: 本文为 InfoQ 作者【引花眠】的原创文章。
原文链接:【http://xie.infoq.cn/article/e668c8db40adf89d2c2c96e13】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论