nacos网关

news2024/11/17 6:46:33

目录

拉取docker镜像

环境配置

网关搭建架构

wemedia-gateway网关配置

依赖

启动类配置

 

网关yml配置

nacos配置中心配置网关

wdmedia服务配置

依赖

启动类配置

yml配置

 nacos配置

nacos中的配置共享

nacos配置

 wmedia模块中yml的配置


参考:https://blog.csdn.net/qq_14996421/article/details/124284209

拉取docker镜像

参考网址:https://zhuanlan.zhihu.com/p/626959761

拉取镜像  :docker pull nacos/nacos-server:v2.1.1

创建容器 : 
docker run --env PREFER_HOST_MODE=hostname --env MODE=standalone --env NACOS_AUTH_ENABLE=true -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server:v2.1.1

映射网址:http://192.168.74.128:8848/nacos

账号密码均为nacos

环境配置

网关搭建架构

wemedia-gateway网关配置

依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
        <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-config</artifactId>
        </dependency>

启动类配置

package com.heima.wemedia.gateway;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;


@SpringBootApplication
@EnableDiscoveryClient
public class WemediaGatewayAplication {

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

分析:

@EnableDiscoveryClient 是 Spring Cloud 中的一个注解,用于启用服务发现功能。服务发现是分布式系统中的一项关键功能,它允许服务实例能够注册自己并被其他服务发现。

 

网关yml配置

server:
  port: 51602
spring:
  application:
    name: leadnews-wemedia-gateway
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.74.128:8848
      config:
        server-addr: 192.168.74.128:8848
        file-extension: yml

分析:  

