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

构建项目父工程 添加公共核心模块 安装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是为了后面的方便
相关推荐
盛派网络小助手2 小时前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁
开发语言·人工智能·后端·架构·c#
aherhuo5 小时前
kubevirt网络
linux·云原生·容器·kubernetes
catoop5 小时前
K8s 无头服务(Headless Service)
云原生·容器·kubernetes
小峰编程6 小时前
独一无二,万字详谈——Linux之文件管理
linux·运维·服务器·云原生·云计算·ai原生
快乐非自愿7 小时前
分布式系统架构2:服务发现
架构·服务发现
小马爱打代码7 小时前
云原生服务网格Istio实战
云原生
2401_854391087 小时前
SSM 架构中 JAVA 网络直播带货查询系统设计与 JSP 有效实现方法
java·开发语言·架构
264玫瑰资源库7 小时前
从零开始C++棋牌游戏开发之第二篇:初识 C++ 游戏开发的基本架构
开发语言·c++·架构
神一样的老师7 小时前
面向高精度网络的时间同步安全管理架构
网络·安全·架构
2401_857026237 小时前
基于 SSM 架构的 JAVA 网络直播带货查询系统设计与 JSP 实践成果
java·开发语言·架构