中间件知识点
文章平均质量分 70
nginx、Tomcat、keepalived、haproxy、redis等
陆墨宁
希望早日过上随遇而安的生活
展开
-
nginx网站服务
nginx网站服务:nginx是一款高性能而且轻量级的web服务软件提供静态页面服务。就是一个纯文本格式的文件,一般都是以.html或.htm格式为结尾的文件特点:稳定性一般(nginx的bug很多,更新迭代很快)httpd 俗称阿帕奇 在国内用的比较少,国外主要是用阿帕奇nginx是开源的(免费)阿里就是基于nginx做的二次开发:tengine。原创 2023-11-14 15:08:47 · 220 阅读 · 0 评论 -
web基础和http协议
手机通话: 15588877766 陆墨宁的电话 拨打电话...尝试建立连接....陆墨宁接听我的电话......建立连接........通信(双方之间进行信息的交流).........断开连接(断开的不是连接,而是双方之间不再用数据传输),四次挥手之后,并不是断开连接,而是双方之间进入新的tcp连接状态 (time_wait)正常默认时间在60-120秒。https用数字证书来验证服务端的身份,客户端在于服务端建立连接时,会收到服务端的数字证书,确认服务端的真实性和合法性。确保客户端连接到正确的服务器。原创 2023-11-13 08:53:37 · 128 阅读 · 0 评论 -
LVS负载均衡群集
调度器仅仅是访问请求的入口,响应数据不经过调度器,与TUN模式类似,但是节点服务器和调度器在同一物理网络中,不需要建立专用的IP隧道,减少成本的同时也保证数据不受额外影响。群集所提供的应用服务、由服务器池承担,其中每个节点具有独立的RIP地址(真实IP),只处理调度器分发过来的客户机请求。高负载主要依赖于主节点的分流算法,将来自客户机的请求按照算法分担给多个服务器节点,以此缓解整个系统的负载。提高系统的响应能力、尽可能处理更多的访问请求、以减少延迟为目标,获得高并发、高负载(LB)的整体性能。原创 2023-12-19 08:59:22 · 392 阅读 · 0 评论 -
Zookeeper集群 + Kafka集群
Kafka 是最初由 Linkedin 公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于 Zookeeper 协调的分布式消息中间件系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景,比如基于 hadoop 的批处理系统、低延迟的实时系统、Spark/Flink 流式处理引擎,nginx 访问日志,消息服务等等,用 scala 语言编写,此时服务器1票数0票,服务器2票数2票,没有半数以上结果,选举无法完成,服务器1,2状态保持LOOKING。原创 2024-01-10 09:07:48 · 1346 阅读 · 0 评论 -
DR模式 LVS负载均衡群集
修改源 MAC 地址为 Director Server 的 MAC地址,修改目标 MAC 地址为 Real Server 的 MAC 地址,源 IP 地址与目标 IP 地址没有改变,然后将数据包发送给 Real Server。真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。相同权值的RS得到相同数目的连接数。原创 2023-12-19 09:05:38 · 331 阅读 · 0 评论 -
zabbix
●zabbix server:zabbix 服务端守护进程,其中 zabbix_agent、zabbix_get、zabbix_sender、zabbix_proxy 的数据最终都提交给 zabbix server;zabbix 监控部署在系统中,包含常见的五个程序: zabbix_server、zabbix_agent、zabbix_proxy、zabbix_get、zabbix_sender 等。●zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。原创 2024-01-10 09:08:44 · 358 阅读 · 0 评论 -
nginx的重定向
1、精确匹配(location =)>正则匹配(location ^~)>(location ~~*)>带路径的通用匹配location /test >location /rewrite的语法: rewrite <正则表达式> 表示跳转后的内容> flag(标记位)3.break:本条规则匹配完成之后即停止,不在匹配其他跳转规则,URI的地址也不会发送变化。4.last:本条规则匹配完之后,继续向下匹配新的location的uri的规则。rewrite的就是跳转到新的或者是更改获取指定资源的路径。原创 2023-11-27 10:11:50 · 206 阅读 · 0 评论 -
Redis集群高可用
例如,如果单机内存太大,bgsave和bgrewriteaof的fork操作可能导致主进程阻塞,主从环境下主机切换时可能导致从节点长时间无法提供服务,全量复制阶段主节点的复制缓冲区可能溢出。总体而言,Redis集群通过分片和多节点的方式实现了高性能、高可用性的分布式存储系统,同时具备自动故障转移和动态扩展的能力。如果一个主节点不可用,集群会通过投票机制选举新的主节点,并进行故障转移,以保持数据的可用性。自动重新平衡: 当节点的数量发生变化时,Redis集群能够自动重新平衡哈希槽的分配,以适应新的节点配置。原创 2023-12-26 09:03:32 · 392 阅读 · 0 评论 -
nginx的反向代理和负载均衡
4.ip_hash算法:根据客户端的ip地址计算出一个hash值,然后将请求发送到后端服务器,同一个客户端的请求会被分配到上一次转发的服务器。5.URL_HASH,根据客户端请求的URL计算一个hash值,然后将请求发送到后端服务器,如果每一次请求的URL地址相同,请求都会被分配到同一个服务器。代理:客户端通过一个指定的服务器,访问其他服务器,请求和响应都由指定服务器来为客户端进行处理,这个指定的服务器就是代理服务器。3.安全保护,请求的是代理,响应的也是代理,后台的真实服务器隐藏了,保证了架构的安全。原创 2023-11-27 10:17:32 · 1086 阅读 · 0 评论 -
elk日志分析系统
集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用 grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署 Logstash。原创 2023-12-26 09:09:34 · 464 阅读 · 0 评论 -
Haproxy搭建WEB群集
●LVS因为工作在ISO模型的第四层,其状态监测功能单一,而HAProxy在状态监测方面功能更丰富、强大,可支持端口、URL、脚本等多种状态检测方式;●其独特的弹性二叉树数据结构,使数据结构的复杂性上升到了0(1),即数据的查寻速度不会随着数据条目的增加而速度有所下降;●基于源的粘性,类似nginx的ip_hash功能,把来自同一客户端的请求在一定时间内始终调度到上游的同一服务器;●详细的健康状态检测,web接口中有关于对上游服务器的健康检测状态,并提供了一定的管理功能;原创 2023-12-19 09:33:11 · 365 阅读 · 0 评论 -
LVS+keepalived群集
在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。●core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。原创 2023-12-19 09:30:46 · 346 阅读 · 0 评论 -
LVS虚拟服务器
2、LVS现在已成为Linux内核的一部分,默认编译为ip_ vs模块,必要时能够自动调用。● 将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器) ,均等地对待每一台服务器 ,而不管服务器实际的连接数和系统负载。-s 指定负载调度算法 (轮询:rr、加权轮询: wrr、最少连接: lc、加权最少连接: wlc )● 根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。● 根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多。原创 2023-12-19 09:03:24 · 620 阅读 · 0 评论 -
Tomcat部署及优化
on:表示允许压缩(文本将被压缩)、force:表示所有情况下都进行压缩,默认值为 off,压缩数据后可以有效的减少页面的大小,一般可以减小 1/3 左右,节省带宽。enableLookups:是否反查域名,以返回远程主机的主机名,取值为:true 或 false,如果设置为 false,则直接返回 IP 地址,为了提高处理能力,应设置为 false。acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可传入连接请求的最大队列长度,超过这个数的请求将不予处理,默认为 100 个。原创 2023-12-19 08:54:16 · 378 阅读 · 0 评论 -
redis持久化、性能管理
持久化 RDB持久化 RDB(Redis Database Backup)持久化是Redis用于将内存中的数据定期保存到硬盘上的一种持久化方式。RDB持久化流程: 触发条件: RDB持久化可以通过配置文件中的定时触发(例如每隔一段时间执行一次)或者根据写操作的数量来触发。由于是追加操作,AOF持久化方式通常比RDB更耗时,但可以提供更好的数据安全性,因为它可以记录每一次写操作。这样可以均衡负载,提高并发处理能力。集群模式通过节点间的协调和通信,实现了数据的自动迁移和负载均衡,增强了系统的可扩展性和容错性。原创 2023-12-26 09:02:20 · 357 阅读 · 0 评论 -
I/O模型及相似概念
并发是指程序中多个独立的执行单元同时执行的能力,而并行是指同时执行多个任务的能力。这些概念与 I/O 模型相关,因为不同的 I/O 模型可以影响程序的并发性和性能。在网络编程中,通道可以是网络连接,而在 Java NIO(New I/O)中,通道是一种用于进行 I/O 操作的抽象。GraphQL Subscriptions 是 GraphQL 的一部分,支持在客户端和服务器之间建立实时、双向的数据传输通道,用于订阅和推送数据变更。在 I/O 中,流通常用于描述数据的传输,如输入流和输出流。原创 2023-12-26 09:00:22 · 412 阅读 · 0 评论 -
Redis配置与优化
总体来说,Redis之所以如此快速,是因为它在设计和实现上注重了简单、高效、专注的原则,并充分利用了内存、单线程、异步I/O等特性。非阻塞的I/O操作: Redis使用非阻塞的I/O操作,通过使用异步I/O和事件驱动机制,充分利用了操作系统提供的异步特性,降低了I/O操作的开销,提高了并发处理能力。由于内存的高速访问特性,Redis能够提供非常低延迟的数据访问。优化的数据结构: Redis提供了多种灵活的数据结构,如字符串、哈希表、列表等,这些数据结构的实现经过了优化,能够在常见的操作上达到极高的性能。原创 2023-12-26 08:58:26 · 388 阅读 · 0 评论 -
Tomcat
根据请求的内容依照Engine、Host、Context、Wrapper的顺序进行依次请求,最后由Wrapper中的Servlet执行对应的业务。连接器 Connector:负责对外接收和响应请求,通过监听端口接收请求,将请求传递给容器进行业务处理,最后将处理后的结果再响应回去。在实际的作用上 1.Web容器就是接收客户端的请求,将请求分发到指定位置后,等待结果返回,最后将结果响应给客户端 2.展示动态页面。Context:一个Web应用,包含了多个Servlet封装器,注意是Servlet。原创 2023-12-19 08:52:55 · 540 阅读 · 0 评论 -
GFS分布式文件系统
GlusterFS的设计理念是通过横向扩展和分布式存储来满足现代数据存储和处理的需求,使得用户能够构建可靠、高性能的存储基础设施。术语 砖(Brick): 指可信主机池中由主机提供的用于物理存储的专用分区,是GlusterFS中的基本存储单元,同时也是可信存储池中服务器上对外提供的存储目录。分布式存储中,将所有节点的命名空间整合为统一命名空间,将整个系统的所有节点的存储容量组成一个大的虚拟存储池,供前端主机访问这些节点完成数据读写操作。此外,它支持自动的数据自愈机制,即修复由于节点故障导致的数据损坏。原创 2023-12-26 09:07:07 · 365 阅读 · 0 评论 -
rsync远程同步配置
Rsync 是 Linux 系统下的数据镜像备份工具,使用快速增量备份工具 Remote Sync 可以远程同步, 可以在不同主机之间进行同步,可实现全量备份与增量备份,保持链接和权限,且采用优化的同步算法, 传输前执行压缩,因此非常适合用于架构集中式备份或异地备份等应用。在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。描述:增量备份也是备份自上一次备份以来发生变化的数据,但与差量备份不同,增量备份会清除存档属性。原创 2023-12-26 09:04:22 · 392 阅读 · 0 评论 -
nginx的优化
time_wait在连接正常关闭之后,经历一段时间之后,会自动关闭,自动消失。syn_recv:SYN接受,表示服务器已经收到来自客户端的SYN请求(连接请求),正在等待确认。syn_sent:SYN发送 表示应用程序已经向服务器发送了SYN请求,等待服务器确认。编译文件:vim /usr/local/nginx/conf/nginx.conf。进入core目录:cd /opt/nginx-1.22.0/src/core/在time_wait状态下,tcp处于连接等待,等待一定的时间。原创 2023-11-27 10:09:29 · 280 阅读 · 0 评论