微服务开发 —— 项目环境搭建篇

环境搭建

Linux 环境搭建

Linux 环境搭建大家可以使用虚拟机 VMware、VirtualBox 等应用创建虚拟机,使用Vagrant也可以快捷搭建虚拟环境;Windows 中有 WSL2,Windows 中的 Docker 也对 WSL 进行了支持,也是一个不错的选择。或者可以向我一样,PDD买一个准新机,小黄鱼上淘一个一二十的CPU、一二十的ddr3内存条配件,刷一个 Linux 系统(想刷什么刷什么,可以随便折腾,搞个内网穿透服务比各种服务器便宜多了),也是一个不错的选择。请添加图片描述

再给你推荐一个mini小键盘,玩过开发板的都说好 b( ̄▽ ̄)d ,便携易带好帮手,性价比也少不了。

在这里插入图片描述

连接工具推荐 XShell,大概是去年面向个人版免费了,不嫖白不嫖,VScode也不错,传文件特方便。

安装 Docker

Docker,大家都懂的,把环境隔离开,防止环境互相干扰,详细命令可以看下面的Docker命令大全👇:

  • Docker 命令大全:https://techfanyi.blog.csdn.net/article/details/124027213

安装前移除旧Docker,启用Docker源,更新源再安装新Docker,下面命令跑一遍就行了:

sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

一般还有一个更简单的方法,个人小网站一般都会用,装个宝塔面板,里面大多数环境都有,在宝塔可视化面板里面装好 Docker 就行了

在这里插入图片描述

然后就是配置Docker 镜像加速,DockerHub 是国外网站,会比较慢(不过我这里挺快的),觉得慢的可以直接通过宝塔设置加速源。

在这里插入图片描述

然后就是Docker安装各种软件环境👇:

Docker 安装 mysql

宝塔面板里可以直接安装 mysql 环境,不用各种复杂操作,一键编译安装,省时省力省资源。如果执意要使用docker安装mysql,宝塔面板里也有多种选择:

在这里插入图片描述

在这里插入图片描述

不过这种是小打小闹,毕竟宝塔更多商业功能还是收费的(懂得都懂),真实环境还是会使用Docker命令来部署的。

docker run \
--name mysql \
-p 13306:3306 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7

下面给你个参数表,帮你回顾一下。

参数/选项解释
docker run运行 Docker 容器的命令
--name mysql指定容器的名称为 “mysql”
-p 3306:3306将容器内部的 MySQL 服务端口(3306)映射到宿主机的端口(3306)
-v /mydata/mysql/log:/var/log/mysql将宿主机上的目录 /mydata/mysql/log 映射到容器内部的 /var/log/mysql 目录,用于存储 MySQL 的日志文件
-v /mydata/mysql/data:/var/lib/mysql将宿主机上的目录 /mydata/mysql/data 映射到容器内部的 /var/lib/mysql 目录,用于存储 MySQL 数据文件
-v /mydata/mysql/conf:/etc/mysql将宿主机上的目录 /mydata/mysql/conf 映射到容器内部的 /etc/mysql 目录,用于存储 MySQL 的配置文件
-e MYSQL_ROOT_PASSWORD=123456设置 MySQL 的 root 用户的密码为 “123456”
mysql:5.7指定使用的 Docker 镜像为 “mysql:5.7”,即 MySQL 5.7 版本的官方镜像

如果你安装了宝塔中的mysql,记得把容器中的3306端口映射到宿主机的其它端口,这里我就映射到 13306。

在这里插入图片描述

在这里插入图片描述

对于 mysq 可视化工具,Navicate、SQLyog都不错,DBeaver 社区版也够用了,阿里开源的Chat2DB也不错,有Ai功能,支持多种数据源。

在这里插入图片描述

Docker 安装 redis

redis 同理,docker 使用下面命令即可:

docker run \
--name redis \
-p 6379:6379 \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

设置密码可以在 redis-cli 中输入 config set requirepass 123456 就可以把密码设置成 123456 了。

对于 Redis 可视化工具,Redis Desktop Manager 曾经是一个不错的选择,但是现在收费了。可是试一试 redis insight,比较好用。

在这里插入图片描述

