写点什么

Linux服务器开发

0 人感兴趣 · 150 次引用

  • 最新
  • 推荐
https://static001.geekbang.org/infoq/38/38605ac67addf8e0cc34ec3fab579b79.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

详解 Redis 的主从同步原理

Redis为了保证服务高可用,其中一种实现就是主从模式,即一个Redis服务端作为主节点,若干个Redis服务端作为主节点的从节点,从而实现即使某个服务端不可用时,也不会影响Redis服务的正常使用。本篇文章将对主从模式中为了保证主节点和从节点数据一致而实现的

https://static001.geekbang.org/infoq/32/32d308244d6991968b38254d70ae93a0.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

设计模式第八讲:观察者模式和中介者模式详解

在现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;还有,当我们开车到交叉路口时,遇到红灯会停,遇到绿灯会行。这样的例

https://static001.geekbang.org/infoq/8a/8a09246310bc377e0b189d75591f184b.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

设计模式第七讲 - 外观模式、适配器模式、模板方法模式详解

1. 背景 软件设计也是这样,当一个系统的功能越来越强,子系统会越来越多,客户对系统的访问也变得越来越复杂。这时如果系统内部发生改变,客户端也要跟着改变,这违背了“开闭原则”,也违背了“迪米特法则”,所以有必要为多个子系统提供一个统一的接

https://static001.geekbang.org/infoq/4e/4eecc8f787e86cee949decf77b584f19.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

设计模式第六讲:责任链模式和迭代器模式详解

在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工必须根据自己要请假的天数去找不同的领导签名,也

https://static001.geekbang.org/infoq/e8/e87f5a02cd328ef61e0483fc112881a8.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

设计模式第五讲 - 装饰器模式和代理模式详解

在现实生活中,常常需要对现有产品增加新的功能或美化其外观,如房子装修、相片加相框等。在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地扩展其功能。所有这些都可以釆用装饰模式来实

https://static001.geekbang.org/infoq/fe/fe712a4e5e01bc0c7a71310b847322e7.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

设计模式 - 值类型与引用类型、深拷贝与浅拷贝、原型模式详解

一. 值类型和引用类型 1. 前言 (1). 分类 值类型包括:布尔类型、浮点类型(float、double、decimal、byte)、字符类型(char)、整型(int、long、short等)、枚举(entum)、结构体(struct)。 引用类型:数组、字符串(string)、类、接口、委托(delegate)。

https://static001.geekbang.org/infoq/46/46b4d74af1a5fe9e718556eb929667e3.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

设计模式 - 组合模式和建筑者模式详解

在现实生活中,存在很多“部分-整体”的关系,例如,大学中的部门与学院、总公司中的部门与分公司、学习用品中的书与书包、生活用品中的衣月艮与衣柜以及厨房中的锅碗瓢盆等。在软件开发中也是这样,例如,文件系统中的文件与文件夹、窗体程序中的简单控件与

https://static001.geekbang.org/infoq/36/367f6286012edb5ac974be1773690412.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

设计模式 - 策略模式详解

在现实生活中常常遇到实现某种目标存在多种策略可供选择的情况,例如,出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等,超市促销可以釆用打折、送商品、送积分等方法。

https://static001.geekbang.org/infoq/36/367f6286012edb5ac974be1773690412.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

设计模式 - 工厂方法模式和抽象工厂模式

一. 工厂方法模式 1. 定义和特点 (1). 定义:定义一个创建产品对象的工厂接口,然后把产品对象的实际创建工作放到具体的子类工厂当中实现。 PS: ① 我们把被创建的对象成为“产品”,创建产品的对象称为“工厂”。如果创建的产品不多,且基本不会增

https://static001.geekbang.org/infoq/fe/febc190e46648679ecff2e6edebecacf.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

深入浅出学习透析 Nginx 服务器的架构分析及原理分析「底层技术原理 + 运作架构机制」

Nginx再次回顾 也许你已经忘记了Nginx是做什么的?我来再次给你夯实一下概念。 多协议反向代理 Nginx是个高性能的Web和反向代理服务器及HTTP服务器,它能反向代理HTTP,HTTPS和邮件相关(SMTP,POP3,IMAP)的协议链接,还可以提供了负载均衡以及HTTP缓存。

