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

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

安装nacos

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

    properties 复制代码
    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代表着单机模式运行,非集群模式):

properties 复制代码
sh startup.sh -m standalone

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

properties 复制代码
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 复制代码
    <?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 复制代码
    <?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是为了后面的方便
相关推荐
77qqqiqi32 分钟前
解决忘记修改配置密码而无法连接nacos的问题
java·数据库·docker·微服务
Cyber4K1 小时前
MySQL--组从复制的详解及功能演练
运维·数据库·mysql·云原生
llm2 小时前
MediaPlayer介绍
java·架构
东风微鸣3 小时前
GitOps:云原生时代的革命性基础设施管理范式
docker·云原生·kubernetes·可观察性
Code季风4 小时前
API 网关与服务发现:实现动态路由与智能请求转发的原理揭秘
分布式·微服务
David爱编程4 小时前
Kubernetes NetworkPolicy 实践与策略误区
云原生·容器·kubernetes
FJW0208144 小时前
Mysql集成技术
linux·mysql·云原生
Ashlee_code4 小时前
关税战火中的技术方舟:新西兰证券交易所的破局之道 ——从15%关税冲击到跨塔斯曼结算联盟,解码下一代交易基础设施
java·python·算法·金融·架构·系统架构·区块链
你我约定有三6 小时前
分布式微服务--Nacos作为配置中心(一)
分布式·微服务·架构