当前位置: 首页 > 科技观察

公司新招的Java技术高手设计了一个架构很牛

时间:2023-03-13 08:09:59 科技观察

今天给大家分享一个话题,就是多房间多活架构。很多兄弟可能没有听说过这个话题,甚至听说过,但是因为我一直在小公司工作,没有做过,也没有经历过。不过没关系,今天就给大家讲解一下这个大厂只会玩的多机房多机房架构师。你也可以理解它,只是扩展你的知识。什么是服务器?什么是架子?什么是电脑房?说到这个多机房多活架构,首先要给大家说说什么叫机房。这么说吧,平时你在本地打开intellijidea,在里面打开项目代码,然后用springboot之类的框架写一个Heap的代码,controller+service+dao这个画面大家是不是很熟悉?然后,写完代码,还得把代码打包,上传到线上服务器,然后在线上服务器用jar包重启系统。您可以手动执行此过程,也可以借助jenkins工具自动部署管道。但是大致的流程是这样的:现在我问你一个问题,你所谓的在线服务器在哪里?困惑了吗?不知道?这意味着你仍然有问题。这个在线服务器实际上是一个有形的实体,就像你家里的衣橱一样。它是看得见摸得着的。首先,如果你的公司要提供服务器给你使用,就必须购买或租用机房的服务器。这里是计算机房的概念。这是什么机房?粗略地说,它看起来类似于您居住的城市郊区建造的厂房。这是一所房子!然后,在这个机房里,还有一些房间。在房间里,有一排排的架子,或者叫柜子。架子是架子,柜子是柜子。每台服务器都放在机架上,服务器是一台一台的大黑盒子。所以此时,画面如下:那么,这个机架上的服务器只是一个黑盒子。它已连接到Internet。我们可以通过网络连接到它。如何连接?它有一个IP地址。你可以通过ssh等连接命令连接到这个服务器,也可以通过代码中的网络连接到这个服务器,所以这就是你连接到服务器的过程。什么是同城容灾机房?然后呢?问题来了。了解了以上概念,你就知道你的系统部署在可视机房机架上的服务器中。如果整个机房突然断电怎么办?它会导致你的系统直接消失吗?对,就是这样,所以我们可以在一个城市的另一个机房部署你的一套系统,此时你的系统已经部署了两个机房。如下图所示:现在的问题是,两个机房如何协同工作?这是给你的一个小秘密。部署在一个机房的系统会连接到自己的一个数据库,而这个数据库也在那个机房的另一台服务器上。它是部署在互联网上的,然后我们一般访问部署在这个机房的系统。不过另外一个机房也有两台服务器,一台部署系统,一台部署数据库。此时,我们可以将生产机房数据库的数据实时同步到同城灾备机房的数据库中。生产机房断电后,我们可以直接访问同城灾备机房的系统。数据在那个机房里,都是mysql。如下图所示:两地三中心是什么结构?但是这个时候,问题又来了。如果这个城市发生了一些自然灾害,比如洪水、地震,两个机房都完工了,怎么办?这时候就会出现两中心、三中心的结构,即一个城市两个机房,另一个城市一个异地灾备机房,这样同城灾备机房的数据可实时同步到异地容灾机房。如果一个城市发生自然灾害,不要害怕。其他城市还有机房。如下图所示:什么是多房间多活架构?但是,这种方法存在一个问题。通常使用一个机房的资源,另外两个机房同步数据用于容灾。当发生停电或自然灾害时,将使用容灾机房。我应该怎么办?所以后来我们开始实现多活的架构,就是说上面三个机房都可以访问,哪个机房写了数据,就会把数据同步到另外两个机房。如下图所示:那么到这里,我们就给大家讲解了我们的多房间多活结构。这个一般是大厂做的,但是中小型公司一般不会这么玩,但是你可以把它当作一个知识点来学习,别人说多机房的时候不知道什么意思多项活动。