Gateway结合Nacos使用!!!

一、本地结合使用

1. 引入依赖

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

2. bootstarp.yml配置文件

如果Nacos中配置使用yaml格式,一定要在这里配置file-extension:yaml

spring:
  application:
    name: gateway-app
  cloud:
    nacos:
      config:
        server-addr: 192.168.11.91:8848
        file-extension: yaml
      discovery:
        server-addr: 192.168.11.91:8848

 4.Nacos配置

spring:
  cloud:
    gateway:
      routes:
        - id: user-service-app
#跳转的路径
          uri: lb://user-service-app
#配置断言,你访问路径时必须携带nacos-a这一目录
          predicates:
            - Path=/user-service-app/**
#过滤器,StripPrefix是移除前缀nacos-a;LogTime自定义的局部过滤器
          filters:
            - StripPrefix=1
        - id: order-service-app
          #跳转的路径
          uri: lb://order-service-app
          #配置断言,你访问路径时必须携带nacos-a这一目录
          predicates:
            - Path=/order-service-app/**
          #过滤器,StripPrefix是移除前缀nacos-a;LogTime自定义的局部过滤器
          filters:
            - StripPrefix=1
logging:
  level:
    root: error
    com.by: debug

5. 启动类加@EnableDiscoveryClient注解

@SpringBootApplication
@EnableDiscoveryClient //原则上启动类需要添加这个注解,Nacos做了一个优化,可以不用这个注解
//1.应用启动后,会将自己的基本信息(如服务名、IP 地址、端口等)注册到服务注册中心。 - 服务注册
//2.可以从服务注册中心获取到所有服务的实例列表,从而实现动态寻址和负载均衡。- 服务发现

public class GatewayApp {

}

6. 验证

 二、将应用发送到docker进行部署使用

         1、将你的项目进行打包,并编写dockerfile文件

 dockerfile文件:你只需要改变打包的架包的名称即可

FROM openjdk:8
WORKDIR /opt/
COPY target/gateway-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT [ "java","-jar","app.jar" ]

   2、第一步先将你的项目发推送到gitee上

   3、建立流水线

前提:你需要建立一个镜像仓库:

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台欢迎登录阿里云,全球领先的云计算及人工智能科技公司,阿里云为200多个国家和地区的企业、开发者和政府机构提供云计算基础服务及解决方案。阿里云云计算、安全、大数据、人工智能、企业应用、物联网等云计算服务。icon-default.png?t=N7T8https://cr.console.aliyun.com/repository/cn-beijing/wsm-app/order-service-app/details

可以参考这个博客:或者我接下来写的

CICD流水线(发布后端代码)!!!_后端cicd配置-CSDN博客文章浏览阅读259次。1、Docker部署。_后端cicd配置https://blog.csdn.net/qq_64847107/article/details/136950302?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171431131516800211526556%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171431131516800211526556&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-136950302-null-null.nonecase&utm_term=cicd&spm=1018.2226.3001.4450

         1)进入到推送到gitee的源码中,建立流水线

        2)java构建镜像

3)发送消息获取镜像地址和镜像名称,通过钉钉发送信息

curl -X POST \
     'https://oapi.dingtalk.com/robot/send?access_token=你的key' \
     -H 'Content-Type: application/json' \
     -d '{"msgtype":"text","text":{"content":"镜像:'${image}'"}}'

4、发布到docker中

 

 发布多个:

 docker run -d --name=gateway01 -p 3111:8080 registry.cn-beijing.aliyuncs.com/wsm-app/gateway-app:2024-04-28-20-35-35


docker run -d --name=gateway02 -p 3222:8080 registry.cn-beijing.aliyuncs.com/wsm-app/gateway-app:2024-04-28-20-35-35

5、配置nginx,调用服务

将default.conf文件进行挂载:

upstream gateway-app{
    server 172.17.0.4:8080;
    server 172.17.0.3:8080;
}
server {
    listen 80;
    listen  [::]:80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
       add_header 'Access-Control-Allow-Origin' '*';
       proxy_pass http://gateway-app ;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

挂载:

docker run -d --name=nginx01 -v /opt/nginx/default.conf:/etc/nginx/conf.d/default.conf  -p 3000:80 nginx

6、测试

三、 如何做负载均衡

思路:将你的某个应用通过CICD发布后,在本地起一个应用,然后在docker中启一个应用,就可以做负载均衡了。

1、CICD发布

通过CICD发布就不再写了,和上边的基本一致,只需要修改dockerfile文件,和一些发布的一些路径。

2、发布到docker中

通过docker下载镜像和上边的很类似,可以参考,拉去镜像时需要注意端口。

3、本地idea启动一个应用,在docker中启动一个,通过断点的方式进行轮询调用,你就会发现时负载均衡的。

具体可参考:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu上的screenfetch

2024年4月28日&#xff0c;周日下午 这些文本是由一个叫做 “screenfetch” 的命令生成的&#xff0c;它会显示一些系统和用户信息&#xff0c;包括操作系统、内核版本、系统运行时间、安装的软件包数量、使用的Shell、分辨率、桌面环境、窗口管理器、主题、图标主题、字体、CP…

Linux(ubuntu)—— 用户管理user 用户组group

一、用户 1.1、查看所有用户 cat /etc/passwd 1.2、新增用户 useradd 命令&#xff0c;我这里用的是2.4的命令。 然后&#xff0c;需要设置密码 passwd student 只有root用户才能用passwd命令设置其他用户的密码&#xff0c;普通用户只能够设置自己的密码 二、组 2.1查看…

分布式任务调度平台XXL-JOB

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Quartz作为开源作业调度中的佼佼者,是作业调度的首选。但是集群环境中Qu…

汇川AM400PLC和禾川X3E伺服EtherCAT通信

1、汇川H5UPLC和X3E伺服EtherCAT总线控制 汇川H5U PLC通过EtherCAT总线控制SV660N和X3E伺服_伺服驱动器 ethercat csdn 汇川-CSDN博客文章浏览阅读1.7w次,点赞3次,收藏37次。首先我们看下系统硬件和软件配置:汇川H5U PLC的编程软件是:AutoShop V4.6.3.0 硬件:PLC H5U-161…

什么副业兼职适合小白?1小时收益40+,1条作品只需5分钟

今天&#xff0c;我要向大家推荐一个当前非常受欢迎的项目&#xff0c;这个项目来自一位忠实的粉丝朋友的推荐。他正是依靠这个项目实现了可观的收益。 这位兄弟通过参与“词典搬砖”项目&#xff0c;已经成功变现超过一万元&#xff0c;而且这笔收入还是在睡眠中获得的&#…

踏上R语言之旅:解锁数据世界的神秘密码(五)

线性与非线性模型及R使用 文章目录 线性与非线性模型及R使用一、数据的分类与模型选择1.变量的取值类型 二、广义线性模型广义线性模型概述Logistic模型 总结 一、数据的分类与模型选择 1.变量的取值类型 因变量记为y&#xff0c;解释变量记为x1&#xff0c;x2,… 因变量y一般…

77、贪心-买卖股票的最佳时机

思路 具体会导致全局最优&#xff0c;这里就可以使用贪心算法。方式如下&#xff1a; 遍历每一位元素找出当前元素最佳卖出是收益是多少。然后依次获取最大值&#xff0c;就是全局最大值。 这里可以做一个辅助数组&#xff1a;右侧最大数组&#xff0c;求右侧最大数组就要从…

ChatGPT4.0知识问答、DALL-E生成AI图片、Code Copilot辅助编程,打开新世界的大门

目录 1、DALL-E 文字转图片 在线AI修改2、Write For Me3、Code Copilot 目前最强的AI编程大模型4、Diagrams: Show Me5、Instant Website [Multipage] 网站合成神器6、AskYourPDF Research Assistant 无限PDF7、Diagrams & Data: Research, Analyze, Visualize 精读Excel …

WPF之border标签边框控件、设置弧度、图片

border标签在WPF中承担着边框的角色又称之为边框标签&#xff0c;使用嵌套的方法去给一些标签添加边框&#xff0c;border标签包裹目标标签(border不能有多个子元素)。一般在给标签添加弧度时可以使用border。 常用属性 CornerRadius边框拐角的弧度&#xff0c;当宽高是一样的…

设计模式之监听器模式ListenerPattern(三)

一、介绍 监听器模式是一种软件设计模式&#xff0c;在对象的状态发生改变时&#xff0c;允许依赖它的其他对象获得通知。在Java中&#xff0c;可以使用接口和回调机制来实现监听器模式。 二、代码实例 1、事件Event类 package com.xu.demo.listener;// 事件类 public class…

多目标应用:MSSA多目标樽海鞘优化算法求解无人机三维路径规划(MATLAB代码)

一、无人机多目标优化模型 无人机三维路径规划是无人机在执行任务过程中的非常关键的环节&#xff0c;无人机三维路径规划的主要目的是在满足任务需求和自主飞行约束的基础上&#xff0c;计算出发点和目标点之间的最佳航路。 1.1路径成本 无人机三维路径规划的首要目标是寻找…

Maven3.9.6下载安装教程

(/≧▽≦)/~┴┴ 嗨~我叫小奥 ✨✨✨ &#x1f440;&#x1f440;&#x1f440; 个人博客&#xff1a;小奥的博客 &#x1f44d;&#x1f44d;&#x1f44d;&#xff1a;个人CSDN ⭐️⭐️⭐️&#xff1a;Github传送门 &#x1f379; 本人24应届生一枚&#xff0c;技术和水平有…

快速了解Django:核心概念解析与实践指南

title: 快速了解Django&#xff1a;核心概念解析与实践指南 date: 2024/5/1 20:31:41 updated: 2024/5/1 20:31:41 categories: 后端开发 tags: Django核心路由系统视图系统ORM管理中间件Web框架登录装饰器 第一章&#xff1a;Django简介 背景和发展历程&#xff1a; Djan…

B站广告投放开户的基本费用?

哔哩哔哩&#xff08;B站&#xff09;作为国内领先的年轻人文化社区与视频平台&#xff0c;凭借其独特的文化氛围和庞大的Z世代用户基础&#xff0c;成为品牌营销不可忽视的战场。对于意欲在这片沃土上播种品牌影响力的商家而言&#xff0c;深入理解B站广告投放的开户流程、费用…

cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library

pip install cx_Oracleimport cx_Oracle 再导入该模块进行数据库连接的时候报错 这个错误表明您的Python环境是64位的&#xff0c;但是您尝试使用的Oracle客户端库&#xff08;oci.dll&#xff09;是32位的 根据官方给出的文档进行查看 cx_Oracle 8 Installation — cx_Ora…

正则化手册:探索改进机器学习模型功能的实用技巧

书籍&#xff1a;The Regularization Cookbook&#xff1a;Explore practical recipes to improve the functionality of your ML models 作者&#xff1a;Vincent Vandenbussche 出版&#xff1a;Packt Publishing 书籍下载-《正则化手册&#xff1a;探索改进机器学习模型功…

密码学python库PBC安装使用

初始化 使用环境云服务器&#xff08;移动云可以免费使用一个月&#xff09; 选择ubuntu18.04-64位 第一次进入linux命令行之后是没有界面显示的&#xff0c;需要在命令行下载。 这里按照其他云平台操作即可&#xff1a;Ubuntu18.04 首次使用配置教程(图形界面安装) 记录好登录…

使用Python及R语言绘制简易数据分析报告

Pytohn实现 在python中有很多包可以实现绘制数据分析报告的功能&#xff0c;推荐两个较为方便的包&#xff1a;pandas-profiling 和 sweetviz 。 使用 pandas-profiling 包&#xff08;功能全面&#xff09; 这个包的个别依赖包与机器学习的 sklearn 包的依赖包存在版本冲突&a…

RAG 的是与非、Rewrite 和 Rerank

有时候,我觉得人类还真是种擅长画地为牢的动物,因为突然发现,当人们以文化/理念的名义形成团体/圈子的时候,其结局都不可避免地走向了筛选和区分的道路。或许,大家都不约而同地笃信,在成年人的世界里,那条不成文的社交潜规则——“只筛选不教育,只选择不改变”。与千百…

2024五一数学建模C题Python代码+结果表数据教学

2024五一数学建模竞赛&#xff08;五一赛&#xff09;C题保姆级分析完整思路代码数据教学 C题 煤矿深部开采冲击地压危险预测 第一问 导入数据 以下仅展示部分&#xff0c;完整版看文末的文章 import numpy as np import pandas as pd import matplotlib.pyplot as plt imp…