nacos网关

目录

拉取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-gatewaycloud:nacos:discovery:server-addr: 192.168.74.128:8848config:server-addr: 192.168.74.128:8848file-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- DELETEroutes:# 平台管理- id: wemediauri: lb://leadnews-wemediapredicates:- 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);}@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
}

yml配置

server:port: 51803
spring:application:name: leadnews-wemediacloud:nacos:discovery:server-addr: 192.168.74.128:8848config:server-addr: 192.168.74.128:8848file-extension: ymlextension-configs:- data-id: lead-redis.yamlgroup: DEFAULT_GROUPrefresh: true

 nacos配置

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

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

nacos中的配置共享

nacos配置

 wmedia模块中yml的配置

server:port: 51803
spring:application:name: leadnews-wemediacloud:nacos:discovery:server-addr: 192.168.74.128:8848config:server-addr: 192.168.74.128:8848file-extension: ymlextension-configs:- data-id: lead-redis.yamlgroup: DEFAULT_GROUPrefresh: 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.hqwc.cn/news/194300.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spark 平障录

Profile Profile 是最重要的第一环。 利用好 spark UI 和 yarn container log分析业务代码&#xff0c;对其计算代价进行预判建设基准&#xff0c;进行对比&#xff0c;比如application id 进行对比&#xff0c;精确到 job DAG 环节 充分利用 UI Stage 页面 页头 summary&…

element-plus 表格-合并单元格

利用表格:span-method"" 方法实现合并单元格 合并前 合并后 重点代码generateIndexGroups &#xff0c;找到合并的单元格的index号 代码实现如下 <template><h2>实现表格的合并</h2><div><!-- :span-method"arraySpanMethod&quo…

项目出错汇总

java: 错误: 无效的源发行版&#xff1a;15 java: 无效的目标发行版: 17 四步加上这个,改一下

【diffuser系列】ControlNet

ControlNet: TL;DRControl TypeStableDiffusionControlNetPipeline1. Canny ControlNet1.1 模型与数据加载1.2 模型推理1.3 DreamBooth微调 2. Pose ControlNet2.1 数据和模型加载2.2 模型推理 ControlNet: TL;DR ControlNet 是在 Lvmin Zhang 和 Maneesh Agrawala 的 Adding …

gd32关于IO引脚配置的一些问题

一、gd32f103的PA15问题 1、 #define GPIO_SWJ_NONJTRST_REMAP ((uint32_t)0x00300100U) /*!< full SWJ(JTAG-DP SW-DP),but without NJTRST */ #define GPIO_SWJ_SWDPENABLE_REMAP ((uint32_t)0x00300200U) /*!< JTAG-DP disabled and SW-DP enab…

c语言:解决数组有关的删除,排序,合并等问题。

题目1&#xff1a;判断数组是否有序&#xff08;升序或者降序&#xff09; 思路和代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() {int a 0;scanf("%d", &a);int arr[50];int flag1 0;//是降序int flag2 0;//是升序…

Zabbix实现故障自愈

一、简介 Zabbix agent 可以运行被动检查和主动检查。 在被动检查模式中 agent 应答数据请求。Zabbix server&#xff08;或 proxy&#xff09;询求数据&#xff0c;例如 CPU load&#xff0c;然后 Zabbix agent 返还结果。 主动检查处理过程将相对复杂。Agent 必须首先从 Z…

Web之JavaScript(jQuery)笔记

Web之HTML、CSS、JavaScript 三、JavaScriptJS调试变量自定义函数数据类型及转换运算符优先级内置函数数组事件DOM(Document Object Model 文档对象模型)jQuery Web之HTML笔记 Web之CSS笔记 三、JavaScript JavaScript&#xff08;简称“JS”&#xff09;是一种轻量级的面向对…

关于缓存和数据库一致性问题的深入研究

如何保证缓存和数据库一致性&#xff0c;这是一个老生常谈的话题了。 但很多人对这个问题&#xff0c;依旧有很多疑惑&#xff1a; 到底是更新缓存还是删缓存&#xff1f;到底选择先更新数据库&#xff0c;再删除缓存&#xff0c;还是先删除缓存&#xff0c;再更新数据库&…

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

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

LeetCode(29)三数之和【双指针】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 三数之和 1.题目 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复…