Java程序员也应该知道的系统知识系列之全局体系

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
应用型负载均衡 ALB,每月750个小时 15LCU
简介:

作者:林昊

overview-624x312

 

Java程序部署到服务器上后,要被外部用户访问到,还需要一系列的东西组成,这些东西也是需要了解的。

 

外部用户要访问,通常来说都会给个域名,有域名就意味着需要DNS,一般来说域名注册商都会提供域名解析服务,当然,也有外部的一些域名解析提供商,例如著名的dnspod。

 

域名需要解析为一个公网的ip,互联网公司会借助这个机会来根据用户访问的ip来解析为一个更靠近用户的公网ip(这个通常需要采用商用的GSLB设备来实现),从而提升用户的访问速度,也就是很多人都听说过的CDN,不过这主要用于静态资源,例如图片、js、css文件等,这一层的技术难点是如何选择一个对用户而言访问速度最快的节点(例如最近距离的一个挂了,最近的节点负载高等),在中国的网络环境下就更复杂了。

对于动态类的资源的访问,通常就会访问到某个或某几个机房,这些通常就是在DNS上绑定多个公网ip,而访问公网ip要能最后落到实际的服务器上,通常会需要经过LB(load balance)设备,这个可以是硬件的,也可以是软件的,软件的目前来说实现和维护的成本还是比较高的,硬件的话则是本身价格比较昂贵,所以可以根据公司发展的阶段来选择,LB设备上的每个VIP下可以挂载一堆的服务器,由LB设备来负责选址以及failover的处理。

 

经过上面的过程,用户的请求才能落到实际的服务器上,而对于Java应用来说,各种应用服务器例如jboss、tomcat等直接暴露对外的话,支撑连接的能力会不够(主要原因是这些应用服务器之前都是bio的模式),另外也是这些应用服务器在实现的时候对于诸如慢连接等的防攻击能力很弱,所以通常来说在应用服务器前面还会搭一层nginx/apache等,所以通常这个时候会先落到nginx/apache上,然后由nginx/apache再转发到相应的服务器。

 

经过上面的阶段,用户的请求才终于进入到了Java程序中处理了。

 

从上面整个过程可以看到,要确定Java应用能够支撑的量,需要全盘了解,DNS部分的解析能力、LB设备的支撑能力、CDN的流量、Nginx/Apache的支撑能力,同样,稳定性也需要全盘了解。

 

整个Java程序员也应该知道的系统知识系列到此就结束了,讲的并不深入,感兴趣的同学可以根据涉及的点进一步的去了解更深入的内容,更多的是希望大家能通过这个系列的文章来知道对于一个生产环境中运行的Java程序,要做好稳定性保障、性能优化等,仅仅是知道Java代码本身是不够的。

 

相关文章
|
15天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的服装商城管理系统
基于Java+Springboot+Vue开发的服装商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的服装商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
45 2
基于Java+Springboot+Vue开发的服装商城管理系统
|
1天前
|
Java Apache Maven
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
14 6
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
|
13天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
基于Java+Springboot+Vue开发的大学竞赛报名管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的大学竞赛报名管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
30 3
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
|
14天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的蛋糕商城管理系统
基于Java+Springboot+Vue开发的蛋糕商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的蛋糕商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
35 3
基于Java+Springboot+Vue开发的蛋糕商城管理系统
|
14天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的美容预约管理系统
基于Java+Springboot+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的美容预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
24 3
基于Java+Springboot+Vue开发的美容预约管理系统
|
15天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的房产销售管理系统
基于Java+Springboot+Vue开发的房产销售管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的房产销售管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
29 3
基于Java+Springboot+Vue开发的房产销售管理系统
|
16天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的反诈视频宣传系统
基于Java+Springboot+Vue开发的反诈视频宣传系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的反诈视频宣传管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
45 4
基于Java+Springboot+Vue开发的反诈视频宣传系统
|
17天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的健身房管理系统
基于Java+Springboot+Vue开发的健身房管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的健身房管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
47 5
基于Java+Springboot+Vue开发的健身房管理系统
|
16天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的医院门诊预约挂号系统
基于Java+Springboot+Vue开发的医院门诊预约挂号系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的门诊预约挂号管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
41 2
基于Java+Springboot+Vue开发的医院门诊预约挂号系统
|
17天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的家具管理系统
基于Java+Springboot+Vue开发的家具管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的家具管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
33 2
基于Java+Springboot+Vue开发的家具管理系统