   discovery:
        server-addr: 192.168.74.128:8848
      config:
        server-addr: 192.168.74.128:8848

nacos.discovery.server-addr 属性指定 Nacos 服务注册中心的位置,也就是 Nacos 用来进行服务发现的地方。

nacos.config.server-addr 属性则指定了 Nacos 配置中心的位置,也就是 Nacos 用来存储应用配置的地方。

nacos配置中心配置网关

spring:
  cloud:
    gateway:
      globalcors:
        cors-configurations:
          '[/**]': # 匹配所有请求
            allowedOrigins: "*" #跨域处理 允许所有的域
            allowedMethods: # 支持的方法
              - GET
              - POST
              - PUT
              - DELETE
      routes:
        # 平台管理
        - id: wemedia
          uri: lb://leadnews-wemedia
          predicates:
            - Path=/wemedia/**
          filters:
            - StripPrefix= 1

分析:

  1. globalcors.cors-configurations['[/**]'] 定义了一条全局 CORS 规则,其中的 '[[//]]' 表示匹配所有请求。这条规则允许任何来源的请求(allowedOrigins 设置为 '*')并且支持四种 HTTP 方法(GET, POST, PUT 和 DELETE)。
  2. routes 是一个列表,定义了一系列的路由规则。每一条路由都有一个唯一的 id、uri 和一系列的断言和过滤器。
    • id: wemedia 表示该路由的 ID 名称。
    • uri: lb://leadnews-wemedia 指定该路由的目标 URI。这里的 "lb://" 是负载均衡的意思,表明该目标 URI 是一个服务实例的集群。
    • predicates: 列表定义了匹配路由规则的一系列条件。这里只有一条断言 'Path=/wemedia/**' ,它的意思是只有当请求的路径是以 "/wemedia" 开头的时,才会匹配到这个路由。
    • filters: 列表定义了对匹配到该路由的请求进行预处理和后处理的一些操作。这里只有一条过滤器 'StripPrefix= 1' ,它的意思是去掉请求路径前面的一个前缀,使得请求的实际路径比请求URI少一层路径。

总之,这段代码设置了Spring Cloud Gateway 的跨域规则,并定义了一条路由规则,将所有以 "/wemedia" 开头的请求转发到了 "leadnews-wemedia" 这个服务集群,并在转发之前删除掉请求路径的第一个前缀。

wdmedia服务配置

依赖

      <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-config</artifactId>
        </dependency>

启动类配置

package com.heima.wemedia;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableDiscoveryClient
@MapperScan("com.heima.wemedia.mapper")
@EnableFeignClients(basePackages = "com.heima.apis")
public class WemediaApplication {

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

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

yml配置

server:
  port: 51803
spring:
  application:
    name: leadnews-wemedia
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.74.128:8848
      config:
        server-addr: 192.168.74.128:8848
        file-extension: yml
        extension-configs:
          - data-id: lead-redis.yaml
            group: DEFAULT_GROUP
            refresh: true

 nacos配置

spring:
  kafka:
    bootstrap-servers: 192.168.74.128:9092
    producer:
      retries: 10
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/leadnews_wemedia?useSSL=false&useUnicode=true&characterEncoding=utf8
    username: root
    password: root
# 设置Mapper接口所对应的XML文件位置,如果你在Mapper接口中有自定义方法,需要进行该配置
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  # 设置别名包扫描路径,通过该属性可以给包中的类注册别名
  type-aliases-package: com.heima.model.user.pojos

minio:
  accessKey: minio
  secretKey: minio123
  bucket: leadnews
  endpoint: http://192.168.74.128:9000
  readPath: http://192.168.74.128:9000

在nacos配置中,可以配置这个服务需要的一些配置放在nacos配置中心中。

nacos中的配置共享

nacos配置

 wmedia模块中yml的配置

server:
  port: 51803
spring:
  application:
    name: leadnews-wemedia
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.74.128:8848
      config:
        server-addr: 192.168.74.128:8848
        file-extension: yml
        extension-configs:
          - data-id: lead-redis.yaml
            group: DEFAULT_GROUP
            refresh: true

分析

这段配置看起来是用于配置某个应用的配置中心的动态配置刷新(Dynamic Configuration Refresh)的一部分。这是典型的 Spring Cloud Config 的配置。

  • extension-configs: 这是一个配置项的列表,用于指定要加载的外部配置文件。

    • - data-id: lead-redis.yaml: 这里指定了一个配置文件的数据 ID,通常对应于配置中心中的一个配置文件。在这个例子中,是 lead-redis.yaml

    • group: DEFAULT_GROUP: 这可能是一个配置文件所属的分组,这样可以更好地组织和管理不同配置文件。

    • refresh: true: 这个标志表示配置文件是否支持动态刷新。当配置中心的配置发生变化时,带有这个标志的配置文件可以被动态地刷新,应用程序不需要重新启动即可应用新的配置。

总的来说,这段配置指定了一个或多个外部的配置文件,其中至少有一个支持动态刷新。这是一种在微服务架构中实现配置热加载的常见做法,允许你在不重启应用的情况下更新配置。

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

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

相关文章

【【SOC设计之 数据回路从 DMA到 FIFO再到BRAM 再到FIFO 再写回DMA】】

SOC设计之 数据回路从 DMA到 FIFO再到BRAM 再到FIFO 再写回DMA 基本没问题的回路设计 从 DMA出发将数据传递到 FIFO 再 写到 自定义的 RTL文件中 再写到 BRAM 再到 自定义的RTL文件 再到 FIFO 再写回DMA block design 的 设计连接 可以参考我上一个文件的设计 下面介绍两个c…

线性变换概论

线性变换 定义 设 V V V 和 W W W 都是在域 K K K上定义的向量空间&#xff0c; T : V → W T :V \rightarrow W T:V→W 对任二向量 x , y ∈ V x,y \in V x,y∈V,与任何标量 a ∈ K a \in K a∈K&#xff0c;满足&#xff1a; T ( x y ) T ( x ) T ( y ) T(xy)T(x)T(…

Zookeeper实战案例(1)

前置知识&#xff1a; Zookeeper学习笔记&#xff08;1&#xff09;—— 基础知识-CSDN博客 Zookeeper学习笔记&#xff08;2&#xff09;—— Zookeeper API简单操作-CSDN博客 Zookeeper 服务器动态上下线监听案例 需求分析 某分布式系统中&#xff0c;主节点可以有多台&am…

2023最新最全【内网渗透工具】零基础安装教程

1.1 简介 nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发&#xff0c;可支持任何tcp、udp上层协议&#xff08;访问内网网站、本地支付接口调试、ssh访问、远程桌面&#xff0c;内网dns解析等等……&#xff09;&#xff0c;此外还支持内网…

《洛谷深入浅出基础篇》 P5250 木材仓库————集合应用实例

上链接&#xff1a; P5250 【深基17.例5】木材仓库 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P5250上题干&#xff1a; 题目描述 博艾市有一个木材仓库&#xff0c;里面可以存储各种长度的木材&#xff0c;但是保证没有两个木材的长度是…

Spring Boot中使用Redis进行大数据缓存

Spring Boot中使用Redis进行大数据缓存 在Spring Boot中使用Redis进行大数据缓存是一种常见的做法&#xff0c;因为Redis是一种高性能的内存数据库&#xff0c;适用于缓存大量数据。以下是说明和示例代码&#xff0c;演示如何在Spring Boot项目中使用Redis进行大数据缓存。 步…

【C++初阶】STL详解(四)vector的模拟实现

本专栏内容为&#xff1a;C学习专栏&#xff0c;分为初阶和进阶两部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握C。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&…

【Kingbase FlySync】命令模式:部署双轨并行,并实现切换同步

【Kingbase FlySync】命令模式:安装部署同步软件&#xff0c;实现Oracle到KES实现同步 双轨并行方案说明一.准备工作二.环境说明三.目标实操(1).准备安装环境Orcle服务器(Oracle40)1.上传所有工具包2.操作系统配置a.增加flysync 用户、设置密码b.配置环境变量c.调整limits.conf…

【Leetcode合集】2342. 数位和相等数对的最大和

文章目录 2342. 数位和相等数对的最大和方案1方案2方案3方案4 2342. 数位和相等数对的最大和 2342. 数位和相等数对的最大和 代码仓库地址&#xff1a; https://github.com/slience-me/Leetcode 个人博客 &#xff1a;https://slienceme.xyz 给你一个下标从 0 开始的数组 nu…

单链表在线OJ题(详解+图解)

1.删除链表中等于给定值 val 的所有节点 本题的要求是输入一个val的整形值&#xff0c;若链表中节点存储的值与val相等&#xff0c;则删除这个节点&#xff0c;并最后返回这个删除节点后的链表&#xff0c;思路如下&#xff1a; 我们可以直接使用while循环&#xff0c;并且使用…

Python 如何实现职责链设计模式?什么是职责链设计模式?Python 职责链设计模式示例代码

什么是职责链&#xff08;Chain of Responsibility&#xff09;设计模式&#xff1f; 职责链&#xff08;Chain of Responsibility&#xff09;设计模式是一种行为型设计模式&#xff0c;旨在构建一个对象链&#xff0c;每个对象都有机会处理请求&#xff0c;并且可以将请求传…

基于stm32移植使用u8g2 库

前言 前面我已经写了如何使用stm32 使用软件IIC的方法驱动OLED&#xff0c;但是其实我们可以有更简单的使用方法&#xff0c;对于SSD1306 这款OLED 显示屏来说&#xff0c;其实已经有开源库可以直接使用了&#xff0c;我们只需要将对应的库移植过来&#xff0c;做一些简单的修改…

单片机课程设计——基于C51电子密码锁(源代码)

本设计是基于AT89C51单片机的电子密码锁设计&#xff0c;实现电子密码锁的基本功能。我们这里实现的是硬件仿真&#xff0c;关于软件仿真可以参考其他人的文章。 单片机课程设计--基于C51电子密码锁 效果展示 我们先来看效果展示&#xff0c;公主王子请看视频&#xff1a; 课…

【Spring总结】注解开发

本篇讲的内容主要是基于Spring v2.5的注解来完成bean的定义 之前都是使用纯配置的方式来定义的bean 文章目录 前言1. Spring v2.5 注解开发定义bean第一步&#xff1a;在需要定义的类上写上注解Component第二步&#xff1a;在Spring Config中定义扫描包第三步&#xff1a;主方法…

java springboot 在测试类中声明临时Bean对象

上文 java springboot在当前测试类中添加临时属性 不影响application和其他范围 中 我们讲了怎么在测试类中设置临时属性 但是 如果我们想设置临时的Bean呢&#xff1f; 其实做过几个项目的人都会理解 我们很多功能 需要一些第三方bean才能完成 那么 我们可能存在需要用第三方b…

图书管理系统(图文详解,附源码)

前言&#xff1a;本文旨在用面向对象的思想编程实现图书管理系统&#xff0c;功能包括增删查找&#xff0c;完整源码放在文末&#xff0c;大家有需自取 目录 一.整体框架 二.书籍和书架 书籍(Book) 书架(BookRack) 三.对书籍的相关操作 操作接口(IOperation) 新增图书(A…

项目点使用Redis作为缓存技术-自用

在spring boot项目中&#xff0c;使用缓存技术只需在项目中导入相关缓存技术的依赖包&#xff0c;并在启动类上使用EnableCaching开启缓存支持即可。 例如&#xff0c;使用Redis作为缓存技术&#xff0c;只需要导入Spring data Redis的maven坐标即可。 描述 使用Redis缓存高频数…

WSA子系统(一)

WSA子系统安装教程 Windows Subsystem for Android (WSA) 是微软推出的一项功能&#xff0c;它允许用户在 Windows 11 上运行 Android 应用程序。通过在 Windows 11 上引入 WSA&#xff0c;用户可以在其 PC 上轻松运行 Android 应用程序&#xff0c;从而扩展了用户的应用程序选…

RobotFramework之用例执行时添加命令行参数(十三)

学习目录 引言 标签tag 设置变量 随机执行顺序 设置监听器 输出日志目录和文件 引言 Robot Framework 提供了许多命令行选项&#xff0c;可用于控制测试用例的执行方式以及生成的输出。本节介绍一些常用的选项语法。 标签tag 之前文章我们介绍过&#xff0c;在测试套件…