微服务开发环境搭建及起步

简介: 安装Git并配置用户信息,Fork Gitee上的黑马商城项目,克隆到本地。使用DataGrip创建hmall数据库并导入SQL脚本,修改application-dev.yaml中的数据库连接地址和密码。启动Docker容器中的MySQL服务,运行后端项目。前端使用Nginx部署,将hmall-nginx目录置于非中文路径,通过命令行启动nginx,访问http://localhost:18080登录测试(账号任意,密码123)。确保各服务正常运行,为后续学习打好基础。

工欲善其事必先利其器。
个人电脑内存至少16G以上(为了更好的学习最好升级到32G)不符合条件的同学趁休息日升级电脑。
有条件的购买便携显示器进行分屏开发,开发效率杠杠滴,这是专业程序员的标配。
从下边的地址下载全部资料,按照本文档要求安装配置虚拟机及开发环境。
线下同学,直接硬盘拷贝即可
虚拟机:链接:https://pan.baidu.com/s/1VOWFqY7LucKgDu1yA_xM_Q?pwd=1234
课程资料:链接:https://pan.baidu.com/s/1htUlv6xpORT-n7JB351GnA?pwd=1234
maven仓库:链接:https://pan.baidu.com/s/1wqrnwApF_c99huvWcoZhCA?pwd=1234
1 导入虚拟机
黑马商成项目中用到的一些服务端软件如:Nacos配置中心、Redis、RabbitMQ消息队列等通常会安装在企业局域网的服务器中,开发人员去远程连接它们。在教学中我们在自己的电脑上安装虚拟机,虚拟机代表了企业局域网中的服务器。
服务器操作系统使用Centos7,导入下发的虚拟机文件,也可以自行安装Centos7虚拟机。
1.1 导入虚拟机
首先安装VMware-workstation 16.x 或 VMware-workstation 17.x 虚拟机软件(已安装vmware软件的同学不需要重新安装),可从课程资料“软件工具”目录获取安装程序(VMwareworkstation16.rar)。
1)设置网络
点击 “编辑--》虚拟网络编辑器”配置网络地址,地址须与下图一致。
设置子网IP:192.168.101.0,子网掩码:255.255.255.0。

2)导入虚拟机
解压老师提供的虚拟机文件,进入解压后的文件架,双击"CentOS 7 64 位.vmx" 文件,选择复制虚拟机。

对此虚拟机的设置建议至少8G内存、8核CPU,硬盘存储至少40G。

设置完成,启动虚拟机。

注意:虚拟机的IP地址为192.168.101.68,不用修改IP地址。
虚拟机启动成功如下界面:
账号:root
密码:centos

1.1.1 可能遇到的问题
win11打开.vmx文件报错:“未能启动虚拟机”
尝试解决方法:

  1. 打开虚拟机的存放路径
  2. 找到.vmx的配置文件
  3. 修改 virtualHW.version改为virtualHW.version = "18"
    1.2 苹果电脑用户
    使用苹果电脑的学生需要自行安装docker并安装MySQL8,已安装MySQL8的不必重新安装。
    1.2.1 安装MySQL
    拉取镜像:
    docker pull mysql:8.0.26
    创建以下目录:
    sudo mkdir -p /usr/mysql/conf /usr/mysql/data /var/log/mysql
    sudo chmod -R 777 /usr/mysql/ /var/log/mysql
    创建配置文件
    vim /usr/mysql/conf/my.cnf
    添加以下内容到上述创建的配置文件中
    [client]

    socket = /usr/mysql/mysqld.sock

    default-character-set = utf8mb4

[mysqld]

pid-file = /var/run/mysqld/mysqld.pid

socket = /var/run/mysqld/mysqld.sock

datadir = /var/lib/mysql

socket = /usr/mysql/mysqld.sock

pid-file = /usr/mysql/mysqld.pid

datadir = /usr/mysql/data

general_log = 1
general_log_file = /var/log/mysql/access.log
log-error = /var/log/mysql/error.log

character_set_server = utf8mb4
collation_server = utf8mb4_bin
secure-file-priv= NULL

Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

Custom config should go here
!includedir /etc/mysql/conf.d/
创建启动容器
docker run -itd --name=mysql -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/mysql/data:/usr/mysql/data -v /var/log/mysql:/var/log/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mysql mysql:8.0.26
说明: -v : 挂载宿主机目录和 docker容器中的目录,前面是宿主机目录,后面是容器内部目录 -d : 后台运行容器 -p 映射容器端口号和宿主机端口号 -e 环境参数,MYSQL_ROOT_PASSWORD设置root用户的密码
下边修改mysql的访问权限为所有客户端可以访问:
进入容器内部
sudo docker exec -it mysql /bin/bash
连接mysql
mysql -uroot -pmysql
使用mysql库
use mysql;
修改访问主机以及密码等,设置为所有主机可访问
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'mysql';
flush privileges;
1.3 远程连接虚拟机
虚拟机启动成功,下边使用ssh客户端工具(FinalShell)远程 连接 虚拟机。
打开FinalShell软件,没有安装的可以从课程资料“软件工具”目录获取安装程序(finalshell_install.exe)。
通过下图所示建立新连接:

