基于Docker-Compose 部署前后端分离单体项目(一)

基于Docker-Compose 部署前后端分离单体项目(一),第1张

1单体项目是否需要采用docker进行部署
2如果采用docker部署是否有必要采用docker-compose进行服务编排?

答案是也许有必要,也许没必要,docker的优势很多,但是对于垂直架构的项目优势未必那么明显,总之一句你需要根据自己的项目情况去考虑。笔者之所以会写这篇文章,大概率是基于省事的目的去部署一些小的项目。同时也是提供一种前后端分离的项目的部署方案(但绝对不是最有方案),以及在这种模式下的docker如何去工作才能达到我们的目的。

然而最终的目的是为了偷懒,省事。让前后端分离项目的部署方式变的简单。就也许在这种模式下,你只需要5分钟就可以实现部署,或许吧,不妨把这个当作一个目标。

本文目标:

上图将部署流程分为三部分,本地开发环境,阿里云容器镜像服务,以及linux服务器。下面分成三个部分对上图进行说明,工欲善其事,必先利其器。先进行说明,后面才能对每部分做的工作比较清晰。

本地开发环境分成三个项目

先解释一下图中的相关名词

容器镜像服务,分门别类的存储我们的镜像 。这个是镜像服务的唯一用途,就相当于maven的仓库是一样的。

我们也可以搭建自己的私服仓库,例如开源的harbor等,都非常好用,在企业中用私服会比较多。

首先我们需要在linux服务器上搭建Docker环境,也就是我们在linux上有一个docker。再将我们的镜像运行在docker上。

从上图我们发现在docker上运行这很多容器,mysql,redis,nginx,pitaya-java,pitaya-admin,pitaya-h5

然而我们的容器是需要通信的,例如:大家都知道pitaya-java是一个springboot的项目,他需要访问mysql进行数据存储服务,需要访问redis缓存我们的令牌信息等。

也就是说,我们运行的这些容器之间是要相互能通信的。所以我们在docker上创建了一个内部网络叫做pitaya-network,他在172200这个网段,我们需要我们的容器都加入pitaya-network这个网络,并且分配固定的IP地址,指定固定端口。

为什么需要分配固定IP地址,指定固定端口 因为我们的容器也可能会和服务器一样,会挂掉,如果随机分配的话,创建新的容器,IP地址可能会变,我们容器间不能通信,例如java服务访问不了mysql,这样我们的线上就无法提供客户正常服务了。

本文我们做一个大概的概述,针对上面的结构以下问题是我们急需解决的?

其实针对java项目和vue项目制作镜像方式不同,但是原理一样,原理无非就是基于docker build这个命令制作镜像,但是java的镜像制作和推送可能更加简单,只需要一条命令即可,因为maven提供了制作镜像的插件。这些内容在下一篇文章都会涉及到!

想要表达清楚一键事情是非常不容易的事情,特别是通过文字,既不想废话连篇,又想表达清楚真的很难,因为细节比较多!然而我觉得弄清楚大方向是非常必要的,然后再进行分解,希望能说的明白,我会加油的,如果写的不好也希望大家原谅!

