赞
踩
前言
该篇文章分享如何将Python Web服务融入到Spring Cloud微服务体系中,并调用其服务,Python Web框架用的是Flask
方案
Sidecar+ Flask,在这里,我们会使用Sidecar将Python接口注册到SpringCloud中,将Python接口当作Java接口进行调用(通过SpringCloud去调用Sidecar,然后通过Sidecar去转发我们的程序请求)
Sidecar是SpringCloud提供的一个可将第三方的rest接口集成到SpringCloud中的工具
Python服务
manage.py
import json
from flask import Flask, Response, request, make_response, jsonify
app = Flask(__name__)
@app.route("/health")
def health():
result = {'status': 'UP'}
return Response(json.dumps(result), mimetype='application/json')
@app.route("/getUser")
def getUser():
result = {'username': 'python', 'password': 'python'}
return Response(json.dumps(result), mimetype='application/json')
@app.errorhandler(404)
def not_found(error):
return make_response(jsonify({'error': 'Not found'}), 404)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=3000)
大致说下上述代码,Python服务监听3000端口,health方法用于给Sidecar提供健康接口,用于实时向Sidecar提供自己的健康状态,getUser是Python向外界提供的服务
运行方式
python manage.py runserver
sidecar-server工程
添加依赖
org.springframework.cloud
spring-cloud-starter-eureka
org.springframework.cloud
spring-cloud-netflix-sidecar
org.springframework.boot
spring-boot-starter-test
test
SidecarApplication.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.sidecar.EnableSidecar;
@EnableSidecar
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。