填写连接信息:
IP地址:192.168.101.68
账号与密码为:root/centos
如下图:

点击“确定”,创建连接成功,如下图:

双击连接信息,连接成功如下图:
执行 systemctl start docker 启动docker。

启动mysql:docker start mysql
以上软件如果已经启动不用重复启动。
查询docker容器:docker ps
如下图:

1.4 修改IP
如果虚拟机IP不是192.168.101.68需要修改虚拟机IP地址为192.168.101.68。
修改方法如下:
确保在root用户下进行操作,进入网络配置文件network-scripts目录下,找到我们需要修改的配置文件:
cd /etc/sysconfig/network-scripts/
vi ifcfg-ens33
使用ls命令,列出该目录下的文件。其中“ifcfg-ens33”的文件,为我们需要修改的网络配置文件。
修改配置文件
使用vim命令(vi命令也可以),对文件进行配置:

  1. 我们需要修改BOOTPROTO="static"也就是将dhcp改为static
  2. 修改ONBOOT=“yes” 意思是将网卡设置 为开机启用.
  3. 修改IPADDR=192.168.101.68
  4. 修改GATEWAY=192.168.101.2
    ifcfg-ens33文件内容如下:
    [root@localhost network-scripts]# cat ifcfg-ens33
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens33
    UUID=28711c7c-1216-454e-a454-b7c9a08e71e6
    DEVICE=ens33
    ONBOOT=yes
    IPV6_PRIVACY=no
    IPADDR=192.168.101.68
    PREFIX=24
    GATEWAY=192.168.101.2
    DNS1=8.8.8.8
    还需要修改vmware的网络配置

修改完毕,重启虚拟机即可。
2 IDEA环境配置
安装IDEA,根据下边的步骤进行配置。
2.1 编码配置

2.2 自动导包设置
IDEA可以自动优化导入包,但是有多个同名的类调用不同的包,必须自己手动Alt+Enter设置, 下面可以通过设置来进行导包优化。

2.3 提示忽略大小写
IDEA代码提示默认是区分大小写的,设置为提示忽略大小写,编译我们后期的开发

2.4 设置 Java 编译级别
工程创建成功,点击Project Structure:

点击Project,设置SDK为11及Project language level,如下图:

3 Maven环境
3.1 安装Maven
下载maven3.8.6版本,下载链接如下:
https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.zip
解压apache-maven-3.8.6-bin.zip到没有中文的目录下。
已安装maven的不用重复安装。
3.2 配置仓库
1、解压课程资料中的maven仓库下的repository.zip到本地硬盘
2、在Maven的conf目录中setting.xml文件中配置本地仓库的地址。

配置中央仓库位置:
在setting.xml文件中配置阿里云中央仓库地址。

3.3 IDEA中配置maven
在IDEA中配置maven:进入 File --> Settings --> Build --> Build Tools --> Maven

配置maven安装目录、setting.xml及本地仓库的位置。

4 配置Git环境
在个人电脑安装Git,使用常用软件工具目录中的Git-2.37.3-64-bit.exe。
也可以自行下载,地址:https://git-scm.com/ (windows版本:https://git-scm.com/download/win)
安装成功,在右键菜单出现Git菜单,如下图

配置git邮箱:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
安装成功在IDEA中配置git的安装目录

5 导入商城项目
5.1 拉取项目
首先,我们需要熟悉黑马商城项目的基本结构:
本课程提供的git地址为:https://gitee.com/Herbbbb/hmall
大家需要登录自己gitee账号,Fork该仓库到自己的空间,Fork是将其它仓库的内容复制到自己仓库。
登录gitee,然后在浏览器输入:https://gitee.com/Herbbbb/hmall, 仓库地址,点击"Fork",如下图:

然后选择目标空间进行复制,Fork即拷贝远程仓库:https://gitee.com/Herbbbb/hmall 项目到自己的仓库。

点击“确定”复制成功,此时 hmall 工程已复制到自己的仓库中,点击“克隆/下载”,复制仓库地址

然后从此Git仓库克隆hmall到代码目录。

输入远程仓库地址,并选择本地代码目录:

在弹出窗口选择信任该项目,接下来打开克隆成功的工程如下图:

特别说明
GitHub、Gitee、GitLab本质都不变,都是git那一套,都遵守commit、push、pull的命令。不要因为这个入职后,就慌不择路。
5.2 创建数据库
要启动该项目需要创建数据库,首先创建数据库“hmall”,再导入课程资料下的“hmall.sql”,
下边我们用DataGrip创建数据库并导入脚本。
首先创建数据库连接

虚拟机中的MySQL数据库账号为root,密码为:mysql
右键数据库连接,创建数据库

创建成功,右键数据库,选择“Restore with mysql”

选择数据库脚本

创建成功如下:

