zoukankan      html  css  js  c++  java
  • python里面的微服务框架学习

    前阵子学习了java里面的微服务框架,无奈。新接手的项目是python写的。所以又只能切换回python

    其实Python也有自己的微服务框架,其中用的最多的就是nameko,nameko框架轻便,使用简单,易上手,是一个很不错的微服务框架

    参考博客

    https://blog.csdn.net/eagleuniversityeye/article/details/102722741

    一:微服务架构原理

    微服务架构的实现方式:

    微服务架构最重要的就是使用什么方式进行服务间通信(也称作服务调用),按照通信方式的不同,主要可以分为同步通信和异步通信两种方式。

    同步通信:

         同步调用比较简单,一致性强,但是容易出调用问题,性能体验上也会差些。同步通信最常用的两种协议是RESTful和RPC,而目前使用最广泛,最有名的两种微服务框架Spring Cloud和Dubbo分别使用了RESTful和RPC协议。RESTful和RPC两种协议各有优势,具体使用要看业务场景。

    Dubbo框架是一个非常流行的采用同步通信的分布式微服务框架,下图就是Dubbo框架的工作原理图:

    首先一个微服务应用程序需要有服务的生产者和服务的消费者,另外还需要一个注册中心(常见的有zookeeper和rabbitmq等)来管理和调度服务。微服务架构的程序运行的一般步骤为:

    1. 服务提供方,即生产者启动服务,并将服务提交到注册中心注册服务
    2. 服务需求方,即消费者连接到注册中心,向注册中心发出请求,申请需要的服务
    3. 注册中心根据消费者发出的请求来调度服务,将对应的服务提供者(生产者)的信息发送给消费者
    4. 消费者和生产者之间建立连接,消费者调用服务
    5. 记录服务调用过程中的信息

    异步通信:

    异步通信一般通过消息中间件来进行服务间通信,消息中间件能为调用之间提供的缓冲,确保消息积压不会冲垮被调用方,同时能保证调用方的服务体验,继续干自己该干的活,不至于被后台性能拖慢。不过需要付出的代价是一致性的减弱。

    nameko框架就是一个采用异步通信方式的微服务框架,采用RabbitMQ消息队列作为消息中间件,原理非常简单,使用起来也很方便。

  • 相关阅读:
    什么是ORM
    ORM优缺点
    Azure 中快速搭建 FTPS 服务
    连接到 Azure 上的 SQL Server 虚拟机(经典部署)
    在 Azure 虚拟机中配置 Always On 可用性组(经典)
    SQL Server 2014 虚拟机的自动备份 (Resource Manager)
    Azure 虚拟机上的 SQL Server 常见问题
    排查在 Azure 中新建 Windows 虚拟机时遇到的经典部署问题
    上传通用化 VHD 并使用它在 Azure 中创建新 VM
    排查在 Azure 中新建 Windows VM 时遇到的部署问题
  • 原文地址:https://www.cnblogs.com/maowuyu-xb/p/13902895.html
Copyright © 2011-2022 走看看