微服务框架课程

目录

  • 课程介绍
  • 课程内容
  • 开发环境搭建
  • [1 导入虚拟机](#1 导入虚拟机)
    • [1.1 导入虚拟机](#1.1 导入虚拟机)
      • [1.1.1 可能遇到的问题](#1.1.1 可能遇到的问题)
    • [1.2 远程连接虚拟机](#1.2 远程连接虚拟机)
    • [1.3 修改IP](#1.3 修改IP)
  • [2 IDEA环境配置](#2 IDEA环境配置)
    • [2.1 编码配置](#2.1 编码配置)
    • [2.2 自动导包设置](#2.2 自动导包设置)
    • [2.3 提示忽略大小写](#2.3 提示忽略大小写)
    • [2.4 设置 Java 编译级别](#2.4 设置 Java 编译级别)
  • [3 Maven环境](#3 Maven环境)
    • [3.1 安装Maven](#3.1 安装Maven)
    • [3.2 配置仓库](#3.2 配置仓库)
    • [3.3 IDEA中配置maven](#3.3 IDEA中配置maven)
  • [4 配置Git环境](#4 配置Git环境)
  • [5 导入商城项目](#5 导入商城项目)
    • [5.1 拉取项目](#5.1 拉取项目)
    • [5.2 创建数据库](#5.2 创建数据库)
    • [5.3 启动项目](#5.3 启动项目)
    • [5.4 运行前端](#5.4 运行前端)

课程介绍

掌握微服务技术是构建大型互联网项目的必备技能,很多企业面临着从单体架构向微服务架构转变的需求,而且微服务架构开发也会面临各种各样的问题需要解决。在本课程中,我们将从一个电商项目入手,带领大家使用主流的Spring Boot、Spring Cloud Alibaba技术栈构建一个微服务项目,解决微服务项目中常见的问题,在整个学习过程中会使用AI技术高效学习主流的微服务解决方案,让学生运用AI去高效学习,掌握微服务组件在项目中的具体应用场景。

课程内容

内容 介绍
Spring Cloud 从一个电商项目入手,带领大家从零构建微服务,并利用Spring Cloud和Spring Cloud Alibaba中的组件解决微服务项目开发中碰到的各种问题,比如:服务注册与发现、服务间远程调用、网关、配置中心、服务保护等,让你真正学习微服务组件在项目中的具体应用场景及解决方案。
RabbitMQ RabbitMQ 是目前企业中最常用的消息队列之一,这部分课程主要学习RabbitMQ的基本用法以及消息队列的一些疑难问题。例如:消息可靠性问题、延迟消息问题、集群部署等等。
Redis高级 Redis的一些高级知识。例如Redis的主从、集群、哨兵、数据持久化等。还会结合Redis底层原理、源码来分析常见的热门面试题。
ElasticSearch 快速掌握目前最热门的搜索引擎技术ElasticSearch的基本用法及高级搜索和集群方案,快速满足企业开发的基本需求。讲解内容主要包括:倒排索引原理、IK分词器、Elasticsearch的索引映射结构、文档数据处理、搜索语法、Java客户端、高级搜索、集群部署等。具体内容包括:
常见面试题 包括Spring cloud Aliaba常用组件、RabbitMQ、Redis、ES、常见技术方案等面试题讲解。

开发环境搭建

工欲善其事必先利其器。
个人电脑内存至少24G以上(为了更好的学习最好升级到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软件的同学不需要重新安装)。

  • 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 远程连接虚拟机

虚拟机启动成功,下边使用ssh客户端工具(FinalShell)远程 连接 虚拟机。

打开FinalShell软件

通过下图所示建立新连接:

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

如下图:

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

双击连接信息,连接成功如下图:

执行 systemctl start docker 启动docker。

启动mysql:docker start mysql

以上软件如果已经启动不用重复启动。

查询docker容器:docker ps

如下图:

1.3 修改IP

如果虚拟机IP不是192.168.101.68需要修改虚拟机IP地址为192.168.101.68。

修改方法如下:

确保在root用户下进行操作,进入网络配置文件network-scripts目录下,找到我们需要修改的配置文件:

shell 复制代码
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文件内容如下:
shell 复制代码
[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邮箱:

shell 复制代码
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

安装成功在IDEA中配置git的安装目录

5 导入商城项目

5.1 拉取项目

首先,我们需要熟悉黑马商城项目的基本结构:

本课程提供的git地址为:https://gitee.com/mrt-springcloudv1/hmall.git

大家需要登录自己gitee账号,Fork该仓库到自己的空间 ,Fork是将其它仓库的内容复制到自己仓库。

登录gitee,然后在浏览器输入https://gitee.com/mrt-springcloudv1/hmall.git 仓库地址,点击"Fork",如下图:

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

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

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

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

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

5.2 创建数据库

要启动该项目需要创建数据库,首先创建数据库"hmall",再导入课程资料下的"hmall.sql",

下边我们用DataGrip创建数据库并导入脚本。

首先创建数据库连接

虚拟机中的MySQL数据库账号为root,密码为:mysql

右键数据库连接,创建数据库

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

选择数据库脚本

创建成功如下:

接下来修改数据库连接参数,数据库的ip地址和数据库密码:在application-dev.yaml中:

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:

shell 复制代码
# 启动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

点击"登录"按钮,登录成功

相关推荐
伟兮4 小时前
iOS日志系统设计
架构
国科安芯7 小时前
卫星通讯导航FPGA供电单元DCDC芯片ASP4644S2B可靠性分析
单片机·嵌入式硬件·fpga开发·架构·安全性测试
鱼跃鹰飞8 小时前
DDD中的防腐层
java·设计模式·架构
攀登的牵牛花8 小时前
前端向架构突围系列 - 框架设计(五):契约继承原则
前端·架构
羊羊羊i9 小时前
使用Informer监听K8s资源
云原生·容器·kubernetes
lhrimperial9 小时前
企业智能知识库助手落地实践:从RAG到Multi-Agent
java·spring cloud·微服务·系统架构·知识图谱
VermiliEiz10 小时前
二进制文件部署k8s方式(5)
云原生·容器·kubernetes
小小工匠10 小时前
LLM - 从定制化 Agent 到 Universal Agent + Skills Library:下一代智能体架构实践
架构·定制化agent·universal agent·skill library