java+Spring+myBatis的开发模式分析及发展流程!
创始人
2025-09-11 06:08:22
0

一开始,架构大多是和业务相关的。 如果只是一个简单的图书管理系统、选课系统或者一些简单的财务系统,就不需要分布式。 只有小公司和高并发的业务才需要分布式的帮助。 事实上,框架本身必须与业务模型紧密配合才能发挥作用。

长期以来,java 是最流行的编程语言。 我想,一方面是因为java可以用来开发网站的前端程序,另一方面java可以用来开发android等客户端程序。 其实很多人会说java天生就有网络属性,有很好的分布式基因。 这应该是一个认知错误。 所谓分布式是基于tcp/ip网络的。 其发展的原因是出于稳定性、性能和业务扩展的需要。 单一服务器远远不能满足业务需求。 对此,其他语言也可以做到这一点,比如python、go、erlang等。 然而,对于企业来说,一个不可忽视的现实是,市场上合格的java工程师很多,而能够独立使用的python、go、erlang项目却很少。 后期其他编程语言会逐渐转移到java。 不是技术不允许,而是人才不允许。 脚本语言太自由,陷阱太多。 如果你不注意,你可能会埋下地雷。 然而Java语言规范和第三方库存在很多错误。 虽然有错误,但很快就会暴露出来。 这也是Java的一个很好的优点。

说到网站前端开发,很多人都会选择java+Spring+myBatis的开发模式。 这是可以理解的。 只是随着业务的快速发展,网站整体架构也在快速迭代。 大家不妨利用这段时间简单梳理一下开发流程。

1、单服务器模式

所谓单服务器是指将http服务器软件、静态文件(主要是图片,还有html、css、js文件)、mysql软件安装在一台服务器上。 许多大学的课程都是这样设计的。

2.多服务器模式

当文件越来越多时,单台服务器已经远远无法支撑业务发展。 此时,http服务器软件、文件服务器和数据库软件将安装在不同的服务器上,并使用tcp/ip相互连接。 企业内部的宽带速度远高于外部购买的宽带。

3.添加缓存服务器

随着业务的发展,用户对数据速率的要求越来越高。 如果每次访问数据库都直接访问数据库,效率可能会很低。 在实际场景中,你会发现读取数据的请求比更改数据的请求多,所以此时添加一些nosql缓存服务器可以有效提高用户体验。

4.反向代理服务器

单个http服务器的性能总是有限的,因此在实际业务场景中通常使用nginx作为代理服务器。 通过代理软件,用户的数据请求将被均匀分发到不同的http服务器。 其实此时nginx已经成为了系统的一个难点,所以为了保护nginx软件架构师培训视频,通常会安装多台nginx服务器,并使用keepalive软件来保证nginx宕机时的手动切换。

5.CDN服务器

如果你安装过不同联通运营商的宽带,就会知道,一个联通运营商旗下的PC如果访问另一个联通运营商的服务器,速度是非常慢的。 所以更务实的做法就是把常用的文件,尤其是静态文件,安装在离用户最近的运营商服务器上。 这就是CDN服务器设计的初衷。

6.分布式文件服务器

如果网站后台文件过多,这样的单一服务器远远不能满足用户的要求。 这时,分布式文件服务器应运而生。

7.分布式数据库服务器

同样,当数据积累到一定程度时,单台服务器也远远不能满足要求。 而且,单一服务器是比较危险的。 一旦服务器宕机,后果显然是难以想象的。 这时候通常有两种解决方案,一种是分库分表,官方的数据库分布在不同的服务器上,或者同一个表的内容分布在不同的服务器上,插件可以帮助我们做到这一点,如MySqlProxy; 另一种方式是真正的分布式数据,比如 TiDB。 这时用户不需要关心数据是如何分布的,因为底层软件可以灵活地将数据存储在不同的服务器中。 每种方法都有其相似点和不同点,您可以灵活运用。

8. 微服务部署

之前的代码部署是安装在http服务器中的,一旦一个小功能出现故障,就可能导致整个http服务器出现故障。 因此,针对这些情况,现在提出了微服务器模型。 其基本思想与rpc类似。 http服务器收到nginx的用户请求后,并不直接运行,而是通过rpc向微服务器发出请求,而是等待微服务的结果。 虽然微服务中的服务都是小企业。 单个微服务不一定是一台服务器,也可能是基于zookeeper的多台服务器。 由于数据量的大或小,也不一定。

9.消息服务器

不同服务器之间需要进行数据通信。 为了性能,服务器之间的通信往往是异步的,因此消息服务器充当缓冲区和信息处理功能。 消息服务通常会定期处理或仅在满足某些业务条件时处理。 微服务之间的通信需要借助消息服务器。

10.监控服务器

服务器运行过程中可能会出现各种情况。 服务器的CPU是多少,RAM还剩多少,存储怎么样,使用了多少带宽,当前运行什么业务。 这种信息需要通过监控服务器来完成。

11.运维服务器

当产品开发完成后,此时通常会进行小范围部署,即小规模发布。 没有大问题之后,就会进行大规模的推送。 这是一种常见的技术。 运维的朋友不仅需要线上产品,还需要线下产品、灰度发布、24小时检查服务器的运行情况。 当业务扩展时,需要及时部署和添加新的服务器。 当出现问题时,他们需要将当前服务器上的业务转移到其他机器上,而用户通常感觉不到这些变化。

12. 爬取和搜索服务器

像一些短视频公司,除了生产自己的内容外,另一个非常重要的工作就是抓取全网。 内容获取后,会与数据库固化。 这时候就需要搜索服务器的帮助了。 关于搜索,现在有一些开源软件可用,例如solr。

13. 推荐服务器

