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

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

nacos集群

参考:19-Nacos-服务实例的权重设置_哔哩哔哩_bilibili

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

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

相关文章

springBoot中starter

springBoot项目中引入starter 项目引入xxljob&#xff0c;仅需要导入对应的starter包&#xff0c;即可进行快速开发 <dependency><groupId>com.ydl</groupId><artifactId>xxl-job-spring-boot-starter</artifactId><version>0.0.1-SNAPS…

深度学习知识点

深度学习过程 data [] for i,d in enumerate(data):image,label d image,label image.cuda(),label.cuda()img net(image)optimizer.zero_grad()#需要将梯度信息清零&#xff0c;因为梯度计算是按照batch分批次计算的&#xff0c;如果这一批batch没清零&#xff0c;会影响…

P1141 01迷宫(dfs+染色联通块)

染色联通块&#xff1a; 一个格联通的所有格 每个对应的最大可联通格子的个数均相同 分析&#xff1a; 1.只需要计算每个块里的元素个数 2.元素标记对应某个块 3.查找元素时&#xff1a; 由 &#xff08;1&#xff09;元素坐标-> &#xff08;2&#xff09;查找…

庖丁解牛:NIO核心概念与机制详解 07 _ 字符集

文章目录 Pre概述编码/解码处理文本的正确方式示例程序Code Pre 庖丁解牛&#xff1a;NIO核心概念与机制详解 01 庖丁解牛&#xff1a;NIO核心概念与机制详解 02 _ 缓冲区的细节实现 庖丁解牛&#xff1a;NIO核心概念与机制详解 03 _ 缓冲区分配、包装和分片 庖丁解牛&…

验证回文串

题目链接 验证回文串 题目描述 注意点 1 < s.length < 200000s 仅由可打印的 ASCII 字符组成将所有大写字符转换为小写字符忽略所有非字母数字字符 解答思路 首先将大写字母转为小写字母&#xff0c;再双指针分别从首尾判断对应位置的字符是否相同&#xff0c;注意当…

基于springboot实现应急救援物资管理系统项目【项目源码】计算机毕业设计

基于springboot实现应急救援物资管理系统演示 JAVA简介 JavaScript是一种网络脚本语言&#xff0c;广泛运用于web应用开发&#xff0c;可以用来添加网页的格式动态效果&#xff0c;该语言不用进行预编译就直接运行&#xff0c;可以直接嵌入HTML语言中&#xff0c;写成js语言&a…

「MobileNet V3」70 个犬种的图片分类

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

每日一题 2216. 美化数组的最少删除数(中等,贪心)

贪心&#xff0c;一开始可能会觉得如果删除前面一个相等的元素时&#xff0c;会导致后面的元素前移&#xff0c;造成产生更多的相等的元素对的情况但是在遍历过程中至少要在相等元素对中删除一个&#xff0c;也可以同时删除两个使得后面的元素奇偶关系不变&#xff0c;但是显然…

【C++上层应用】5. 文件和流

文章目录 【 1. 打开文件 】1.1 open 函数1.2 open 多种模式的结合使用 【 2. 关闭文件 】【 3. 写入 & 读取文件 】【 4. 文件位置指针 】 和 iostream 库中的 cin 标准输入流和 cout 标准输出流类似&#xff0c;C中另一个库 fstream 也存在文件的读取流和标准写入流。fst…

可视化大屏时代的到来:智慧城市管理的新思路

随着科技的不断发展&#xff0c;智能芯片作为一种新型的电子元件&#xff0c;被广泛应用于各个领域&#xff0c;其中智慧芯片可视化大屏是一种重要的应用形式。 一、智慧芯片可视化大屏的优势 智慧芯片可视化大屏是一种将智能芯片与大屏幕显示技术相结合的产品&#xff0c;山海…

从算法到应用:直播美颜滤镜SDK的全面解读与评测

直播美颜滤镜SDK技术逐渐成为直播平台不可或缺的一环。本文将对直播美颜滤镜SDK进行全面解读&#xff0c;深入探讨其算法原理和应用效果&#xff0c;并通过评测分析展现其在直播领域的实际价值。 一、算法原理解读 直播美颜滤镜的背后是复杂而精密的算法&#xff0c;旨在提升…

React结合antd5实现整个表格编辑

通过react hooks 结合antd的table实现整个表格新增编辑。 引入组件依赖 import React, { useState } from react; import { Table, InputNumber, Button, Space, Input } from antd;定义数据 const originData [{ key: 1, name: 白银会员, value: 0, equity: 0, reward: 0…

头歌 MySQL数据库 - 初识MySQL

本章内容是为了完成老师布置的作业&#xff0c;同时也是为了以后考试的时候方便复习。 数据库部分一条一条的写&#xff0c;可鼠标手动粘贴&#xff0c;除特定命令外未分大小写。 第1关&#xff1a;创建数据库 在操作数据库之前&#xff0c;需要连接它&#xff0c;输入命令&a…

怎么让NetCore接口支持Json参数

项目&#xff1a;NetCore Web API 接口支持Json参数需要安装Newtonsoft.Json.Linq和Microsoft.AspNetCore.Mvc.NewtonsoftJson Program代码 //支持json需要安装Microsoft.AspNetCore.Mvc.NewtonsoftJson using Newtonsoft.Json.Serialization;var builder WebApplication.Cr…

【C/PTA】函数专项练习(一)

本文结合PTA专项练习带领读者掌握函数&#xff0c;刷题为主注释为辅&#xff0c;在代码中理解思路&#xff0c;其它不做过多叙述。 目录 6-1 输出星期名6-2 三整数最大值6-3 数据排序6-4 多项式求值 6-1 输出星期名 请编写函数&#xff0c;根据星期数输出对应的星期名。 函数原…

【LeetCode刷题】--12.整数转罗马数字

12.整数转罗马数字 方法&#xff1a;模拟 分析罗马数字的规则是&#xff1a;对于罗马数字从左到右的每一位&#xff0c;选择尽可能大的符号值 根据罗马数字的唯一表示法&#xff0c;为了表示一个给定的整数num&#xff0c;寻找不超过num的最大符号值&#xff0c;将num减去该符…

CyNix

CyNix 一、主机发现和端口扫描 主机发现&#xff0c;靶机地址192.168.80.146 arp-scan -l端口扫描&#xff0c;只开放了80和6688端口 nmap -A -p- -sV 192.168.80.146二、信息收集 访问80端口 路径扫描 gobuster dir -u http://192.168.80.146/ -w /usr/share/wordlists/dir…

C++之内建函数对象

C之内建函数对象 算术仿函数 #include<iostream> using namespace std; #include<functional>//内建函数对象头文件 //内建函数对象 算术仿函数void test() {// negate 一元仿函数 取反仿函数negate<int>n;cout << n(100) << endl;//plus 二元仿…

软件测试/人工智能丨互联网大厂内的人工智能测试

互联网公司在人工智能&#xff08;AI&#xff09;测试方面一直处于不断发展和演变的状态。互联网公司人工智能测试目前趋势&#xff1a; 自动化测试的重要性增加&#xff1a; 随着人工智能应用的不断增多&#xff0c;互联网公司越来越意识到自动化测试的重要性。自动化测试框架…

可用于短期风速预测及光伏预测的LSTM/ELM预测程序

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 程序内容&#xff1a; 该程序是预测类的基础性代码&#xff0c;程序对河北某地区的气象数据进行详细统计&#xff0c;程序最终得到pm2.5的预测结果&#xff0c;通过更改数据很容易得到风速预测结果。程序主要…