https://static001.geekbang.org/infoq/ad/ad7f6694aaa12b6df0fb6e805c76f6ad.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

一文揭晓,我是如何在 Linux 中查找自如

用过 Linux 的小伙伴都知道,在Linux系统中包含着大量的文件,绝大部分情况下,我们都是通过 CLI 的方式与Linux进行交互,这就会面临一个问题,当我们需要查找一个文件的时候却迟迟无从下手,不知道该如何找起。我们应该怎么查找文件呢?庞大的文件量如何查找

https://static001.geekbang.org/infoq/04/04329e6e225a831f9fc1ee76252bd45d.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

树与二叉树深度剖析 (二)

一. 树表示法 1.双亲表示法 (1).含义 在一棵树中,任意一个结点的双亲只有一个,这是由树的定义决定的。双亲表示法就是利用了树的这个性质,在存储结点信息的同时,在每个节点中附设一个指向其双亲的指针, 指向双亲在链表中的位置。这种结构一般

https://static001.geekbang.org/infoq/82/8260ffa35e52b9cc755b8ff1c35bc15d.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

从状态机的角度 async 和 await 的实现原理

一. 深度剖析 准备: 先给VS安装一个插件ILSpy,这样更容易反编译代码进行查看,另外要注意反编译async和await的时候,要把C#代码版本改为4.0哦。 1.什么是状态机 (1).含义:通常我们所说的状态机(State Machine)指的是有限状态自动机的简称,是现实事物运

https://static001.geekbang.org/infoq/b4/b4020dd78b04f3be2aa62699c030db28.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

内网穿透你真的了解吗?

用户头像
C++后台开发
2022-12-28

内网穿透作为程序员常用的调试手段之一,我们可以通过在个人电脑上运行花生壳或者 frp 等方式,让他人访问我们本地启动的服务,而且这种访问可以不受局域网的限制,当我们使用ngrok,frp等开源框架时,你是否有好奇过它神奇的作用?明明没有将服务部署到服务器

https://static001.geekbang.org/infoq/01/01a60d44d158d4f573d1476c5399ba75.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

socket 是并发安全的吗

用户头像
C++后台开发
2022-12-15

我们知道,要对网络连接写数据,就要执行 send(socket_fd, data)。 于是问题就来了。 已知多个用户共用同一条连接。 现在多个用户要发数据,也就是多个用户线程需要写同一个socket_fd。 那么,socket是并发安全的吗?能让这多个线程同时并发写吗?

https://static001.geekbang.org/infoq/5c/5cf4eaa5dd38a19dffebe501e09d92d2.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

线性表→顺序表→链表 逐个击破

用户头像
C++后台开发
2022-12-10

  线性表,全名为线性存储结构。使用线性表存储数据的方式可以这样理解,即 “ 把所有(一对一逻辑关系的)数据用一根线儿串起来,再存储到物理空间中 ”。这根线有两种串联形式,如下图,即顺序存储(集中存放)和链式存储(分散存放)。

https://static001.geekbang.org/infoq/10/10241700dbfa29c65a2f7c69312a328a.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

链表剖析及自己手撸"单链表"实现基本操作 (初始化、增、删、改等)

用户头像
C++后台开发
2022-11-28

链式存储结构,又叫链表,逻辑上相邻,但是物理位置可以不相邻,因此对链表进行插入和删除时不需要移动数据元素,但是存取数据的效率却很低,分为三类:

https://static001.geekbang.org/infoq/88/88f669e04e2e9300b276635f0475204e.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

linux 常用服务配置、网络配置 和 基于 FTP 的上传和下载的几种方式

用户头像
C++后台开发
2022-11-26

一. 网络服务配置 1. 主机名配置 hostname: 查看主机名 hostname xxx: 修改主机名(重启后无效) PS: 如果想要永久生效,可以修改/etc/sysconfig/network文件 2. 静态IP的配置

https://static001.geekbang.org/infoq/08/08ff61d7668519f84009f9741192cb69.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

数据库索引相关和 EFCore 的索引映射

用户头像
C++后台开发
2022-11-21

  索引用于快速找出在某个列中有某一特定值的行,不使用索引,数据库必须从第一条记录开始读完整个表,直到找出相关的行。表越大,查询数据所花费的时间越多, 如果表中查询的列有一个索引,数据库能快速到达一个位置去搜索数据。

