前言 很多领域都要求从业人员具备整合能力,程序员也不例外,相信很多猿友们在接收项目或者任务的时候,总会被要求给出一份详细的技术方案或者设计思路,这毫无疑问需要我们输出大量的构...
前言 很多领域都要求从业人员具备整合能力,程序员也不例外,相信很多猿友们在接收项目或者任务的时候,总会被要求给出一份详细的技术方案或者设计思路,这毫无疑问需要我们输出大量的构...
前言 传统的单体服务通过日志和性能监控为我们的系统提供了良好的观测手段,随着服务之间的交互越来越多,越来越复杂,这种“各自为政”的策略将使我们看不到整体的关联性。为了提高系统...
前言 诞生于 2005 年的分布式版本管理工具:Git,现如今已成为大多数公司协同合作的必备工具之一了。它直到现在依然保持着简单易用、高效管理的特点。相信很多刚踏入职场的猿友...
前言 软件的开发不仅仅在于解决业务,它还需要程序尽可能的运行下去,这就涉及到了服务的稳定性。稳定性涉及很多因素,硬件软件都需要保证。为了能让这些条件更加充足,我们需要不断的收...
前言 之前在寻找日志收集搜索解决方案时,最常看到的便是 ELK:Elasticsearch + Logstash + Kibana 方案。尽管由于它对服务器资源要求很高转而使...
1. 进程和线程的区别是什么 ? 进程是资源分配的基本单位,线程是 CPU 调度的基本单位。进程拥有独立的地址空间,线程是共享内存地址的。进程切换的开销比线程要大。 2. 进...
前言 现代的软件服务大多数是分布式应用程序,通过暴露自己的 API 对内或对外提供了一系列的功能点。服务与服务之间有时是跨语言、跨平台通信的。 为了解决这些复杂场景,市面上也...
1. Docker 是什么? Docker 是基于容器技术实现的,容器技术最开始是基于 Linux Container(简称 LXC)技术实现的,通过内核提供的 Namesp...
前言 提及日志收集搜索框架,最常看到的解决方案就是 ELK。虽然现在有 Docker、k8s 帮我们简化了部署流程,但 ELK 对硬件的要求却很高。光是 Elasticsea...
1. 计算机网络体系模型 物理层:建立、维护、断开物理连接。 数据链路层:建立逻辑连接、进行硬件地址寻址、差错校验等功能。 网络层:进行逻辑地址寻址,实现不同网络之间的路径选...
1. redis 为什么快? 在底层上, redis 使用了 IO 多路复用技术,像 select、epoll 等。能较好的保障吞吐量。而且 redis 采用了单线程处理请求...
1. 事务 ACID 特性 原子性(Atomicity):事务是一个不可分割的单位,因此在一个事务里的所有操作要么全部生效,要么全部不生效。 一致性(Consistency)...
前言 前段时间找工作搜索 golang 面试题时,发现都是比较零散或是基础的题目,覆盖面较小。而自己也在边面试时边总结了一些知识点,为了方便后续回顾,特此整理了一下。 1. ...
简介 计算机是由很多资源组成的,像我们常见的 CPU、内存、硬盘等。如果我们想要使用这些资源去完成某个计算任务,那么就需要有一个管理者来协调这些资源,操作系统就是这个管理者。...
分布式系统的挑战 在前面的文章里,我们分析了分布式系统在业务上的一致性技术,即分布式事务,它的结果导向是面向用户的。然而在我们的系统内部,有时也需要面对来自软件架构等更高层次...
现象 互联网的世界与十几年前相比,已经大不相同。以往的单体服务就可以支撑起大多数的用户需求。然而随着手机等电子产品的普及,用户想要的服务已经是越来越复杂,各种需求相互关联。而...
TCP 相关知识 TCP/IP 协议占据了互联网通信的一大半江山,特别像 TCP 这种保障端到端的可靠传输更是相当重要,关于它的实现也很复杂,今天介绍下关于 TCP 的相关重...
前言 本文将介绍 Docker 的相关工具使用经验,比如 Docker-compose:容器编排工具;Portainer:容器可视化管理;以及 DockerFile 的构建。...
总体架构 Docker 采用的是 C/S 架构,使用 REST API、UNIX 套接字或网络接口进行通信。一般客户端会和 Docker 服务运行在同一台机子上,像我们平常使...
Docker 与 容器 Docker 是基于容器技术实现的,由于 Docker 的火热流行,可能很多人会认为容器是 Docker 独有的技术。 实际上,容器技术最开始是基于 ...