Nacos安装部署及整合GateWay

文章目录

  • 一、安装Nacos
    • 1、Windows安装启动
    • 2、Linux安装启动
  • 二、引入依赖
  • 二、配置文件
  • 三、启动类增加注解


一、安装Nacos

Nacos官方下载地址
Nacos码云下载地址(更快)
1.新建数据库nacos_config
2.在数据库中运行解压目录下的/nacos/conf/nacos-mysql.sql
3.在/nacos/conf/application.properties增加数据库配置信息

#数据库配置
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=UTC
db.user=root
db.password=root

mysql高版本需要在URL上加入时区例:serverTimezone=UTC

1、Windows安装启动

下载zip版本

修改\nacos\bin\startup.cmd

将set MODE="cluster"改为set MODE=“standalone”(默认集群,改为单机)


2、Linux安装启动

下载tar版本
rz命令上传到服务器

yum安装命令
yum -y install lrzsz

解压命令
tar -xvf nacos-server-1.4.3.tar.gz

Linux启动nacos单机模式命令
进入/nacos/bin目录
sh startup.sh -m standalone


访问http://127.0.0.1:8848/nacos/index.html# 默认账号密码都是:nacos

如在Linux启动成功后无法访问检查端口是否开放

检查端口是否开放:
firewall-cmd --query-port=8848/tcp

添加指定需要开放的端口:
firewall-cmd --add-port=8848/tcp --permanent

刷新端口
firewall-cmd --query-port=8848/tcp


二、引入依赖

 <properties>
        <java.version>1.8java.version>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
        <spring-boot.version>2.6.4spring-boot.version>
        <spring-cloud-alibaba.version>2.2.2.RELEASEspring-cloud-alibaba.version>
        <spring-cloud.version>2021.0.1spring-cloud.version>
    properties>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloudgroupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
            <version>2021.1version>
        dependency>

        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-gatewayartifactId>
            <version>3.1.1version>
        dependency>
        
        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-loadbalancerartifactId>
        dependency>
       dependencies>
        
      <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloudgroupId>
                <artifactId>spring-cloud-dependenciesartifactId>
                <version>${spring-cloud.version}version>
                <type>pomtype>
                <scope>importscope>
            dependency>
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-dependenciesartifactId>
                <version>${spring-boot.version}version>
                <type>pomtype>
                <scope>importscope>
            dependency>
            <dependency>
                <groupId>com.alibaba.cloudgroupId>
                <artifactId>spring-cloud-alibaba-dependenciesartifactId>
                <version>${spring-cloud-alibaba.version}version>
                <type>pomtype>
                <scope>importscope>
            dependency>
        dependencies>
    dependencyManagement>

高版本不引入spring-cloud-starter-loadbalancer会导致503错误
Spring Cloud与Spring Boot对应版本速查(JSON格式)


二、配置文件

spring:
  application:
    name: hld-gateway-service
    #不写spring.application.name属性会导致无法注册到nacos
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848 #将该地址的Nacos服务器完成 微服务的注册
        heart-beat-interval: 30 #30S发送一次心跳
        heart-beat-timeout: 90 #90S 如果没发送心跳成功,就自动下线
        weight: 1 #设置实例权重,权重越高,处理服务能力越强
        group: hld #微服务分组
    gateway:
      routes:
        - id: account_route
          uri: lb://hld-account-service #lb == loadbalance 负载均衡  hld-account-service注册到nacos页面上的微服务名称
          predicates:
           - Path=/account-service/**
      discovery:
        locator:
          lower-case-service-id: true #将所有微服务名称,使用小写名称定义
          enabled: true #开启从注册中心定位路由服务
      globalcors: #跨域设置
        cors-configurations:
          '[/**]': #针对所有请求
            allow-credentials: true # 允许携带认证信息
            #低版本为:allowed-origins: "*" # 允许跨域的源(网站域名/ip),设置*为全部
            allowedOriginPatterns: "*" # 允许跨域的源(网站域名/ip),设置*为全部
            allowed-headers: "*" # 允许跨域请求里的head字段,设置*为全部
            allowed-methods: "*" # 允许跨域的method,默认为GET和OPTIONS,设置*为全部
            max-age: 3600 # 跨域允许的有效期(1个小时)
            exposed-headers: #允许response暴露的head信息
              Cache-Control
              Content-Language
              Token
              Authentication
server:
  port: 8080

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

三、启动类增加注解

@EnableDiscoveryClient

@SpringBootApplication
@EnableDiscoveryClient
public class HldGatewayServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(HldGatewayServiceApplication.class, args);
    }

}

你可能感兴趣的:(微服务,java,spring,cloud,gateway)