使用 HTTP/2 服务端推送技术加速 Node.js 应用 四月份,我们宣布了对 HTTP/2 服务端推送技术的支持,我们是通过 HTTP 的 Link 头部来实现这项支持的。我的同事 John 曾经通过一个例子演示了在 PHP 里支持服务端推送功能是多么的简单。 我们想让现今使用 Node.js 构建的网站能够更加轻松的获得性能提升。为此,我们开发了 netjet 中间件,它可以解析应用生成的 HTML 并自动添加 Link 头部。当在一个示例的 Exp linux中国 2024-07-19 张二河
使用 Python 和 Asyncio 编写在线多用人游戏(二) 你在 Python 中用过异步编程吗?本文中我会告诉你怎样做,而且用一个能工作的例子来展示它:这是一个流行的贪吃蛇游戏,而且是为多人游戏而设计的。 介绍和理论部分参见“第一部分 异步化”。 游戏入口在此,点此体验。 3、编写游戏循环主体 游戏循环是每一个游戏的核心。它持续地运行以读取玩家的输入、更新游戏的状态,并且在屏幕上渲染游戏结果。在在线游戏中,游戏循环分为客户端和服务端两部分,所以一般有两个 linux中国 2024-07-19 醒在深海的猫
使用 stunnel 保护 telnet 连接 Telnet 是一种客户端-服务端协议,通过 TCP 的 23 端口连接到远程服务器。Telnet 并不加密数据,因此它被认为是不安全的,因为数据是以明文形式发送的,所以密码很容易被嗅探。但是,仍有老旧系统需要使用它。这就是用到 stunnel 的地方。 stunnel 旨在为使用不安全连接协议的程序增加 SSL 加密。本文将以 telnet 为例介绍如何使用它。 服务端安装 使用 sudo 安装 linux中国 2024-07-18 泡泡
在 Go 中实现一个支持并发的 TCP 服务端 仅用大约 65 行代码,开发一个用于生成随机数、支持并发的 TCP 服务端。 TCP 和 UDP 服务端随处可见,它们基于 TCP/IP 协议栈,通过网络为客户端提供服务。在这篇文章中,我将介绍如何使用 Go 语言 开发一个用于返回随机数、支持并发的 TCP 服务端。对于每一个来自 TCP 客户端的连接,它都会启动一个新的 goroutine(轻量级线程)来处理相应的请求。 你可以在 GitHub linux中国 2024-07-16 向阳逐梦
Windows上常见Oracle环境变量问题集 点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!! 问题集速览: 问题1:服务器上同时安装Oracle客户端和服务端 问题2:CMD命令行下进不去SQLPLUS命令行,多个实例间进行临时切换 问题3:PLSQL报错你确定已经安装了Oracle Clinet吗 问题4:PLSQL登录时无法选择对应数据库 背 景 日常维护中,特别是测试环境,避免不了即部 数据运维 2024-06-04 泡泡
使用Canal实现MySQL到MySQL的全量、增量同步 使用Canal实现MySQL到MySQL的全量、增量同步 一、简要说明 canal的使用需要一个服务端canal-deploy 和客户端canal-adapter,简单来说,服务端来监听源数据库的bin-log变化并解析为 sql等待客户端消费;客户端连接服务端来进行sql消费。 二、MySQL配置 参考官方文档:https://github.com/alibaba/canal/wiki/Quic 数据运维 2024-05-28 法医
基于Puppeteer实现前端SSR完美接入方案 什么是SSR? SSR 全称是 Server Side Rendering 代表的是服务端渲染。与客户端渲染不同的是,SSR 输出的是⼀个渲染完成的html,整个渲染过程是在服务器端进⾏的。例如传统的ASP、JSP、PHP等都是服务端渲染。 优点 有利于 SEO,由于页⾯在服务器⽣成,搜索引擎直接抓取到最终页⾯结果。 有利于⾸屏渲染,html 所需要的数据都在服务器处理好,直接⽣成 html,⾸屏 开发运维 2024-05-20 共饮一杯
❤️🔥 FolkMQ 的“内存保护”是怎么回事儿? folkmq 提供了一个内存保护模式。当内存使用超过 80% 时,开始拒收对端的消息(通过告警异常反馈)。此特性,直接由 socket.d 提供支持。好处是: 服务端不会 oom(服务端支持) 客户端也不会 oom(客户端支持) 示例: 启动服务端(中间件): java -Xmx256M -jar folkmq-server.jar 用客户端简单压测一下: public class Test { 运维资讯 2024-05-17 爱可生开源社区
HTTPS的TSL握手流程是什么 传统的 TLS 握手基本都是使用 RSA 算法来实现密钥交换的,在将 TLS 证书部署服务端时,证书文件其实就是服务端的公钥,会在 TLS 握手阶段传递给客户端,而服务端的私钥则一直留在服务端,一定要确保私钥不能被窃取。 在 RSA 密钥协商算法中,客户端会生成随机密钥,并使用服务端的公钥加密后再传给服务端。 根据非对称加密算法,公钥加密的消息仅能通过私钥解密,这样服务端解密后,双方就得到了相同的 网络运维 2024-03-24 贤蛋大眼萌
Golang如何与ng结合,实现更强大功能? Golang如何与Nginx结合,实现更强大功能? 随着前后端分离开发模式的流行,服务端的负载能力和性能成为了开发者们关注的重点之一。在这种情况下,Golang和Nginx作为性能优秀的工具,被广泛应用于服务端的开发和部署中。 Golang是一种高效、快速的编程语言,具有良好的并发性能和内存管理。而Nginx则是一个轻量级的高性能Web服务器,常用作反向代理、负载均衡、静态资源服务等。将Golan 开发运维 2024-03-20 泡泡
Go语言服务端开发的技术趋势与发展展望 标题:Go语言服务端开发的技术趋势与发展展望 随着互联网技术的飞速发展,Go语言作为一种高效、可靠的编程语言,得到了越来越多开发者的青睐。特别是在服务端开发领域,Go语言以其并发性能优越、简洁易懂的代码风格和丰富的标准库功能,成为越来越多项目的首选。本文将介绍Go语言服务端开发的技术趋势,展望未来的发展方向,并通过具体代码示例来说明相关技术。 一、技术趋势 1.微服务架构:随着应用规模的不断扩大, 开发运维 2024-03-16 大树
探讨Go语言在服务端开发中的最佳实践 在当今互联网时代,服务端开发扮演着至关重要的角色。为了满足不断增长的用户需求和应对日益复杂的业务逻辑,开发者们需要选择一种高效、可靠且易于维护的编程语言。在这个背景下,Go语言作为一种发展迅速的新兴语言,备受开发者关注。本文将探讨Go语言在服务端开发中的最佳实践,结合具体的代码示例,帮助读者更好地了解如何利用Go语言构建高性能的服务端应用。 一、并发编程 Go语言内置了强大的并发支持,通过goro 开发运维 2024-03-16 穿过生命散发芬芳
一台机器上能创建多少条TCP连接? 如果在不考虑服务器的内存和文件句柄资源的情况下,理论上一个服务端进程最多能支持约为 2 的 48 次方(2^32 (ip数) * 2^16 (端口数),约等于两百多万亿! 但是在实际中是支持不了这个数值的,每个TCP连接都是一个文件,会占用文件句柄资源,也会占用一定的内存空间。 一台服务器是可以有多个服务端进程的,每个服务端进程监听不同的端口,当然所有65535个端口你都可以用来监听一遍,这样理论 网络运维 2024-03-13 泡泡
看一遍就理解:零拷贝详解 1.什么是零拷贝 零拷贝字面上的意思包括两个,“零”和“拷贝”: “拷贝”:就是指数据从一个存储区域转移到另一个存储区域。 “零” :表示次数为0,它表示拷贝数据的次数为0。 合起来,那零拷贝就是不需要将数据从一个存储区域复制到另一个存储区域咯。 零拷贝是指计算机执行IO操作时,CPU不需要将数据从一个存储区域复制到另一个存储区域,从而可以减少上下文切换以及CPU的拷贝时间。它是一种I/O操作优化 开发运维 2024-03-12 Escape
微服务架构中,客户端如何捕捉服务端的异常? 在微服务架构或者分布式系统中,客户端如何捕捉服务端的异常? 这里说的客户端指调用方、服务端指被调用方,它们通常运行在不同的进程之中,这些进程可能运行在同一台服务器,也可能运行在不同的服务器,甚至不同的数据机房;其使用的技术栈可能相同,也可能存在很大的差异。 为什么 在Java、C#等高级语言中,程序遇到无法处理的情况,或者不满足运行条件时,比如除数是0的情况,底层代码通常会通过抛出异常(Excep 开发运维 2024-03-06 LOVEHL^ˇ^
openGauss学习笔记143 openGauss 数据库运维例行维护数据安全维护建议 对于openGauss的服务端和客户端(或基于客户端库开发的应用程序),最好也部署在可信任的内网中。如果服务端和客户端一定要部署在非信任的网络中,需要在服务启动前,打开SSL加密,保证数据在非信任网络上的传输安全。需要注意的是,打开SSL加密会降低数据库的性能。 数据运维 2024-02-14 三掌柜
基于TCP协议Socket编程,使用WPF实现文件上传和保存文件完整示例 需求分析 假设我们需要实现一个基于网络的文件上传系统,用户可以通过客户端将本地文件上传到服务端。这种情况经常出现在文件存储和共享、云存储等应用场景中。使用Socket编程可以实现高效可靠的文件传输。 1、客户端需求: 用户可以选择本地文件进行上传。 用户需要输入服务端的IP地址和端口号。 客户端需要将选择的文件发送给服务端进行保存。 2、服务端需求: 服务端需要监听指定的端口,等待客户端连接请求。 开发运维 2024-02-02 LOVEHL^ˇ^
图文讲透Golang标准库 Net/Http实现原理 服务端 前言 今天分享下Go语言net/http标准库的内部实现逻辑,文章将从客户端(Client)--服务端(Server)两个方向作为切入点,进而一步步分析http标准库内部是如何运作的。 图片 由于会涉及到不少的代码流程的走读,写完后觉得放在一篇文章中会过于长,可能在阅读感受上会不算很好,因此分为【Server--Client两个篇文章】进行发布。 本文内容是【服务端Server部分】,文章代码版本 开发运维 2024-01-29 醒在深海的猫
为何TCP挥手是四次 TCP是一种可靠的、面向连接的协议,用于实现可靠的数据传输。它通过确认机制、重传机制和流量控制机制等机制来保证数据的可靠传输。 那么TCP连接的销毁,为何是四次挥手,而不是三次挥手呢?今天我们一起聊一聊。 为何不使用三次挥手 我们来看看,采用如下的方式,进行三次挥手操作: 我们知道TCP握手是三次,那么挥手为何不采用三次的方式呢。 看上图,我们按照服务端ACK和FIN合并一起发送至客户端的方式,即 网络运维 2024-01-15 贤蛋大眼萌
利用Go传统RPC和gRPC框架分别实现一个RPC服务端 1.RPC原理介绍 RPC(Remote Procedure Call, 远程过程调用) 是一种计算机通信协议, 它允许程序调用另一个地址空间(通常是远程机器上的)的过程或函数, 就像本地调用一样, 而不需要显示地处理网络通信的细节。RPC使得分布式系统中的不同模块能够相互通信, 而对开发者而言, 这种通信就像是本地调用一样简单。其调用原理图如下: 图片 上面的步骤看起来很复杂, 实际上, 在当前 开发运维 2024-01-02 捡田螺的小男孩