抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

之前一直想将一个 Git 仓库放到另一个 Git 仓库,有 Maven 多模块项目(Maven Multimodule Project)和 Gradle 多项目构建(Gradle Multiproject Build)那味儿。Git 这么骚,肯定也可以。“扫”了多个开源仓库,Get 到了 Git submodule 可以做这种操作,水篇文章记录波。

前几天写了个基于 rsync 进行文件同步的 Action -> rsync-deploy-action。目的有三个:

  • 1、深入了解波 GitHub Actions,感受下 GitHub 的文档;
  • 2、个人博客在我的腾讯云 CVM 服务器上是部署有一份的「域名:shan333.cn」,之前的博客同步方式是通过 Linux 的定时任务,觉得不太行,当前博客的更新并没有那么频繁,没必要每隔几个小时就 git pull 一下,且服务器还挂着其他东西,性能还是有点损耗的,换成通过 rsync 进行主动推送的方式好点;
  • 3、熟悉波 SSH 协议和 rsync 协议。

今天撸一篇文章简单记录下这次折腾。

2021 new chapter

趁着毕设初期,还能摸会儿🐟,了解波 Kafka。

Kafka 术语一览

Kafka,分布式消息引擎系统,主要功能是提供一套完备的消息发布与订阅解决方案。Kafka 也是一个分布式的、分区的、多副本的多订阅者,基于 Zookeeper 协调的分布式日志系统,可用于处理 Web 日志和消息服务。

  • Topic:主题,承载消息(Record)的逻辑容器,每条发布到 Kafka 集群的消息都归属于某一个 Topic,实际应用中,不同的 topic 对应着不同的业务;
  • Broker:Kafka 服务进程,一个 Kafka 集群由多个 Broker 服务进程组成,虽然多个 Broker 可在同一服务器上进行部署,但为了高可用,会将不同的 Broker 部署在不同的机器上;
  • Partition:分区,一组有序的消息序列,一个 Topic 可以有多个分区,同一 Topic 下的 Partition 可以分布在不同的 Broker 中。Producer 生产的每一条消息都会被放到一个 Partition 中,每条消息在 Partition 中的位置信息由一个 Offset(偏移量)数据表征。Kafka 通过偏移量(Offset)来保证消息在分区内的顺序性;

tcpdump 和 Wireshark 是最常用的网络抓包和分析工具,作为经常和网络打交道的划水选手,怎么能不了解下呢?补篇博文回顾下相关操作。这里以 example.com 的一次 GET 请求为例,先使用 tcpdump 抓个包,再使用 Wireshark 看下 TCP 的握手。

操作环境:WSL2(Ubuntu 20.04 LTS) + Windows 10

“回👋掏”。最近做东西,有点儿玩不转复杂数据类型,写篇博文再回顾下深、浅拷贝相关知识。深、浅的区分主要在对复杂数据类型进行操作的时候。

By the way:时间过得很快,十月了,之前定了个小目标:一个月至少一篇文章产出。2020年的 $ \frac{5}{6} $ 已经过去。很庆幸自己坚持了下来,学到了不少东西。实习期间其实有不少的文章主题的想法,但真正想动手写篇博文的时候,发现事情并没有想想中的那么简单,一个主题涉及到的知识点还是蛮多的,再加上实践经验的不足,有些东西很难写道点上,copy & paste 总是不太好的『努力提高文章质量,hhh~』。希望自己后续继续加油。
一些想法

OSI 模型

网络模型

常见 OSI 模型负载均衡方案

  • 2 层负载均衡:一般是用虚拟 MAC 地址方式,外部对虚拟 MAC 地址请求,负载均衡器接收后分配后端实际的 MAC 地址响应。

  • 3 层负载均衡:一般采用虚拟 IP 地址方式,外部对虚拟的 IP 地址请求,负载均衡器接收后分配后端实际的 IP 地址响应。

要想 JavaScript 玩得溜,还得了解波 JavaScript 执行机制/(ㄒoㄒ)/~~。

前言

最近看了波 JavaScript 相关的文章,不得不说,JavaScript 我还真没玩明白(给我哭~。。。😅)。也挺久没写文了,实习(“摸🐟”)之余小记一波。

回顾一句话:JavaScript 是一门单线程、非阻塞、异步、解释性脚本语言。

本文的标题是:setTimeout 是到了xx ms 就执行吗,了解 Event-Loop 机制。先回答波:不是。

来看下网上的一段经典 js 代码在浏览器中「Microsoft Edge 84.0.522.63(64位)」的执行结果。

1
2
3
4
5
6
7
8
9
10
console.log('script start');
setTimeout(() => {
console.log('setTimeout');
},0);
Promise.resolve().then(() => {
console.log('promise1');
}).then(() =>{
console.log("promise2");
});
console.log('script end');

进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。

总览