从零开始搭建微服务(一)

news2024/11/26 15:46:42

构建项目父工程 添加公共核心模块 安装nacos

安装nacos
  • nacos 文档地址: https://nacos.io/zh-cn/docs/what-is-nacos.html

  • 本文使用版本2.2.2 下载地址:https://github.com/alibaba/nacos/archive/refs/tags/2.2.2.zip


使用nacos
  1. 我们下载是源代码 解压即可

    unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
    cd nacos/bin
    
  2. 添加nacos数据库修改nacos配置文件

    新建数据库nacos 修改配置文件

    2.1 导入数据库脚本 nacos/conf/mysql-schema.sql 在新建的nacos数据库执行即可

    2.2 修改配置文件数据库密码 nacos/conf/application.properties 如果没有 复制一份__application.properties.example__

  3. 启动服务器


注:Nacos的运行需要以至少2C4g60g*3的机器配置下运行

Linux/Unix/Mac

启动命令(standalone代表着单机模式运行,非集群模式):

sh startup.sh -m standalone

如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:

bash startup.sh -m standalone

Windows

启动命令(standalone代表着单机模式运行,非集群模式):

startup.cmd -m standalone
  1. 访问http://127.0.0.1:8848/nacos能通代表启动成功 默认用户名和密码 nacos

  2. 关闭nacos

    Linux/Unix/Mac

    sh shutdown.sh
    

    Windows

    shutdown.cmd
    

    或者双击shutdown.cmd运行文件。