接下来修改数据库连接参数,数据库的ip地址和数据库密码:在application-dev.yaml中:
hm:
db:
host: 192.168.101.68 # 修改为你自己的虚拟机IP地址
pw: mysql # 修改为docker中的MySQL密码
5.3 启动项目
启动项目:

启动项目成功:

5.4 运行前端
接下来运行前端,前端工程通过nginx运行,找到课程资料下“hmall-nginx”目录将其拷贝到代码目录下(将其复制到一个非中文、不包含特殊字符的目录下):

进入hmall-nginx目录后,利用cmd启动,运行 start nginx.exe 启动nginx:

启动nginx

start nginx.exe

停止

nginx.exe -s stop

重新加载配置

nginx.exe -s reload

重启

nginx.exe -s restart
特别注意:
nginx.exe 不要双击启动,而是打开cmd窗口,通过命令行启动。停止的时候也一样要是用命令停止。如果启动失败不要重复启动,而是查看logs目录中的error.log日志,查看是否是端口冲突。如果是端口冲突则自行修改端口解决。
通过任务管理器可以查看到nginx进程说明nginx启动成功

接下来可以访问门户:http://localhost:18080/

点击“登录”进入登录页面

输入密码:123
点击“登录”按钮,登录成功

相关文章
|
1月前
|
存储 Kubernetes 数据库
K3S ——轻量化K8S 入门指南
本文介绍轻量级Kubernetes发行版K3s,适用于边缘计算、IoT等场景。涵盖其架构、安装部署(单节点/高可用/离线)、核心组件、网络存储配置及生产建议,助力快速构建轻量化容器平台。
425 4
|
8月前
|
前端开发 Java API
Spring MVC 数据绑定机制详解:@ModelAttribute vs. @RequestParam 和 @PathVariable
本文深入解析了Spring MVC的数据绑定机制,重点对比了`@RequestParam`、`@PathVariable`和`@ModelAttribute`三种注解的使用场景与功能。`@RequestParam`适用于从查询参数或表单数据中提取简单值;`@PathVariable`用于从URL路径中获取资源标识符;而`@ModelAttribute`则能将多个请求参数自动绑定到Java对象,支持复杂数据结构的处理。通过实际案例分析,帮助开发者根据需求选择合适的注解,提升API设计与表单处理效率。
676 9
|
12天前
|
弹性计算 Kubernetes 安全
已上线!云监控 2.0 面向实体的全链路日志审计与风险溯源
在云端,一次 API 调用背后可能隐藏着一场数据泄露;一个异常进程背后,或许是 AK 泄露引发的链式攻击。传统日志“看得见却看不懂”,而云监控 2.0 日志审计通过 UModel 实体建模,将分散在 ACS、K8s、主机各层的日志自动串联。
108 27
|
8天前
|
机器学习/深度学习 人工智能 安全
2025 智能体工程现状
全面分析 AI 智能体在企业中的采用现状、挑战与趋势。
101 11
|
20小时前
|
关系型数据库 应用服务中间件 nginx
容器化部署引擎Docker
Docker是一种轻量级容器化技术,通过镜像打包应用及依赖,实现跨环境一致部署。它利用沙箱机制隔离容器,解决开发、测试、生产环境差异与组件兼容性问题,相比虚拟机更高效便捷,提升应用交付效率。
容器化部署引擎Docker
|
21天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
1093 25
|
1月前
|
人工智能 运维 Serverless
从 Transform 到 Transformer,用 EventBridge 与百炼构建实时智能的 ETL 数据管道
作为数据处理领域的经典模式,ETL(Extract-Transform-Load)通过提取、转换、加载三个步骤,高效地处理着各类结构化数据。然而,面对 AI 时代海量、异构、实时的“数据洪流”,传统 ETL 链路,尤其是其核心的转换(Transform)环节,正面临严峻挑战。本文将从一个初级开发者也能理解和上手的视角,探讨 AI 时代的数据处理新范式:如何利用基于 Transformer 架构的大语言模型(LLM)重塑传统数据处理中的转换(Transform)环节,并结合事件驱动架构(Event-Driven Architecture, EDA),为 AI 数据处理链路“注入实时智能”。
193 16
|
20小时前
|
Kubernetes IDE 应用服务中间件
2.部署篇(开发部署)
本文介绍如何将SpringCloud应用部署到Kubernetes云端,基于EDAS实现快速上云。涵盖集群导入、应用初始化及通过IDE插件高效部署,助力开发者提升发布效率。
|
19小时前
|
安全 Java 开发工具
工程搭建与验证
本文介绍如何使用阿里云脚手架快速搭建Spring Boot工程,并整合Spring Security实现基础安全控制。包含工程创建、代码导入、Web依赖配置、访问接口开发及Security默认登录验证,附完整代码仓库地址。
|
19小时前
|
jenkins Java 持续交付
SpringBoot集成Jenkins
基于阿里云CentOS环境,配置JDK1.8后通过YUM安装Jenkins,手动设置JDK路径并修改启动用户为root及端口为8081,成功启动服务。后续安装Git、Maven并配置阿里云镜像与环境变量,完成插件初始化设置,实现持续集成环境搭建。