编译器及其它环境

常用的工具IDEA、VScode、Git,还有一些常用插件。建议注册Gitee账号,速度快。

在 gitee 新建个仓库,不要初始化仓库,设置模板,选择分支模型,直接点击创建就行。

在这里插入图片描述

然后在本地创建一个同名空项目,按照 gitee 提示创建git仓库并push即可。

在这里插入图片描述

创建基本模块

接下来需要根据前面分析出的服务创建模块,在项目根目录下新建商品服务、仓储服务、订单服务、优惠券服务、用户服务模块。这里以商品服务为例。

在这里插入图片描述

然后导入微服务必要模块 Web → Spring WebSpring Cloud Routing → OpenFeign

Spring Web 提供了用于处理 Web 请求和响应的功能,包括控制器、请求映射、视图解析等。

导入 OpenFeign 意味着你可以使用 OpenFeign 来定义和调用其他微服务的 RESTful API 接口,简化了微服务之间的通信过程,提高了开发效率。

在这里插入图片描述

创建完成后就是这个样子

在这里插入图片描述

然后在项目根目录下新建 pom.xml,并创建 modules 标签将我们的前面创建的 module 聚合起来

在这里插入图片描述

根目录下创建 .gitignore,排除掉部分不需要提交到代码仓库的文件。

**/mvnw
**/mvnw.cmd
**/.mvn
**/target/
.idea
**/.gitignore

然后将这些内容提交到gitee仓库就行了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/36527.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows - 像Linux一样使用alias

前言 阅读本文约2分钟 说明 使用doskey命令 设置别名 查看当前目录 doskey lldir 激活conda的spider环境 doskey spiderconda activate spider 退出conda环境 doskey condaqconda deactivate 查看所有别名 doskey /macros

实现设计开挂|如何设计出坚不可摧的网球拍?

数字揭秘 我们发现自己可能偶尔会以过激的方式表达沮丧或愤怒,哪怕是在公共场合。就算是世界级的网球运动员也无法避免偶尔的情绪爆发,他们有时会砸球拍来释放被压抑的情绪或应对来自竞赛的压力。 网球运动员的情绪爆发已被证明是不可避免的。哪怕是包括…

Linux系统相关函数总结

在应用程序当中,有时往往需要去获取到一些系统相关的信息,譬如时间、日期、以及其它一些系统相关信息,本章将向大家介绍如何通过 Linux 系统调用或 C 库函数获取这些系统信息。除此之外,还会向大家介绍 Linux 系统下的/proc 虚拟文…

浏览器插件利器-allWebPluginV2.0.0.14-beta版发布

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品,致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX插件直接嵌入浏览器,实现插件加载、界面显示、接口调用、事件回调等。支持谷歌、火狐等浏…

js删除el-table删除新增项,有的已经保存有的未经保存

有时候在弹窗中的弹窗要删除数据,有的是刚新增进来的,没有经过保存就没有id,有的已经保存过就有id 根据情况设定是否为编辑模式,如果为编辑模式就需要进行筛选删除及接口,如果不是编辑模式,只需要进行筛选删除 this.editFlag true; // 为编辑模式// 删除伤亡名单handelDel() …

数据库管理系统(DBMS)

一.数据库管理系统 1.简介 数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中…

【PWN · ret2libc | protobuf】[2024CISCN · 华中赛区]protoverflow

套了一层protobuf壳,然后就是简单的ret2libc 参考速递:深入二进制安全:全面解析Protobuf-CSDN博客 前言 第一次遇到protobuf,如果没有了解过,是显然做不出来的。此次复现,也算是点亮了一个技能点 一、什么…

如何用Vue3和Plotly.js实现一个动态3D图的在线展示

本文由ScriptEcho平台提供技术支持 项目地址:传送门 基于 Plotly.js 的交互式图表动画 应用场景 本代码演示了如何使用 Plotly.js 创建交互式图表动画,其中一个区域填充的区域在给定时间间隔内更新其数据。这种动画可用于可视化时间序列数据或展示数…

centOS7网络配置_NAT模式设置

