这是一篇学习笔记,之前看Haproxy的配置使用,真是一头雾水,有一些配置项,都不知道是做什么用的?更别说灵活配置了,所以这次下定决心,从官方的网站上从头开始看配置文档,因为官方的文档是英文,本人的英文比较烂,在看的过程中做了这个笔记。
分类目录归档:架构
Haproxy中DNS的解析配置
默认情况下,Haproxy中的server的配置行是支持 HostName 的,并在 haproxy 中启动后,解析hostName得到IP地址,并将IP地址缓存到 haproxy 整个生命期,但这种情况会出现一个问题,如果后端服务器的hostName的 IP 更改了,无法更新已缓存的 IP 。此时haproxy就无法访问该后端服务器了,本文解决的就是这个问题。在Haproxy增加 DNS的解析设置,并在每次健康检测的时候,解析HostName,并验证。这样一旦后端服务器 HostName 对应的IP 更改了,也能在健康检测的周期内,更新缓存中的IP地址。
DNS服务器的基础知识
一、什么是DNS
DNS定义:
DNS的全名Domain Name System,中文可以翻译成领域名称系统(通俗叫域名系统)。主要作用是将我们容易记忆的域名(Domain Name)转化成IP地址。未来网络的发展IPv6会取代IPv4,此时将会出现16位0-9A-Z的组合,替换现在的0.0.0.0的地址,基本上不可能记住IPv6的地址,此时DNS更会凸显它的重要性。
Haproxy中的后端服务器server的使用
server的设置包括server和default-server两种,这两种区别在于default-server是多组server的公用设置。一般涉及到多组服务器,可以设置公用default-server,其他的server将继承default-server的设置。
官方的参考文档:http://cbonte.github.io/haproxy-dconv/1.7/configuration.html#5.2-addr
这2个命令的设置格式:
Haproxy中几种健康检查的使用
Haproxy中的Log的相关配置详解
在官方的文档中:http://cbonte.github.io/haproxy-dconv/1.7/configuration.html#log
定义Log的使用格式:
log <address> [len <length>] [format <format>] <facility> [max level [min level]]
#支持global、defaults、frontend、backend、listen
继续阅读
Haproxy中的log的设置原理解析
在理解Haproxy的Log设置原理之前,先来了解下Linux中的系统日志服务。系统日志服务和其他服务一样(如web服务nginx、httpd),也有启动、停止、配置等,运行原理这里不详细介绍了。
Haproxy的安装与启动
haproxy的官方地址:http://www.haproxy.org
HAproxy的官方学习文档:http://cbonte.github.io/haproxy-dconv/1.7/intro.html
什么时候需要自己搭建缓存服务
都说“程序等于数据结构加算法”,在软件的运行时刻,其实是数据加进程,进程离数据越“近”,越能得到高速的读写性能。
软件服务内部的多线程模型
回顾之前说过的,服务和服务之间的调用,可以分为同步调用(发起方等待结果)和异步调用(发起方不等待结果),同步调用的好处是写代码简单,坏处是有可能阻塞线程,造成线程资源浪费。我这里说“有可能”,是因为可以使用支持io异步的编程语言,来避免线程阻塞。
Lumen中需要注意的知识点
Lumen的安装与运行
PHP中使用composer自动加载
关于php自动加载的由来,这篇文章说的很详细。
参考文档:https://segmentfault.com/q/1010000002426493
LuaJit支持的库方法
LuaJit的安装
openResty的安装、启动、停止与重启
日志分析常用命令
一些较为入门级的操作,这里不做介绍,例如cp、mv、rm、mkdir、touch、ls、tar等操作.
1、查看文件的内容cat
cat命令是一个显示文本文件内容的便捷工具,如果一个日志的文件较小,可以直接使用cat命令将其内容打印出来,进行查看。如果一个日志的文件较大,请不要这样操作,打开一个过大的文件,可能会占用过多的系统资源,从而影响系统对外的服务。
大型分布式网络架构
一个大型、稳健、成熟的分布式系统的背后,往往会涉及众多的支撑系统,我们将这些支撑系统称为分布式系统的基础设施,包括:分布式协作及配置管理系统zookeeper,分布式缓存系统,持久化存储,分布式消息系统,搜索引擎,CDN系统,负载均衡系统,运维自动化系统,实时计算习系统,离线计算系统,分布式文件系统,日志搜集系统,监控系统,数据仓库等.
Nginx 配置之性能篇
本文提到的一些 Nginx 配置,需要较高版本 Linux 内核才支持。在实际生产环境中,升级服务器内核并不是一件容易的事,但为了获得最好的性能,有些升级还是必须的。很多公司服务器运维和项目开发并不在一个团队,一方追求稳定不出事故,另一方希望提升性能,本来就是矛盾的。好在我们折腾自己 VPS 时,可以无视这些限制。
线程与进程上下文切换的区别
线程上下文切换和进程上下文切换一个最主要的区别是线程的切换虚拟内存空间依然是相同的,但是进程切换是不同的。这两种上下文切换的处理都是通过操作系统内核来完成的。内核的这种切换过程伴随的最显著的性能损耗是将寄存器中的内容切换出。