zoukankan      html  css  js  c++  java
  • Java Spring Cloud 实战之如何使用Nacos和网关中心的创建?80%的人都不会

    【Java Spring Cloud 实战之路】- 使用Nacos和网关中心的创建

    0. 前言

    在上一节中,我们创建了一个项目架构,后续的项目都会在那个架构上做补充。

    1. Nacos

    1.1 简介

    Nacos可以用来发现、配置和管理微服务。提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。

    Nacos用来更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以”服务“为中心的现代应用构架(例如微服务范式、云原生范式)的服务基础设置。

    也就是通常我们所说的配置中心和服务发现中心。

    nacos_landscape.png

    注意:光理论是不够的。在此免费赠送5大JAVA架构项目实战教程及大厂面试题库,有兴趣的可以进裙 783802103获取,没基础勿进哦!
    1.2 搭建和启动

    Nacos目前版本不支持以Spring boot的形式创建服务,必须以一个Java包的形式单独运行或者以Docker服务的形式运行,我们大概讲解一下本地运行。

    下载安装包:

    curl https://github.com/alibaba/nacos/releases/download/1.2.1/nacos-server-1.2.1.zip
    unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
    cd nacos/bin
    

    使用源码安装:

    git clone https://github.com/alibaba/nacos.git
    cd nacos/
    mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  
    ls -al distribution/target/
    
    // change the $version to your actual path
    cd distribution/target/nacos-server-$version/nacos/bin
    

    启动:

    Linux/Unix/Mac

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

    sh startup.sh -m standalone
    

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

    bash startup.sh -m standalone
    

    Windows

    启动命令:

    cmd startup.cmd
    

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

    2. Spring Cloud Gateway

    整个的网关服务,我们采用的Spring Cloud Gateway。在Spring Cloud微服务里,整个系统只对外公开了网关,其他的服务是对外不可见的。所以需要设置一个让我们可以用的网关服务。

    在 nature/manager下创建一个gateway目录,并添加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">
        <parent>
            <groupId>club.attachie</groupId>
            <artifactId>manager</artifactId>
            <version>${revision}</version>
        </parent>
    
        <modelVersion>4.0.0</modelVersion>
        <groupId>club.attachie</groupId>
        <artifactId>gateway</artifactId>
        <packaging>jar</packaging>
        <version>${revision}</version>
    
    </project>
    

    在manager下注册该模块:

    <modules>
        <module>gateway</module>
    </modules>
    

    2.1 添加 Gateway

    创建完成项目后,需要添加依赖包:

    <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-gateway -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-gateway</artifactId>
    </dependency>
    

    在gateway项目中,创建如下目录:

    ├── pom.xml
    └── src
        └── main
            ├── java
            │   └── club
            │       └── attachie
            │           └── gateway
            │               └── SpringGatewayApplication.java
            └── resources
                └── bootstrap.yml
    
    

    创建 SpringGateAppliction.java文件,代码如下:

    package club.attachie.gateway;
    
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    import org.springframework.cloud.context.config.annotation.RefreshScope;
    
    /**
     * @author attaching
     */
    @SpringBootApplication
    @EnableDiscoveryClient
    @RefreshScope
    public class SpringGatewayApplication {
        public static void main(String[] args) {
            SpringApplication.run(SpringGatewayApplication.class, args);
        }
    }
    

    在resource目录下创建 bootstrap.yml:

    spring:
      application:
        name: gateway
    

    yml 是Spring 的一种配置文件格式,其中名称有application和bootstrap,bootstrap比application先加载。

    2.2 添加 nacos

    先在 nature/pom.xml 添加 nacos 版本号:

    <nacos.version>2.2.1.RELEASE</nacos.version>
    

    然后在dependencyManagement > dependencies 下添加 nacos相关依赖管理:

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>${nacos.version}</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-alibaba-starters</artifactId>
        <version>${nacos.version}</version>
    </dependency>
    

    在Gateway项目中pom.xml 添加:

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    

    然后回过头来,在bootstrap里设置:

    spring:
      application:
        name: gateway
    
      cloud:
        nacos:
          config:
            server-addr: 127.0.0.1:8848
    

    3 总结

    nacos的配置和Gateway应用的介绍就到这里为止了,因为个人并未对相关技术进行过多深入的研究,所以目前只能做到这些。后续研究深入了,会在这个系列中补齐的。
    最后注意:光理论是不够的。在此免费赠送5大JAVA架构项目实战教程及大厂面试题库,有兴趣的可以进裙 783802103获取,没基础勿进哦!

    本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

  • 相关阅读:
    Linux环境定时备份mysql数据库
    idea以DEBUG方式启动项目卡住,但是不报错
    Linux查看防火墙,开放端口
    element动态添加删除表格的行数
    触发器编写,执行插入或update分别执行不同sql
    vue数组判断数值,遍历,过滤
    将某文件夹下的文件压缩成zip
    转载:win10专业版取消自动更新
    IIS启动应用程序池报错"服务无法在此时接受控制信息
    IIS7 设置网站默认主页(首页)
  • 原文地址:https://www.cnblogs.com/chengxuyuanaa/p/13042908.html
Copyright © 2011-2022 走看看