第一步:查看电脑网卡 nat模式对应本地网卡的VMnet 8 ,查看对应的IP地址。 第二步:虚拟网络编辑器 打开VMWare,编辑--虚拟网络编辑器,整个都默认设置好了,只需要查看对应的DHCP设置中对应的IP的起始&#…

算法金 | 没有思考过 Embedding,不足以谈 AI

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 抱个拳,送个礼 在当今的人工智能(AI)领域,Embedding 是一个不可或缺的概念。如果你没有…

Python学习笔记24:进阶篇(十三)常见标准库使用之数据压缩功能模块zlib,gzip,bz2,lzma的学习使用

前言 本文是根据python官方教程中标准库模块的介绍,自己查询资料并整理,编写代码示例做出的学习笔记。 根据模块知识,一次讲解单个或者多个模块的内容。 教程链接:https://docs.python.org/zh-cn/3/tutorial/index.html 数据压缩…

2024年度临沂市安全文化书画摄影展开幕

人海信息网山东讯 6月27日,2024年度临沂市安全文化书画摄影作品展,在临沂高新区隆重开幕。本次书画摄影展深入贯彻“以人为本,安全发展”的重要思想,立意高远,内涵丰富,思想深邃,承载着健康、幸…

List常用操作比for循环更优雅的写法

private String name; //姓名 private Integer age; //年龄 private Integer departId; //所属部门id } List list new ArrayList<>(); 复制代码 简单遍历 使用lamada表达式之前&#xff0c;如果需要遍历list时&#xff0c;一般使用增强for循环&#xff0c;代码如…

【AIGC】《AI-Generated Content (AIGC): A Survey》

文章目录 相关概念What is AI-generated content?Necessary conditions of AIGCHow can AI make the content better?The industrial chain of AIGCAdvantages of large-scale pre-trained modelsGeneration of smart textPros of AIGCCons of AIGCAIGC and Metaverse 挑战潜…

制作高校专属PPT时,如何将校徽设置成透明底色?无须PS

目录 示例&#xff1a;以清华大学为例 1必应搜索“清华大学校徽” 2保存清华大学校徽及校名。 3将校徽导入到PPT中 ​4 选中校徽&#xff0c;然后依次选择“图片格式”-->颜色-->设置透明色​编辑 5出现“画笔”&#xff0c;由于截图的缘故&#xff0c;画笔没有在截…

002关于Geogebra软件的介绍及与MatLab的区别

为什么要学Geogebra&#xff1f; 因为和MatLab的科学计算相比&#xff0c;GeoGebra重点突出教学展示&#xff0c;对于教师、学生人群来讲再合适不过了&#xff0c;尤其是可以融入到PPT里边呈现交互式动画&#xff0c;想想听众的表情&#xff01;这不就弥补了看到PPT播放数学公…

谷歌SEO在外贸推广中的应用效果如何?

谷歌SEO在外贸推广中非常有效。通过优化网站&#xff0c;可以提高在搜索结果中的排名&#xff0c;这意味着更多的潜在客户会看到你的产品和服务。 一个高排名的网站能带来更多自然流量&#xff0c;不需要花费广告费用。这种流量通常质量较高&#xff0c;因为用户是主动搜索相关…

[AIGC] Doris:一款高效的MPP数据仓库引擎

在大数据处理的领域中&#xff0c;Apache Doris&#xff08;原百度 Palo&#xff09;是一个高效的MPP&#xff08;大规模并行处理&#xff09;数据仓库&#xff0c;最初由百度开发&#xff0c;现在已经成为Apache的孵化项目。 (图片取自百度) – 文章目录 1. Doris的基础知识…

第三十五篇——奥卡姆剃刀法则:最简单的往往是最有效的

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 对于奥卡姆剃刀的理解&#xff0c;之前没有这么详细的了解过&#xff0c;…

妙手ERP正式接入Lazada 3PF,支持批量设置产品库存,管理多仓发货

Lazada平台近期又有大动作&#xff0c;上线了3PF一店多运模式&#xff01; 一、Lazada 3PF一店多运模式 在介绍3PF一店多运模式前&#xff0c;要先说明一下原有的Lazada履约模式&#xff0c;此前&#xff0c;Lazada为跨境商家提供两大类物流履约方案&#xff1a; 一类&#x…