在实习的过程中,公司的开发需要使用到rabbitmq等一系列中间件,首先大家最好还是使用虚拟机安装这些环境,公司采用的是分布式架构,所以我是把开发以外的运行环境都塞虚拟机里,通过在虚拟机上使用redis、rabbitmq、nacos、mysql构建分布式系统对接企业的服务器资源,而在本机上实现调用接口进行开发,其次一般来说大家都是按着公司的要求版本进行安装的,公司手册的版本一般不会太高,而且一般来说低版本还是在Unix上稳定性更好,但是这些不涉及开发的环境我是更新到了比较高的稳定版本,因为就像下面的旧版本rabbitmq安装有问题,换新版本就没有什么问题了(笔者一开始是用了windows结果工友都是Unix,工友也难帮(悲))。
建议,每个环境部署好后就测试功能,并且加入环境变量中,对应需要每次开发需要运行的服务,写入开机启动的配置。
如果你和我一样,希望将这些无关开发的组件丢到其他虚拟机或者电脑上,一定要设置好防火墙和网关的相关配置。
rabbitmq
Error: unable to perform an operation on node 'rabbit@DESKTOP-J11MQVH'. Please see diagnostics information and suggestions below.
Most common reasons for this are:
* Target node is unreachable (e.g. due to hostname resolution, TCP connection or firewall issues)
* CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang cookie not matching that of the server)
* Target node is not runningIn addition to the diagnostics info below:
* See the CLI, clustering and networking guides on https://rabbitmq.com/documentation.html to learn more
* Consult server logs on node rabbit@DESKTOP-J11MQVH
* If target node is configured to use long node names, don't forget to use --longnames with CLI toolsDIAGNOSTICS
===========attempted to contact: ['rabbit@DESKTOP-J11MQVH']
rabbit@DESKTOP-J11MQVH:
* connected to epmd (port 4369) on DESKTOP-J11MQVH
* epmd reports: node 'rabbit' not running at all
other nodes on DESKTOP-J11MQVH: ['RabbitMQ']
* suggestion: start the nodeCurrent node details:
* node name: 'rabbitmqcli-8776-rabbit@DESKTOP-J11MQVH'
* effective user's home directory: C:\Users\13441
* Erlang cookie hash: 2aPlOFwNw/5lEWc0cgAHbg==
首先是安装rabbitmq,这需要部署erlang才能安装,这个连接可以看到对应版本的erlang版本。Erlang Version Requirements | RabbitMQ。在运行过程中可能会出现上述的报错,他们说是用户和软件下配置文件不同导致,但是我尝试了不行,最后是通过安装更新的版本解决的。
建议每个环境安装后,都测试是否能正确运行, Community Plugins | RabbitMQ(插件下载),对应.ez插件丢进plugins文件夹里即可。
redis
在redis外部访问的过程中,出现了一些问题,主要是在本机开发的过程中,redis服务出现了随机可能失败的问题,主要是nacos(服务注册和配置管理)配置文件出了问题,如果redis没有设置密码,而通过进行nacos进行服务注册的文件配置里写有密码,就会有出现这类问题。
结尾
剩下的就是nacos的配置一定要对,mysql要确保能够外部访问,这些每次开发必须的服务设置为开机启动。reids可视化工具用的resp,mysql的可视化工具用的是navicat,因为我们真正开发的环境是在本机,虚拟机的服务管理基本用不到,所以可视化工具可以使用一些轻量级的,mysql的可视化工具尽量选择好的,因为可能出现导入sql文件出现语句错误(问工友更快)。