Gateway结合Nacos使用!!!

news/2024/5/18 16:55:16

一、本地结合使用

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-appcloud:nacos:config:server-addr: 192.168.11.91:8848file-extension: yamldiscovery: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: errorcom.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-35docker 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中启动一个,通过断点的方式进行轮询调用,你就会发现时负载均衡的。

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


http://www.mrgr.cn/p/52201501

相关文章

内联函数、引用、汇编

内联函数内联函数是一种特殊的 C++ 函数,编译器会将它的代码直接插入到调用它的位置,而不是像普通函数那样进行函数调用。这可以减少函数调用的开销,从而提高性能。#include <iostream> using namespace std;int func(int v1, int v2) {return v1 + v2;}inline int fu…

解析mysql奇葩语句

首先看看完整的表如下图那么看看一个比较奇葩的语句select * from users where name = aa=bb这个语句为啥能执行成功以及为什么打印出了除了两个aa之外的所有行数据呢。我们来解释一下原理。 当我们使用 where 语句的时候, where是会一行一行的匹配的 ,同时where的执行顺序是…

Go-编程实用手册(全)

Go 编程实用手册(全)原文:zh.annas-archive.org/md5/62FC08F1461495F0676A88A03EA0ECBA 译者:飞龙 协议:CC BY-NC-SA 4.0前言 本书将通过解决开发人员常见的问题来帮助您学习 Go 编程语言。您将首先安装 Go 二进制文件,并熟悉开发应用程序所需的工具。然后,您将操作字符…

对2023年图灵奖揭晓看法

2023年图灵奖揭晓&#xff0c;你怎么看&#xff1f; 2023年图灵奖&#xff0c;最近刚刚颁给普林斯顿数学教授 Avi Wigderson&#xff01;作为理论计算机科学领域的领军人物&#xff0c;他对于理解计算中的随机性和伪随机性的作用&#xff0c;作出了开创性贡献。这些贡献不仅推…

Visual studio调试技巧

Visual studio调试技巧 bug是什么&#xff1f;Debug和ReleaseDebugRelease 如何调试VS调试快捷键调试过程中查看程序信息查看临时变量的值查看内存信息查看调用堆栈查看汇编信息查看寄存器信息 编译常见错误编译型错误链接型错误运行时错误 bug是什么&#xff1f; bug的英文释…

改进需求分析书

需求规格说明书 该项目是一个基于TCP用QT开发的五子棋对战系统。 项目仓库地址 1.1面向用户分析 五子棋是一种简单的休闲游戏,主要面向不需要高强度消耗、高耗时的网络用户。 对于本项目,目标人群精确至需要在游戏的同时进行社交的用户,他们需要在保证游戏正常运行的同时,直…

ThreeJS:坐标辅助器与轨道控制器

ThreeJS与右手坐标系 使用ThreeJS创建3D场景时&#xff0c;需要使用一个坐标系来定位和控制对象的位置和方向。 ThreeJS使用的坐标系是右手坐标系&#xff0c;即&#xff1a;X轴向右、Y轴向上、Z轴向前&#xff0c;如下图所示&#xff0c; ThreeJS-右手坐标系 Tips&#xff1a;…

code-server容器webpack的ws无法连接解决方法

TLDR 通过指定client的wsrul去连接ws devServer.client.webSocketURL ‘wss://<Forwarded uri>/ws’ 拓扑 1、code-server: 用于编写代码、启动webpack dev-server 服务&#xff1b;[https://<domain>:8001] 2、webpack: 用于浏览dev-server服务&#xff1b;[ht…

Picks Theorem 学习笔记

求顶点都是整点的简单多边形内部的整点个数。Picks Theorem 学习笔记 UVA10088 题目传送门 题意:顺时针或逆时针地给出一个 \(n\) 个顶点(顶点都是整点)的简单多边形,求这个多边形内部的整点数量(位于多边形形上的整点不算)。 Picks Theorem 对于一个顶点都是整点的简单多…

DC-9-sudo提权

