微服务系统梳理维护
微服务系统需要定期梳理,以跟踪系统的变更和分析可能存在的瓶颈。
梳理系统服务属于系统维护与治理职责。
以 Spring Boot 2.6.3 版本,spring-boot-starter-web 嵌入的 9.0.56 版本 tomcat-embed-core 为例,分析 Tomcat 中的 NIO 的配置与优化。
注意:Tomcat 8.5 移除了 BIO,默认启用 NIO,Tomcat 的架构和核心组件已与 Tomcat 7.x 版本已略有不同,与网上很多基于 Tomcat 7.x 版本分析的文章是不符的,需要自己走读源码。
衡量系统性能的常用指标:QPS,TPS,RT,吞吐量,UV,PV,并发数,用户数,在线用户数,日活跃用户数,同时在线用户量。
请设想下一个大型企业级系统需要如何设计? 在开始主要软件开发之前,我们必须选择一个合适的架构,以提供所需的功能和质量属性。 因此,在将它们应用到的设计之前,我们应该了解不同的的架构。
一个进程最多可以创建多少线程,或 一台 Java 服务器最多能创建多少线程?
此问题涉及的知识点非常广且深:操作系统的内存管理,内核参数,进程,线程,栈空间等。
这是一个在面试时经常被问题的问题,实际隐含的是对服务器的优化和创建过多连接时的问题诊断。
生产环境部署应用服务的服务器操作系统基本上是 Linux 服务器,此问题所涉及到更深层的是 Linux 内核 TCP/IP 和 Socket 参数优化。
RPC(Remote Procedure Call),即远程过程调用。
RPC 的核心目的是实现进程间通信,在分布式环境中广泛应用。
RPC 框架面向开发者屏蔽了网络底层逻辑,使远程调用可以像本地调用一样方便。
Java消息服务(Java Message Service,JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。
Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。
重要参考资料:W.Richard Stevens 的 UNIX Network Programming Volume 1:The Sockets Networking API,Third Edition(UNIX网络编程-卷1:套接字联网API 第3版),6.2 Chapter:I/O Models。
基于 Unix / Linux 的网络编程的 5 种 I/O 模型。
在项目管理中,需求评审属于项目确认范围的内容。目的是判断工作和可交付成果是否符合需求和产品验收标准。
在软件项目中,需求评审非常重要。项目计划,软件设计,编码,测试等需要以需求评审为基准。