第1.3章 docker部署Eureka集群

关于Eureka的描述,可以参考Eureka简介,对Eureka和zookeeper对比,我个人觉得还是很容易看的明白的
Eureka作为服务的注册中心,即生产环境必须使用集群才能保证系统之间稳定运行
1、tornado集成eureka
参考Python Tornado之连接Eureka注册中心pip install py_eureka_client
参考Tornado实现多线程、多进程HTTP服务配置多进程

import ssl
import py_eureka_client.eureka_client as eureka_client
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
import logging
import tornado.log
from tornado.options import define, options

ssl._create_default_https_context = ssl._create_unverified_context
define("port", default=3333, help="run on the given port", type=int)

class Test01Handler(tornado.web.RequestHandler):
    def post(self):
         pass
class Test02Handler(tornado.web.RequestHandler):
  def post(self):
       pass
 class LogFormatter(tornado.log.LogFormatter):
    '''打印日志'''
    def __init__(self):
        super(LogFormatter, self).__init__(
            fmt='%(color)s[%(asctime)s %(filename)s:%(funcName)s:%(lineno)d %(levelname)s]%(end_color)s %(message)s',
            datefmt="%Y-%m-%d %H:%M:%S",
        )
        
 if __name__ == "__main__":
    # 解析命令行
    tornado.options.parse_command_line()
    # 注册eureka服务
    eureka_client.init_registry_client(eureka_server='http://eureka1x:9091/eureka/,http://eureka2x:9092/eureka/',
                                       app_name='your_app_name', instance_port='3333')
    # 采用tornado定义接口服务
    app = tornado.web.Application(handlers=[(r"/test01Query", Test01Handler), (r"/test02Query", Test02Handler)])
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    # 指定进程数
    http_server.start(4)
    tornado.ioloop.IOLoop.instance().start()

启动命令

workdir=$(cd $(dirname $0); pwd)
cd $workdir
cd api
nohup python your_server.py &
echo "start webserver"
发布了317 篇原创文章 · 获赞 168 · 访问量 46万+

猜你喜欢

转载自blog.csdn.net/warrah/article/details/79817493