写点什么

ARTS 打卡 第 27 周

用户头像
引花眠
关注
发布于: 2020 年 12 月 14 日

ARTS 简介

Algorithm 是一道算法题,Review 是读一篇英文文章,Technique/Tips 是分享一个小技术,Share 是分享一个观点。


Algorithm

力扣(LeetCode)69. x 的平方根


实现 int sqrt(int x) 函数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。


示例 1:
输入: 4输出: 2示例 2:
输入: 8输出: 2说明: 8 的平方根是 2.82842...,  由于返回类型是整数,小数部分将被舍去。
复制代码


解题思路: 这道题如可以使用二分查找,判断 n 的位置,需要注意求平方时,有可能溢出


class Solution {    public int mySqrt(int x) {        int l = 0;        int r = x;        int ans = 0;        while (l <= r) {            int mid = l + (r - l) / 2;            if ((long) mid * mid <= x) {                ans = mid;                l = mid + 1;            } else {                r = mid - 1;            }        }        return ans;    }}
复制代码


ps:参考资料


  1. 《剑指Offer:名企面试官精讲典型编程题(第2版)》

  2. labuladong 的算法小抄


Review

学习-微服务架构模式系列,网站地址是:https://microservices.io 微服务架构-Pattern: Remote Procedure Invocation (RPI) 这篇文章的主要介绍了微服务架构下的通信模式:外部化配置 背景:使用微服务架构,服务需要处理客户端的请求,可能需要多个客户端协作才能处理。所以需要跨服务通信。 问题:微服务架构中服务如何通信


强制条件


  1. 服务之间需要协作

  2. 同步通信会使客户端与服务端严重耦合,因为必须保证双方都可用


解决方法,使用远程调用方式进行服务之间的通信,客户端使用基于请求/应答模式的协议:


  1. REST(https://en.wikipedia.org/wiki/Representational_state_transfer)

  2. gRPC(http://www.grpc.io/)

  3. Apache Thrift(https://thrift.apache.org/)


好处


  1. 简单且熟悉

  2. 请求/应答非常简单

  3. 因为没有中间环节,系统简单


不足


  1. 处理请求/应答模式外,不支持其他模式

  2. 降低可用性 服务端和客户端必须同时在线


需要解决的问题


  1. 客户端如何发现服务


ps:《微服务架构设计模式》


Tips

记录我对于 Linux 的学习,网络管理的命令:


ps:“~” 表示为 home 目录,“.” 则是表示目前所在的目录,“…” 则表示当前目录的上一层目录 -h 用人类可读的格式展示(G(千兆字节),M(兆字节),K(千字节)),大部分命令有这个参数


vmstat

vmstat 显示虚拟内存状态(“Virtual Memory Statistics”)的统计信息,但是它可以报告关于进程、内存、I/O 等系统整体运行状态 用法: vmstat [选项]


  1. -a 显示活动内页;

  2. -f 显示启动后创建的进程总数;

  3. -m 显示 slab 信息;

  4. -n 头信息仅显示一次;

  5. -s 以表格方式显示事件计数器和内存状态;

  6. -d 报告磁盘状态;

  7. -p 显示指定的硬盘分区状态;

  8. -S 输出信息的单位。

  9. -t 在每行增加时间辍

  10. -w 宽频显示


vmstatprocs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st 0  0      0  71536  12192 229944    0    0     5     3    6    7  0  0 99  0  0
复制代码


在vm模式中procss    r: 就绪队列的长度,也就是正在运行和等待 CPU 的进程数。    b: 处于不可中断等待(等待IO)的进程数量memory    swpd: 使用虚拟内存大小    free: 空闲物理内存大小    buff: 缓冲的内存大小    cache: 用作缓存的内存大小swap    si: 即sAmount of memory swapped in from disk (/s),每秒从交换区写到内存的大小,由磁盘调入内存    so: 即Amount of memory swapped to disk (/s),每秒写入交换区的内存大小,由内存调入磁盘io    si: Blocks received from a block device (blocks/s).每秒读取的块数    so: Blocks sent to a block device (blocks/s). 每秒写入的块数system    in: 每秒中断数,包括时钟中断    cs: 每秒上下文切换数cpu    us: 用户进程执行时间百分比(user time)    sy: 内核系统进程执行时间百分比(system time)    id: 空闲时间百分比    wa: IO等待时间百分比    st: Time stolen from a virtual machine
复制代码


Share

分享最近对的学习,这次分享的是SpringBoot 系列(6)- 测试,可能会有不足之处,之后会根据理解继续修改。


发布于: 2020 年 12 月 14 日阅读数: 20
用户头像

引花眠

关注

还未添加个人签名 2018.06.11 加入

还未添加个人简介

评论

发布
暂无评论
ARTS打卡 第27周