python注册nacos微服并使用gateway网关

业务需求:使用python flask框架和java spring boot框架共同注册到nacos中,在由spring cloud gateway分配路由。

flaskDome:

from flask import Flask

app = Flask(__name__)


@app.route('/python')
def test():
    return "这是python flask框架接口,您调用成功"


if __name__ == '__main__':
    app.run(host='127.0.0.1',port=8080 )
    

接口路由:localhost:8080/python

python服务注册:

import threading
import time
import requests
import json


def register():
    //服务所在ip和端口号、服务名称
    params = {'ip': '127.0.0.1', 'port': '8080','serviceName':'service-prediction-ai'}
    //服务器nacos地址
    url = "http://localhost:8848/nacos/v1/ns/instance"
    res = requests.post(url, params=params)
    print("注册状态:"+res.text)


def service_beat():
    while True:
        params = {'ip': '127.0.0.1', 'port': '8080','serviceName':'service-prediction-ai'}
        url = "http://127.0.0.1:8848/nacos/v1/ns/instance/beat"
        res = requests.put(url,params=params)
        print("已注册心跳服务响应状态: {}".format(res.status_code))
        time.sleep(5)

if __name__ == "__main__":
    register()
    threading.Timer(5,service_beat).start()

  • 注册成功后在nacos中可以查看的到(这是在已经注册和部署好gateway之后)

 配置gateway:

spring cloud gateway 部署在8000端口,所有接口都可以通过8000端口访问到其他接口

在gateway配置文件application.properties中添加

spring.cloud.gateway.routes[1].id=service-prediction-ai spring.cloud.gateway.routes[1].uri=lb://service-prediction-ai spring.cloud.gateway.routes[1].predicates=Path=/digitalPigeon/predictionAi/** spring.cloud.gateway.routes[1].filters=StripPrefix=2

 接口原本路由:localhost:8080/python

由gateway代理后:localhost:8000/digitalPigeon/predictionAi/python

那么这样springboot后端接口和flask后端接口都可以通过gateway的8000端口访问。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要基于Nacos实现Spring Cloud Gateway的动态路由,可以按照以下步骤进行操作: 1. 添加依赖:在Spring Cloud Gateway项目的pom.xml文件中添加相应的依赖,包括spring-cloud-starter-gateway和spring-cloud-starter-alibaba-nacos-discovery等。 2. 配置Nacos注册中心:在application.properties或application.yml配置文件中添加Nacos注册中心的相配置,包括Nacos服务器地址、命名空间、分组等信息。 3. 配置动态路由:创建一个RouteLocator Bean,并在其中使用Nacos的服务发现来定义动态路由规则。可以通过Nacos的配置中心来管理路由规则的动态更新。 ```java @Configuration public class GatewayConfig { @Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("service_route", r -> r.path("/api/v1/**") .uri("lb://service-provider")) .build(); } } ``` 上述示例中,定义了一个名为service_route的路由规则,将请求路径以/api/v1/开头的请求转发到名为service-provider的微服务上。 4. 启动Gateway应用:启动Spring Cloud Gateway应用,它会自动从Nacos注册中心获取动态路由规则并进行路由转发。 5. 管理动态路由:使用Nacos的配置中心来管理动态路由规则。可以通过Nacos的控制台或API来添加、修改或删除路由规则,Gateway应用会自动更新并生效。 通过以上步骤,就可以基于Nacos实现Spring Cloud Gateway的动态路由了。你可以根据实际需求和业务场景,添加更多的路由规则和配置。希望对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值