赞
踩
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
- </dependency>
如果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
- 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
- @SpringBootApplication
- @EnableDiscoveryClient //原则上启动类需要添加这个注解,Nacos做了一个优化,可以不用这个注解
- //1.应用启动后,会将自己的基本信息(如服务名、IP 地址、端口等)注册到服务注册中心。 - 服务注册
- //2.可以从服务注册中心获取到所有服务的实例列表,从而实现动态寻址和负载均衡。- 服务发现
-
- public class GatewayApp {
-
- }
dockerfile文件:你只需要改变打包的架包的名称即可
- FROM openjdk:8
- WORKDIR /opt/
- COPY target/gateway-0.0.1-SNAPSHOT.jar app.jar
- EXPOSE 8080
- ENTRYPOINT [ "java","-jar","app.jar" ]
前提:你需要建立一个镜像仓库:
可以参考这个博客:或者我接下来写的
- curl -X POST \
- 'https://oapi.dingtalk.com/robot/send?access_token=你的key' \
- -H 'Content-Type: application/json' \
- -d '{"msgtype":"text","text":{"content":"镜像:'${image}'"}}'
发布多个:
- 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
将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
思路:将你的某个应用通过CICD发布后,在本地起一个应用,然后在docker中启一个应用,就可以做负载均衡了。
通过CICD发布就不再写了,和上边的基本一致,只需要修改dockerfile文件,和一些发布的一些路径。
通过docker下载镜像和上边的很类似,可以参考,拉去镜像时需要注意端口。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。