除了用户想要搜索的内容之外,系统通常还会推荐一些相关的内容。 很多朋友都会使用今日头条或者抖音,那么上面的推荐服务器就会承担起非常重要的一部分工作。 推荐服务器可以做得非常简单,也可以做得非常复杂。 这个时候就看它是否是公司的主营业务了。 事实上,不仅像今日头条这样的公司在乎推荐,一些电商网站也很在意推荐服务,因为这会在很大程度上减少公司的销售额,提高公司的效率。

14.备用服务器

服务器并不总是稳定工作,所以这个时候就需要规划一些备用服务器。

里面讲了这么多,你会发现现在的企业级网站的前端自然已经很复杂了。 大量的业务量和用户的需求导致整个软件架构仍然在发生变化。 一个好的软件架构不仅可以满足当前的业务需求,还可以为未来的扩展奠定基础。 至于jvm、jdk、mysql、mysqlproxy、tomcat、Spring、TiDB、nginx、keepalived、zookeeper、solr、fastDFS、docker、hadoop、vmware等软件,那些都是为了框架,而真正的时候用过,学习一下就OK了。 其实使用的时候,可以用java,也可以不用java。 这个可以根据自己的情况灵活安排。

另外,关于jvm&jdk可以多说一句,它只是一种编程语言,不要神化或者小看它。 和很多其他编程语言一样,比如lua,也有lua&luac,其中lua负责运行虚拟机、垃圾回收等,luac负责编译整个编程语言。 处理好java&javac,如果能多看看jdk源码,用javap调试反汇编代码就更好了,对个人发展有很大好处。

用java来学习分布式,一方面是使用最广泛的项目,在这方面经验最多,另一方面也是因为java语言本身使用最广泛,工具最多。 大家可以根据自己的情况逐步学习。 从软件架构的角度来看,java和发行版的话题可以给你带来很多积极有益的思考。

当谈到架构或软件框架时,这与操作系统无关,与编译器和编程语言关系不大。 只是有时候,为了部署的方便,选择了平台和语言。 分布式架构中存在成功、失败、超时三种情况软件架构师培训视频,而超时是最大的问题。 所以,如何处理这个超时问题才是重中之重。 其实很多同学都听说过上限理论,即高可用、性能、一致性,通常两者只能选其一。 现实是高可用性>性能>一致性。 一个简单的反例就是,很多时候我们在前台提交数据,后台需要很长时间才能刷新。

其实分布式调试也是一个问题。 如果程序在运行过程中遇到网络故障问题。 这可能是客户端的问题,也可能是调度服务器的问题、Web服务器的问题、消息服务器的问题、微服务的问题、缓存的问题、数据库的问题等等。配送仍能满足效率和流量、存储的要求,同时也会带来其他需要解决的问题。

据悉,大家应该都知道,高并发、高性能也是需要客户端的配合的。 至少不能让所有的客户端都在一个ip、一个端口上序列化,这样不是不合适吗? 事实上,客户端优化也是一项非常重要的工作。

相关内容

热门资讯

华... 现在大多数人家里都换成了华为电视。 刚买的朋友可能会问,华为电视如何安装电视应用? 接下来美家市场给...
接... 许多人都接到过推销金融服务、保险或邀请您参加各种活动的骚扰电话。 要说买东西也算是一种营销手段,仅此...
4... PDF和Word格式是我们日常工作中最常用的文档格式,因此文件之间的格式转换也是必不可少的。 今天给...
更... 船长来了。平时我们用手机看视频的时候,文件加载或者下载速度很慢,我们肯定会抱怨网速为什么那么慢,但是...
T... [下载链接]:软件说明天正软件是在AutoCAD图形平台上成功开发的一系列建筑、暖通、电气等专业软件...
天... 天正T20 V9.0安装包下载【名称】:天正T20V9.0【安装环境】:Win11/Win10【运行...
激... 随着人们对产品安全越来越重视,产品标识也越来越受到消费者的重视。 激光打标机以其无耗材、无污染、标记...
银宝街APP亏损资金能追回,白...   银宝街APP的白银投资真实可靠吗?作为普通投资者该如何维护自己的合法权益?银宝街交易平台这个白银...
B... #01大地图简介成都大图数据处理有限公司(简称“大图”)成立于2014年,是国内一家基础软件研发公司...
怎... 随着手机用户数量的不断增加,手机网站不再局限于WAP。 它们的表现形式基本上与互联网计算机站点接近,...
搭... 如果你想知道自己的网速能跑多快,就需要使用网速测量软件。 但不同测速软件的测试结果可能会有所不同。 ...
2... 然而,市场上有如此多的选择,因此很难决定购买哪款平板电脑。 下面,我们就为您全面介绍2020年最佳平...
推... 在日常工作中,我们经常会遇到将PDF转换为Word文档的情况。 如果需要转换的文件较多,又不想花钱的...
神... 说起Office软件,我想最常用的就是微软Office和国产的WPS Office。 这两款办公软件...
个... 随着社交网络的发展,我们越来越需要一个工具来监督我们的工作、记录我们的生活和学习。 但在豆瓣、简书、...
俄... 地球上有三个雷区是绝对不能碰的:俄罗斯禁酒、中国贩毒、美国逃税。 在美国,你也许可以智取CIA、戏弄...
3... 模式容易复制,竞争激烈,所以品牌影响力和用户活跃度更重要。 我们需要更好的客户体验、更具竞争力的价格...
O... [下载链接]:软件说明Origin 是 Windows 操作系统中使用的数据和科学图形数值分析软件。...
C... 1. 清理我的电脑作为一款清理电脑垃圾的软件,CleanMyPC并不像一些流氓软件。 电脑运行一段时...
W... Word转PDF最好的免费软件有哪些?这些Word转PDF软件值得收藏在日常生活中,大家经常使用Wo...