SSE 的本质严格地说,HTTP 协议无法做到服务器主动推送信息。但是,有一种变通方法,就是服务器向客户端声明,接下来要发送的是流信息(streaming)。 也就是说,发送的不是一次性的数据包,而是一个数据流
Go 语言没有构造函数,一般通过定义 New 函数来充当构造函数。但是,如果结构有较多字段,要初始化这些字段,就有很多种方式,有一种方式被认为是最优雅的,就是函数式选项模式(Functional Options Pattern)
刚在虚拟机上执行 1 service network restart 时报了以下错误👇 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 2月 04 11:09:16 192.168.48.151 postfix/pickup[19414]: fatal: unable to use my own hostname 2月 04 11:09:17 192.168.48.151 postfix/master[7179]: warning: process /usr/libexec/postfix/pickup pid 19414 exit status 1 2月 04 11:09:17 192.168.48.151 postfix/master[7179]: warning: /usr/libexec/postfix/pickup: bad command startup
服务器版本 linux version 下载可以直接去官网下载需要的版本即可,这里已 6.0.16 版本为准。 redis download 安装我把下载的 tar 包放在了 /root 目录下,这里可以自行修改。 1 2 3 tar -xzf redis-6.0.16.tar.gz cd redis-6.0.16 make && make install 安装成功启动服务: install success redis start 常见问题 cc: command not found
make 的作用是初始化内置的数据结构,也就是 slice、map和 channel。 new 的作用是根据传入的类型分配一片内存空间并返回指向这片内存空间的指针。 make内置函数 make 仅支持 slice、map、channe
Go 在编译时可以添加一些额外的参数,这些参数可以用来添加如版本等信息。 比如有以下的 t.go 文件源码👇 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 package main import ( "flag" "fmt" "runtime" ) var ( version string buildTime string commitID string ) func init() { flag.StringVar(&version, "version", "", "
之前在CSDN写过一个关于 martini 的笔记golang martini 包的简单使用 ,最近读来感觉不是很清楚,而且也有一些错误,花了点时间重新整理了下那篇笔记。 中间件的使用根据文档中间件的使用有 2 种方法,我总结为通过 Handlers 函数方
chromedpPackage chromedp is a faster, simpler way to drive browsers supporting the Chrome DevTools Protocol in Go without external dependencies. 可以查看官方的示例。 以下示例用的版本为 github.com/chromedp/chromedp v0.8.4。 示例 打印在线页面👇 有时需要打印一个在线页面成 pdf,比如把https://www.baidu.com/这个
发布于 2021-05-06 收录于 类别 开发者手册 和 系列 转载 Nginx 概述Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重
安装 pip 安装 pip3环境为 armv7l 1 apt-get install python3-pip 安装 pip3 安装成功 安装 pip对于 python2 来说可以安装 pip: 1 apt install python-pip conda 和 pip 的区别 pip 仅仅是包管理工具,而 conda 不仅仅是包管理工具,conda 的功能比 pip 更多。 pip 仅限于 python 包的安装更新卸载
总览之前在 CSDN 上写过一篇关于 RP 的笔记 github fork PR 的简单使用 ,那篇文章写的比较随意且不是用命令行操作的,大部分操作都是基于 IDE,所以想着重新整理下那篇文章,同时也复习下 git 常用命令。 pull request 模拟场景公司有个项目为 xiao1996cc/git-dev
win10 安装在 windows 下安装可以参考这篇文章mongodb-window-install。 小坑我使用的是 windows 10 企业版,在安装时出现了个问题,如下: 问题截图 我是在网上找了大半天没有找到解决的办法,都是写文章作者可用,
RPC 是一种跨语言的协议,它可以让我们在不同的语言之间进行通信。 远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个 地址空间(通常为一
发布于 2021-04-03 收录于 类别 开发者手册 和 系列 转载 阻塞IO服务端为了处理客户端的连接和请求的数据,写了如下代码。 1 2 3 4 5 6 7 8 9 listenfd = socket(); // 打开一个网络通信端口 bind(listenfd); // 绑定 listen(listenfd); // 监听 while(1) { connfd = accept(listenfd); // 阻塞建立连接 int n = read(connfd, buf); // 阻塞读数据 doSomeThing(buf); // 利用读到的数据做些什么 close(connfd); //
server 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 package main import ( "fmt" "net" "time" ) func main() { // 创建监听 socket, err := net.ListenUDP("udp4", &net.UDPAddr{ IP: []byte{127, 0, 0, 1}, Port: 8080, }) if err != nil { fmt.Println("监听失败!
下载镜像在 CentOS 的官网 https://wiki.centos.org/Download 可以下载 CentOS 各个版本的镜像文件。 CentOS Download 包括已经不在维护的各个版本: Archived Versions 也可以去阿里的镜像仓库去下载 mirrors.aliyun.com/centos。 安装 CentOS 7.9下载完 CentOS-7-x86_64-Minimal-2009 就可以安装了,
Redis 是一个使用 C 语言开发的数据库,与传统数据库不同的是 Redis 的数据是存在内存中的,我们把这种数据库叫做内存数据库。因为在内存中,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向。 Redis 提供了多种数据类型来支持不同
不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(MySQL语句),服务器进程处理后再向客户端进程发送一段文本(处理结果)。 那服务器进程对客户端
linux 和 unix 的区别Linux和Unix之间的区别是什么? musl 和 glibc 的区别musl 和 glibc 都是 Linux 的标准库,区别是 musl 是一个 mini 版本,或是叫做基于 glibc 的库,而 glibc 是一个完整版本。 ubuntu 获取系统代号 1 lsb_release -cs 获取系统代号 内核版本信息 1 2
问题今天在操作 docker 时遇到了一个问题IPv4 forwarding is disabled. Networking will not work👇 报错信息 我的系统是 CentOS7.9 系统信息 解决方案在宿主机执行 1 echo "net.ipv4.ip_forward=1" >>/usr/lib/sysctl.d/00-system.conf 然后重启网络和 docker 1 2 systemctl restart network systemctl restart docker 问题解决