标签:SQL注入、本地文件包含LFI、端口敲门、hydra爆破、linux提权 0x00 环境准备 下载地址:https://www.vulnhub.com/entry/dc-9,412/ 靶机描述: DC-9 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testi…

DC-8-Drupal-exim4提权

Vulnhub简介 Vulnhub是一个提供了很多漏洞环境的靶场平台,其中的环境基本上都是做好的虚拟机镜像文件,需要使用VMware或者是VirtualBox运行。每个镜像会有破解的目标,大多是Boot2root,从启动虚拟机到获取操作系统的root权限和查看flag。 靶场部署 Vulnhub官网:https://www…

C#调用skiasharp实现绘制并拖拽图形

SkiaSharp是基于.net的跨平台二维图形库&#xff0c;封装的谷歌的Skia库&#xff0c;SkiaSharp支持在以下平台或运行时中使用&#xff0c;能够在图片中绘图&#xff0c;也提供控件在Winform、WPF等使用。本文学习skiasharp在Winform的基本用法&#xff0c;并参照参考文献5实现绘…

DC-5-screen提权

Vulnhub简介 Vulnhub是一个提供了很多漏洞环境的靶场平台,其中的环境基本上都是做好的虚拟机镜像文件,需要使用VMware或者是VirtualBox运行。每个镜像会有破解的目标,大多是Boot2root,从启动虚拟机到获取操作系统的root权限和查看flag。 靶场部署 vulnhub官网:https://www…

Kubernetes 弃用Docker后 Kubelet切换到Containerd

containerd 是一个高级容器运行时&#xff0c;又名 容器管理器。简单来说&#xff0c;它是一个守护进程&#xff0c;在单个主机上管理完整的容器生命周期&#xff1a;创建、启动、停止容器、拉取和存储镜像、配置挂载、网络等。 containerd 旨在轻松嵌入到更大的系统中。Docke…

【多模态大模型】AI对视频内容解析问答

文章目录 1. 项目背景2. 直接对视频进行解析进行AI问答&#xff1a;MiniGPT4-Video2.1 MiniGPT4-Video效果 3. 对视频抽帧为图片再进行AI问答3.1 视频抽帧3.2 图片AI问答3.2.1 阿里通义千问大模型 Qwen-vl-plus3.2.2 Moonshot 1. 项目背景 最近在做一个项目,需要使用AI技术对视…

洛谷P2375 [NOI2014] 动物园

动物园 题目描述输入格式输出格式输入输出样例 输入 3 aaaaa ab abcababc 输出 36 1 32 开始时都没看出来这是kmp板子题 先看看AC代码吧 #include<bits/stdc++.h> #define ll long long using namespace std; const int maxn=1e6+10; const int mod=1e9+7; char a[maxn];…

List的remove()方法详解

https://blog.csdn.net/anxin_hw/article/details/128312846 一、错误使用场景 1、普通for循环遍历List删除指定元素,list.remove(index) 示例:将姓张的名字移除掉List<String> nameList = new ArrayList<>(Arrays.asList("张三", "李四", &…

本地大语言模型LLM的高效运行专家 | Ollama

Ollama简介 Ollama是一个开源的大型语言模型服务工具&#xff0c;它帮助用户快速在本地运行大模型。通过简单的安装指令&#xff0c;用户可以执行一条命令就在本地运行开源大型语言模型&#xff0c;如Llama 2。Ollama极大地简化了在Docker容器内部署和管理LLM的过程&#xff0…

软考备考1

【BV1Qc411G7fB】考试形式 考45分就行上午-计算机与软件工程知识-150分钟,笔试,选择题-75分还有5分时专业英语,,一篇文章挖5个空下午-软件设计-150分钟-笔试-简答题-75分三个复习阶段考点理论学习——建立理论框架 题型全覆盖——考试全部题型了然于胸 真题强化训练——适应…

AWVS

工具说明 Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的Web网络漏洞扫描工具,他通过网络爬虫测试你的网站安全,检测流行安全漏洞。 AWVS可以通过SQL注入攻击、XSS(跨站脚本攻击)、目录遍历、代码执行等漏洞来审核Web应用程序的安全性并输出扫描报告。相对于…