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

环境搭建

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仓库就行了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

麒麟系统安装Redis

一、背景 如前文(《麒麟系统安装MySQL》)所述。 二、下载Redis源码 官方未提供麒麟系统的Redis软件,须下载源码编译。 下载地址:https://redis.io/downloads 6.2.14版本源码下载地址:https://download.redis.io/re…

构建LangChain应用程序的示例代码:46、使用 Meta-Prompt 构建自我改进代理的 LangChain 实现

Meta-Prompt 实现 摘要: 本文介绍了 Noah Goodman 提出的 Meta-Prompt 方法的 LangChain 实现,该方法用于构建能够自我反思和改进的智能代理。 核心思想: Meta-Prompt 的核心思想是促使代理反思自己的性能,并修改自己的指令。…

降低IT运营成本,提升客户体验 |LinkSLA亮相第十届CDIE

6月25-26日,中国数字化创新博览会(CDIE 2024)在上海张江科学会堂举行。本届展览主题为“AI创新,引领商业增长新格局”,旨在交流企业在数字化时代,如何以科技为驱动,在转型中如何把握机遇&#x…

文本编辑命令和正则表达式

一、 编辑文本的命令 正则表达式匹配的是文本内容,Linux的文本三剑客,都是针对文本内容。 文本三剑客 grep:过滤文本内容 sed:针对文本内容进行增删改查 (本文不相关) awk:按行取列 &#x…

Web服务器与Apache(虚拟主机基于ip、域名和端口号)

一、Web基础 1.HTML概述 HTML&#xff08;Hypertext Markup Language&#xff09;是一种标记语音,用于创建和组织Web页面的结构和内容&#xff0c;HTML是构建Web页面的基础&#xff0c;定义了页面的结构和内容&#xff0c;通过标记和元素来实现 2.HTML文件结构 <html>…

Transformer教程之什么是Transformer

在过去的几年里&#xff0c;Transformer 模型已经成为了自然语言处理&#xff08;NLP&#xff09;领域的主流技术。无论是机器翻译、文本生成还是语音识别&#xff0c;Transformer 都表现出了非凡的性能。那么&#xff0c;什么是 Transformer&#xff1f;它是如何工作的&#x…

LeetCode 剑指 Offer 40

// void help(int[] a,int l,int r,int k){ // if(k0) return; // if(r-l1 < k){ // for(int il;i<r;i){ // ans[cnt] a[i]; // } // return; // } // // 快排的基准值 // int base a[l]; // int i l, j r; // while(i<j){ // while(i<j &&…

1961 Springboot自习室预约系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 自习室预约管理系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库…

鸿蒙开发系统基础能力:【Timer (定时器)】

定时器 setTimeout setTimeout(handler[,delay[,…args]]): number 设置一个定时器&#xff0c;该定时器在定时器到期后执行一个函数。 参数 参数名类型必填说明handlerFunction是定时器到期后执行函数。delaynumber否延迟的毫秒数&#xff0c;函数的调用会在该延迟之后发生…

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

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

Java 流式编程的7个技巧,必学!

作为Java开发者&#xff0c;我们还没有完全掌握Java Streams这个多功能工具的威力。在这里&#xff0c;你将发现一些有价值的技巧&#xff0c;可以作为参考并应用到你的下一个项目中。 Java Streams在很多年前就被引入了&#xff0c;但作为Java开发者&#xff0c;我们还没有完…

2.4G特技翻斗车方案定制

遥控翻斗车不仅能够提供基本的前进、后退、左转和右转功能&#xff0c;还设计有多种特技动作和互动模式&#xff0c;以增加娱乐性和互动性。 1、无线遥控&#xff1a;玩具翻斗车一般通过2.4G无线遥控器进行控制&#xff0c;允许操作者在一定距离内远程操控车辆。 2、炫彩灯光…

安装VEX外部编辑器

Houdini20配置VEX外部编辑器方法_哔哩哔哩_bilibili 下载并安装Visual Studio Code软件&#xff1a;Download Visual Studio Code - Mac, Linux, Windows 在Visual Studio Code软件内&#xff0c;安装相关插件&#xff0c;如&#xff1a; 中文汉化插件vex插件 安装Houdini Expr…

JavaScript中的Date对象,以及常用格式化日期的方法封装

一、Date对象 二、操作Date对象 1、创建Date对象 &#xff08;1&#xff09;常用方法 &#xff08;2&#xff09;使用示例 2、获取日期 &#xff08;1&#xff09;常用方法 &#xff08;2&#xff09;使用示例 3、设置日期 &#xff08;1&#xff09;常用方法 &…

LSTM时间序列基础学习

时间序列 时间序列可以是一维&#xff0c;二维&#xff0c;三维甚至更高维度的数据&#xff0c;在深度学习的世界中常见的是三维时间序列&#xff0c;这三个维度分别是&#xff08;batch_size,time_step,input_dimensions&#xff09;。 其中time_step是时间步&#xff0c;它…

智慧校园-就业管理系统总体概述

在当代教育与信息技术深度融合的背景下&#xff0c;智慧校园就业管理系统成为了连接学生、高校与企业的重要纽带&#xff0c;它以创新的服务理念和技术手段&#xff0c;重塑了职业规划与就业服务的传统模式。这一系统致力于为即将步入社会的学生们提供全面、个性化的支持&#…

C++系统编程篇——Linux第一个小程序--进度条

&#xff08;1&#xff09;先引入一个概念&#xff1a;行缓冲区 \r和\n \r表示回车 \n表示回车并换行 ①代码一 #include<stdio.h> #include<unistd.h> int main()…

MSA 助力实验室测量更稳定、更准确

在汽车制造、石油化工、电子制造等行业,产品的质量和性能需要通过准确的测量来保证。但是由于测量设备的误差、操作人员的主观影响以及环境条件的干扰等因素会导致测量系统出现各种问题,且这些问题会导致测量结果不准确,从而影响产品质量。 随着工业信息化的迅速发展, 各行业对…

【漏洞复现】FastAdmin——任意文件读取漏洞

声明&#xff1a;本文档或演示材料仅供教育和教学目的使用&#xff0c;任何个人或组织使用本文档中的信息进行非法活动&#xff0c;均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 FastAdmin是一个免费开源的后台管理框架&#xff0c;其lang存在…

基于C++实现的EventLoop与事件驱动编程

一&#xff0c;概念介绍 事件驱动编程&#xff08;Event-Driven&#xff09;是一种编码范式&#xff0c;常被应用在图形用户界面&#xff0c;应用程序&#xff0c;服务器开发等场景。 采用事件驱动编程的代码中&#xff0c;通常要有事件循环&#xff0c;侦听事件&#xff0c;…