未接触过的技术

这是一篇正在学习中的文章,根据我的学习来不断更新

事情开始于一个问题,close wait

最近我们的服务器出现了大量的 close wait,作为一个从未接触过java的新员工学习这个问题的路径

由问题已知 close wait 是由于 tcp连接时一方发送了fine 但是另一方没发送(或者说超时没有自动关闭socket)

这个问题通常发生在会超时的请求上,那我本能的现在代码里找超时写在什么地方

  1. HttpClient发送Http请求(HttpClient 发送请求的写法
  2. @postmapping 等 Spring 框架,可以在 server 配置中写 timeout
    @postmapping 等如果不是自己在函数中创建了 socket 也不需要自己close
    Tomcat 会统一管理

问题一:Tomcat 是啥

Dubbo、Zookeeper、Servlet、Tomcat 之间的关系

bash 复制代码
       +------------+ HTTP/TCP  +-------------+
       | Web 客户端 | --------->  | 负载均衡器  |
       +------------+           +-------------+
                               /             \
                              /               \
                             V                 V
          +----------------+         +--------------+
          | Tomcat Server 1 |        | Tomcat Server 2 |
          | - Servlet API  |         | - Servlet API  |
          | - Dubbo 消费者  |         | - Dubbo 消费者  |
          +----------------+         +--------------+
                              \                /
                                \             /
                                 V           V
	                           +---------------+
	                           | Zookeeper     |
	                           | - 注册中心   |
	                           | - 存储提供者信息 |
	                           +---------------+
	                                 ^     ^
	                                 |     |
	                              (注册)  (发现)
	                                 |     |
	                           +---------+     +---------+
	                        | Dubbo 提供者1  | | Dubbo 提供者N  |
	                        +-----------------+ +-----------------+

Web 客户端通过HTTP或TCP请求访问服务。

负载均衡器根据策略将请求分发到不同的Tomcat服务器上。

Tomcat Server托管了基于Servlet API构建的Web应用,并在其中包含Dubbo消费者组件来调用远程服务。

Servlet是Java EE规范中的接口,用于处理Web请求和响应,在这里作为Dubbo与Web应用交互的桥梁。

Dubbo消费者在运行于Tomcat容器的Web应用中调用远程服务,它通过Zookeeper获取服务提供者的地址信息。

Dubbo提供者将自己的服务注册到Zookeeper,以便消费者能发现并调用它们的服务。

Zookeeper作为Dubbo框架的服务注册中心,存储和管理所有可用服务提供者的元数据信息。

大佬文章

查看 Tomcat 版本方法:点击跳转

集群是什么?

相关推荐
青衫客3611 小时前
Linux 磁盘挂载全流程实战——从新盘初始化到安全开机自启
linux·运维·服务器
小北方城市网11 小时前
微服务注册中心与配置中心实战(Nacos 版):实现服务治理与配置统一
人工智能·后端·安全·职场和发展·wpf·restful
大江东去浪淘尽千古风流人物11 小时前
【DSP】xiBoxFilter_3x3_U8 dsp VS cmodel
linux·运维·人工智能·算法·vr
草莓熊Lotso12 小时前
Python 入门超详细指南:环境搭建 + 核心优势 + 应用场景(零基础友好)
运维·开发语言·人工智能·python·深度学习·学习·pycharm
爬山算法12 小时前
Hibernate(47)Hibernate的会话范围(Scope)如何控制?
java·后端·hibernate
dog25012 小时前
Linux 6.19 TCP 的两个极限拉扯
linux·运维·tcp/ip
新兴AI民工12 小时前
【Linux内核九】进程管理模块:list_head钩子构造双向列表和一些宏定义
linux·运维·list·linux内核
小周学学学12 小时前
ESXI故障处理-重启后数据存储丢失
linux·运维·服务器
王九思13 小时前
Ansible 自动化运维介绍
运维·自动化·ansible
源码宝13 小时前
云HIS二次开发实施路径指南
后端·源码·二次开发·saas·云his·医院信息系统