经常使用电脑的人可能都听说过,当电脑出了故障时,Windows会提供一个名为“安全模式”的平台,在这里用户能解决很多问题--不管是硬件(驱动)还是软件的。
初识安全模式
要进入安全模式,只要在启动时不停地按F8,就会出现选项菜单,再用键盘上的上下光标键进行选择即可进入不同的启动模式。选项菜单包括了以下几个:
1安全模式
只使用基本文件和驱动程序。如鼠标(USB串行鼠标除外)、监视器、键盘、硬盘、基本视频、默认系统服务等,但无网络连接。
如果采用安全模式也不能成功启动计算机,则可能需要使用恢复控制台功能来修复系统。
2带网络连接的安全模式
在普通安全模式的基础上增加了网络连接。但有些网络程序可能无法正常运行,如MSN等,还有很多自启动的应用程序不会自动加载,如防火墙、杀毒软件等。所以在这种模式下一定不要忘记手动加载,否则恶意程序等可能会入侵在你修复电脑的过程中。
3带命令行提示符的安全模式
只使用基本的文件和驱动程序来启动,在登录之后,屏幕上显示命令提示符,而非Windows图形界面。
说明:在这种模式下,如果你不小心关闭了命令提示符窗口,屏幕会全黑。可按下组合键Ctrl+Alt+Del,调出“任务管理器”,单击“新任务”,再在d出对话框的“运行”后输入“C:WINDOWSexplorerexe”,可马上启动Windows XP的图形界面,与上述三种安全模式下的界面完全相同。如果输入“c:windowssystem32cmd”也能再次打开命令提示符窗口。事实上,在其它的安全模式甚至正常启动时也可通过这种方法来启动命令提示符窗口。
4启用启动日志
以普通的安全模式启动,同时将由系统加载(或没有加载)的所有驱动程序和服务记录到一个文本文件中。该文件称为 ntbtlogtxt,它位于 %windir% (默认为c:windows)目录中。启动日志对于确定系统启动问题的准确原因很有用。
5启用VGA模式
利用基本VGA驱动程序启动。当安装了使Windows不能正常启动的新视频卡驱动程序时,这种模式十分有用。事实上,不管以哪种形式的安全模式启动,它总是使用基本的视频驱动程序。因此,在这些模式下,屏幕的分辨率为640×480且不能改动。但可重新安装驱动程序。
6最后一次正确的配置
使用Windows上一次关闭时所保存的注册表信息和驱动程序来启动 。最后一次成功启动以来所作的任何更改将丢失。因此一般只在配置不对(主要是软件配置)的情况下,才使用最后一次正确的配置。但是它不能解决由于驱动程序或文件被损坏或丢失所导致的问题。
7目录服务恢复模式
这是针对服务器 *** 作系统的,并只用于恢复域控制器上的SYSVOL目录和Active Directory目录服务。
8调试模式
启动时通过串行电缆将调试信息发送到另一台计算机。
如果正在或已经使用远程安装服务在您的计算机上安装 Windows,则您可以看到与使用远程安装服务还原或恢复系统相关的附加选项。
现实应用
1笔者过去用的是一款旧显示器,又是初学者,初学者最爱干的是什么,换点墙纸,设一下分辨率也觉得很有成就感,没想到误将分辨率和刷新率调得太高,下次启动时屏幕花屏,害得的重新安装了 *** 作系统才算了事。
现在想起来那时也真的傻瓜可爱,只要将其重启到安全模式(前四种模式都行)下,删除显卡驱动程序,再重启电脑即可,重启(正常启动)时,系统会自动扫描显卡并安装驱动程序,屏幕即可恢复正常显示。
还有些问题也可用这种方法来处理,比如Windows XP会自动识别硬件并安装驱动程序,但有时总是老眼昏花,而且在设备管理器下不会显示出错信息。但就是工作不正常,如上不了网(网卡驱动有错)、屏幕显示不对(显卡驱动有错)等,也可在安全模式重新安装驱动程序。
2揪出恶意的自启动程序或服务
如果电脑出现一些莫明其妙的错误,比如上不了网,按常规思路又查不出问题,可启动到带网络连接的安全模式下看看,如果在这里能上,则说明是某些自启动程序或服务影响了网络的正常连接。
可在带网络连接的安全模式下,用带重定向的命令提示符工具TaskList >d:Anquantxt将当时的进程记录到D:盘根目录下的文本文件 Anquantxt中。接着,以正常的方式启动电脑,将Anquantxt中记录到的进程与此时的进程进行比较,你会发现此时的进程要多得多,请逐个结束多出来的进程,并检查网络连接是否正常。如果结束到某一进程时网络连接正常了,则说明就是刚结束的进程就是罪魁祸首。查出后,可删除与进程相关的可执行文件。但还要注意的是,由于它是自动运行的,强行删除后,可能会引起启动时报“找不到某文件”的错误,还得将其与自启动有关的设置全部清除,包括“系统配置实用程序”的“启动”、“Winini”下的内容、注册表下的内容、启动脚本下的内容、“开始”菜单“启动”下的内容等。
3调整分区
有一次,笔者带着本本儿出差,途中想处理一下下车即用的报表文件,可本本儿偏不争气,启动时报分区错误。天啊,出门在外的,又没带任何工具软件,好在天无绝人之路,还能启动到安全模式下——有法了,命令行工具Diskpart能胜任分区魔术师的一切工作(可能还少有朋友听说吧)。Diskpart功能非常强大,它工作于一个集成的环境,输入Diskpart后,显示图1所示的专用提示符即Diskpart>(注意:这不是一个路径),在这一环境下可输入很多与之相关的同时也是它的专用子命令。下面就来演示分区的扩容功能。
说明在先:以下的 *** 作是在台式机上记录下来的。
①启动到带命令提示符的安全模式下,输入命令Diskpart。再输入list partition 显示一下分区,显然,其中有两个主分区、两个扩展分区。
②输入“Select Parttition 3”使第3分区(5004MB的那个),使该分区具有焦点属性。再输入“Delete Partition”即可删除该分区。请将图3第1、2两个“List partition”命令后的值进行比较,不难看出,原分区3确实已被删除了。
③输入“Select partition 1”使其具有焦点属性,再输入“Extend”,刚才被删除分区所空出来的末分配空间就能自动添加到第1分区中去。
为分区扩容,这可是分区魔术师的专利,“diskpart”也能实现,看来,Windows server 2003不支持分区魔术师是有道理的。再输入“List partition”可观察到第1个分区的容量变化情况。
说明:将带有焦点的分区扩展为最邻近的未分配空间时。对于普通分区,未分配的空间必须在同一磁盘上,并且必须接着带有焦点的分区。
如果要被扩容的分区是NTFS格式,扩容后不会丢失任何数据。如果是非 NTFS 的文件系统格式,此命令就会失败,但不会对分区作任何更改也不会破坏数据。不能扩展当前系统分区或启动分区,也不能对包含页面文件的分区进行扩容。从图中可看出,我的电脑中有两个主分区,分区5才是活动分区。不然,不能对分区1进行扩容 *** 作。
语法:extend [size=n]
参数说明: size=n :添加到当前分区的空间大小 (MB)。如果不指定大小,磁盘就扩展为占用所有最邻近的未分配空间。
④不管对硬盘分区做了什么样的改动,包括创建、删除、扩容等,都用不着重新启动电脑即可生效(这是分区魔术师不能做到的),但在“我的电脑”却看不到这些分区,这是为什么呢,原来,还没为其指定驱动器号(也就是盘符),怎样指定盘符呢?下面以为第一个分区指定盘符为例进行说明。
使第1个分区具有焦点属性,再输入命令“Assign”,Diskpart就会自动为其分配一个。当然也可用命令“Assign Letter=X”来手动指定,手动指定时,不能与已存在的盘符如C等相同。经过这样的处理后,就能在“我的电脑”下查看到这些分区了。
⑤将分区5设为活动分区,先用Select Parttition 5使其具有焦点属性再用Active激活即可。最后输入Exit,退出Diskpart集成环境,让电脑自动重启。
说明:如果用惯了DiskPart,你就会觉得它的设计很符合人们的思维习惯,一般是先指定焦点,再进行 *** 作, *** 作过程中还可随显示分区状态以便掌握进度。输入Help可查看到所有的子命令,输入有错时,它还会自动列出子命令列表及简要说明,将你引导到正路上来。另外,安装Windows 2003后,大家最熟悉的分区魔术师(非服务器版)不能正常运行,使用Diskpart确实是一个不错的选择。
如前所述,在Diskpart下进行任何 *** 作前都必须指定焦点,即指明对哪一对象进行 *** 作,这一方面使的我的 *** 作逻辑清楚,但另一方面,如果对误指定了焦点又执行了破坏性的命令,如删除分区等,会造成无可挽回的损失。所以,请随时用List命令查看各分区状态,焦点分区前有一个星号()标志。
此外,你还可以借助安全模式来完成病毒的清除工作。比如有的杀毒软件能报告病毒但却不能清除甚至隔离、删除,遇到这种情况,可启动到安全模式下尝试删除这些病毒文件。
简单说就是你登陆新浪爱问时电脑记录的用户名、密码的“文件夹” 其它网站、论坛的用户名、密码等也保存在这里 可以清除

作为一名业内资深的游戏开发人员,经常会遇到实习的新同事在工作中会问到这样的问题:

工作中到底有哪些开源游戏服务器框架,该去值得学习呢?

囊括到nodejs 、java、C#、golang 、c++、python 等技术栈有各种各样的游戏框架。

本文给大家总结了一些github上star和fork比较常用的且有一定数量的较为完整的框架做了一个说明,大家可以往下看。

地址: >

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zz/13498431.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-19
下一篇 2023-08-19

发表评论

登录后才能评论

评论列表(0条)

保存