https://static001.geekbang.org/infoq/f7/f7261de3be7fe2ad9e098f31778c9de1.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Linux 之用户管理、权限管理、程序安装卸载

用户头像
C++后台开发
2022-11-18

一. 用户管理 1. 查看账户 (1). 查看当前账号:whoami ​(2). 查看系统当前登录的账号:who ​补充常用选项:

https://static001.geekbang.org/infoq/17/17f83a385d0c642cd0beb34a7eb7a161.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

分布式事务详解、理论分析、及强一致性 (2PC、3PC) 剖析

用户头像
C++后台开发
2022-11-14

 基于关系型数据库的事务,叫做本地事务,也叫做数据库事务。 本地事务通常是应用和数据库在一个服务器上,利用数据库本身的事务特性,从而实现本地事务。

https://static001.geekbang.org/infoq/92/92164961b4f9719b9cfb52d11a17be8d.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

一文带你走进 C++【内存泄漏】

用户头像
C++后台开发
2022-10-25

​没想到项目放到线上后,随着请求量的增多,却感觉到首屏速度越来越慢,并且是在持续性地变慢。而且在发布完后(也就是容器重建了),耗时又陡然降下来了。

https://static001.geekbang.org/infoq/8b/8b772798b9308f43210c1b0a2247bb9d.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

数据库连接池

用户头像
C++后台开发
2022-09-27

为了避免频繁的创建、释放连接引起的性能开销,于是引入了连接池来得到资源的服用,能更快的系统响应,以及统一的连接管理,避免了数据库连接泄露。

https://static001.geekbang.org/infoq/a8/a8baae4549ad6712198d36c7562432ef.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

深入探索 Linux 零拷贝原理

用户头像
C++后台开发
2022-09-21

前言 磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝、直接 I/O、异步 I/O 等等,这些优化的目的就是为了提高系统的吞吐量。 DMA技术 在没有DMA技术之前,IO过程是这样的:

分布式数据中心网络互联技术实现

用户头像
C++后台开发
2022-08-29

通过虚拟机动态迁移技术(如VMware的vMotion)可实现数据中心间的计算资源动态调配,通过服务器高可用集群技术可实现数据中心间应用级容灾,这两种应用场景统称为“分布式数据中心(Distributed Data Center)部署方式”,其特点是一个应用系统在IP地址不变的

后台服务架构高性能设计之道

用户头像
C++后台开发
2022-08-27

“N 高 N 可”,高性能、高并发、高可用、高可靠、可扩展、可维护、可用性等是后台开发耳熟能详的词了,它们中有些词在大部分情况下表达相近意思。本序列文章旨在探讨和总结后台架构设计中常用的技术和方法,并归纳成一套方法论。

https://static001.geekbang.org/infoq/2d/2d5d38a75ade7409acfd0c21ee2f31b4.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Linux C/C++ 后台开发高级架构师进阶指南 - 剑指腾讯 T9

用户头像
C++后台开发
2022-08-17

C++后台开发是一个庞杂的技术栈,因为没有统一的开发框架并且应用行业非常广泛。所有涉猎广泛,这里就把C/C++++后台开发的技术点进行整理总结,看完以后,不会让你失望的。

一张图,理清微服务架构路线(收藏)

用户头像
C++后台开发
2022-08-11

- 我为什么选择微服务架构 - 众所周知,单体应用程序,由于其种种不足,几乎不支持敏捷方法。如果你想为一个大型或复杂的业务创建一个软件项目,最好从微服务架构开始。 微服务架构是一种灵活的架构,可以显著性地提高应用程序灵活性、可扩展性等。

迄今为止见过最详细的零拷贝技术讲解

用户头像
C++后台开发
2022-08-06

注意事项:除了 Direct I/O,与磁盘相关的文件读写操作都有使用到 page cache 技术。 数据的四次拷贝与四次上下文切换 很多应用程序在面临客户端请求时,可以等价为进行如下的系统调用: File.read(file, buf, len); Socket.send(socket, buf, len);

Linux服务器开发_Linux服务器开发技术文章_InfoQ写作社区