搭建项目

  • 新建项目 修改项目打包方式为pom,删除掉src目录和其它无用的文件只保留pom.xml ,引入微服务依赖 前面有讲过

    我们先讲基础的依赖添加进来后面需要其它组件的时候我们在添加

    父工程结构如下:

    pom文件

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.aihe</groupId>
        <artifactId>aihe-cloud</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <properties>
            <maven.compiler.source>8</maven.compiler.source>
            <maven.compiler.target>8</maven.compiler.target>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    
            <spring-boot-admin.version>2.7.10</spring-boot-admin.version>
            <spring.boot.version>2.7.11</spring.boot.version>
            <spring.cloud.version>2021.0.5</spring.cloud.version>
            <spring.cloud.alibaba.version>2021.0.5.0</spring.cloud.alibaba.version>
            <jasypt.version>3.0.5</jasypt.version>
        </properties>
    
        <!-- 以下依赖 全局所有的模块都会引入  -->
        <dependencies>
            <!--配置文件处理器-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <optional>true</optional>
            </dependency>
            <!--配置文件加解密-->
            <dependency>
                <groupId>com.github.ulisesbocchio</groupId>
                <artifactId>jasypt-spring-boot-starter</artifactId>
                <version>${jasypt.version}</version>
            </dependency>
            <!--监控-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <!--监控客户端-->
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-client</artifactId>
                <version>${spring-boot-admin.version}</version>
            </dependency>
            <!--Lombok-->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <scope>provided</scope>
            </dependency>
            <!--测试依赖-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <!-- spring cloud 依赖 -->
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring.cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
    
                <!-- spring cloud alibaba依赖 -->
                <dependency>
                    <groupId>com.alibaba.cloud</groupId>
                    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                    <version>${spring.cloud.alibaba.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
    
                <!-- spring boot依赖 -->
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-dependencies</artifactId>
                    <version>${spring.boot.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    </project>
    
  • 添加子项目 common模块 封装全局返回 全局异常,全局枚举 其它的以后封装

    pom文件

    暂时先添加web和validation依赖

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>com.aihe</groupId>
            <artifactId>aihe-cloud</artifactId>
            <version>1.0-SNAPSHOT</version>
        </parent>
    
        <artifactId>aihe-cloud-common</artifactId>
    
        <properties>
            <maven.compiler.source>8</maven.compiler.source>
            <maven.compiler.target>8</maven.compiler.target>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-validation</artifactId>
            </dependency>
    
        </dependencies>
    
    </project>
    
    到此我们微服务第一步就算是搭建好了 先安装nacos是为了后面的方便

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

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

相关文章

轻松编写第一个油猴脚本

第一步&#xff1a;安装油猴 首先&#xff0c;我们需要安装油猴。油猴是一个免费的浏览器扩展&#xff0c;可让您在浏览器中运行脚本。 在 Chrome 浏览器中&#xff0c;可以通过以下步骤安装油猴&#xff1a; 在 Chrome 浏览器中打开 Chrome 网上应用店。搜索 "油猴&qu…

揭秘ChatGPT的智慧密码:向量数据库的神奇作用解析

2023年8月&#xff0c;亚马逊云科技推出了自己的向量引擎Amazon OpenSearch Serverless向量引擎&#xff0c;这被认为是其旗下大语言模型Amazon Titan超越ChatGPT的一个重要契机。 那么&#xff0c;这个Amazon OpenSearch Serverless向量引擎有何厉害之处&#xff1f;为什么能…

Elasticsearch:ES|QL 中的数据丰富

在之前的文章 “Elasticsearch&#xff1a;ES|QL 查询语言简介”&#xff0c;我有介绍 ES|QL 的 ENRICH 处理命令。ES|QL ENRICH 处理命令在查询时将来自一个或多个源索引的数据与 Elasticsearch 丰富索引中找到的字段值组合相结合。这个有点类似于关系数据库查询中所使用的 jo…

数据治理概念篇:(一)相关术语与名词

数据治理内容众多&#xff0c;其中与数据治理相关名词和术语也是多不胜数。下面记录一下常见的数据治理相关名词。 1.数据仓库 1.1.名词解释 Bill Inmon 将数据仓库定义为&#xff1a;“面向主题的、整合的、随时间变化的、相对稳定的支持管理决策的数据集合”。 Ralph Kimbal…

【python】爬取斗鱼直播照片保存到本地目录

一、导入必要的模块&#xff1a; 这篇博客将介绍如何使用Python编写一个爬虫程序&#xff0c;从斗鱼直播网站上获取图片信息并保存到本地。我们将使用requests模块发送HTTP请求和接收响应&#xff0c;以及os模块处理文件和目录操作。 如果出现模块报错 进入控制台输入&#xff…

APP开发:用途与未来前景|软件定制开发|网站小程序建设

APP开发&#xff1a;用途与未来前景|软件定制开发|网站小程序建设 APP开发已成为现代科技趋势的一部分&#xff0c;无论是日常生活还是商业领域&#xff0c;都有它的身影。通过开发APP&#xff0c;我们可以将想法、功能和内容转化为直观、易用的移动设备应用程序&#xff0c;满…

【算法| 差分 No.1】AcWing 797. 差分 AcWing 798. 差分矩阵

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望对大家有所帮…

Spring中@Async的使用技巧

引言 在Java开发中&#xff0c;我们常常会遇到需要执行耗时操作的场景&#xff0c;例如文件上传、网络请求等。为了提高系统的响应速度和并发能力&#xff0c;我们可以使用异步方法来处理这些任务。本文将介绍如何在Java中使用异步方法&#xff0c;并探讨其中的一些注意事项。…

棋牌室电脑计时灯控,棋牌室计时灯控安装,佳易王计时计费管理系统软件

棋牌室电脑计时灯控&#xff0c;棋牌室计时灯控安装&#xff0c;佳易王计时计费管理系统软件 棋牌室的灯可以用佳易王计时计费软件来控制开关&#xff0c;当开始计时的时候&#xff0c;软件发送开灯的指令&#xff0c;灯打开&#xff0c;在结账后&#xff0c;软件发送关灯指令…

酷开科技 | 酷开系统里萌萌哒小维在等你!

在一片金黄淡绿的颜色中&#xff0c;深秋的脚步更近了&#xff0c;在这个气候微凉的季节里&#xff0c;你是不是更想拥有一种温暖的陪伴呢&#xff1f;酷开科技智慧AI语音功能更懂你&#xff0c;贴心的小维用心陪伴你的每一天。 01.全天候陪伴 在酷开系统中&#xff0c;只要你…

华为OD机试 - 高效的任务规划 - 逻辑分析(Java 2023 B卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

操作系统(一):进程状态与进程调度

前言 操作系统作为计算机基础的四大件&#xff0c;系统学习无疑是十分重要的。在这个系列的文章中&#xff0c;荔枝会结合操作系统的知识进行归纳梳理&#xff0c;总结输出博文&#xff01;下面这篇文章主要介绍的是进程状态和调度&#xff0c;重点是几种调度算法的理解和掌握&…

基于yolov2网络的人脸识别系统matlab仿真,包括识别正脸,侧脸等

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、训练阶段 4.2、预处理阶段 4.3、识别阶段 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ........................................…

数据中心加密:保障数据安全的重要一环

随着信息化的快速发展&#xff0c;数据已经成为企业的重要资产&#xff0c;数据安全也成为了企业面临的重大挑战。数据中心作为企业数据存储和管理的重要场所&#xff0c;其安全性对于整个企业的数据安全具有至关重要的作用。而数据中心加密则是保障数据安全的重要一环。本文将…

15 款 PDF 编辑器帮助轻松编辑、合并PDF文档

PDF 编辑器在当今的数字环境中至关重要&#xff0c;因为 PDF 已成为共享和存储信息的首选格式。只需几分钟&#xff0c;可靠的 PDF 编辑器即可让用户能够根据其特定需求修改、定制和定制文档。在本文中&#xff0c;我们全面汇编了 15 款最佳免费 PDF 编辑器&#xff0c;让您可以…

1.性能优化

概述 今日目标&#xff1a; 性能优化的终极目标是什么压力测试压力测试的指标 性能优化的终极目标是什么 用户体验 产品设计(非技术) 系统性能(快&#xff0c;3秒不能更久了) 后端&#xff1a;RT,TPS,并发数 影响因素01&#xff1a;数据库读写&#xff0c;RPC&#xff…

详解 SpringMVC 的 HttpMessageConverter

文章目录 前言参考资料内容1、[RequestBody ](/RequestBody )2、RequestEntity3、[ResponseBody ](/ResponseBody )4、SpringMVC处理json5、SpringMVC处理ajax6、RestController注解7、ResponseEntity 推荐读物 《Spring Boot微服务实战(第2版)》内容简介目录 前言 HttpMessag…

Vue3:解决基地址不同 数据交互http与https跨域问题

配置公共管理的api文件和vue.config.js可以解决跨域问题。一个项目对接不同的基地址和接口同理。 api export default {//接口基地址Millia: process.env.NODE_ENV development ? location.protocol // location.host /milliaApi : http://xx.xxx.xxxx/index.php/,Milli…

墨者学院 内部文件上传系统漏洞分析溯源

打开web页面&#xff1a; 是个文件上传&#xff0c;先随便上传一个 txt 文件并抓包&#xff1a; 木马文件&#xff1a; <%eval request ("123")%>发现是个 IIS&#xff0c;并且给了文件的上传路径 upload&#xff0c;那就尝试上传 asp 一句话&#xff0c;直接…

C 练习实例10 打印楼梯,同时在楼梯上方打印两个笑脸。

题目&#xff1a;打印楼梯&#xff0c;同时在楼梯上方打印两个笑脸。 程序分析&#xff1a;用 ASCII 1 来输出笑脸&#xff1b;用i控制行&#xff0c;j来控制列&#xff0c;j根据i的变化来控制输出黑方格的个数。 如果出现乱码情况请参考【C 练习实例7】的解决方法。 实例 …