zoukankan      html  css  js  c++  java
  • 微服务架构

    1、微服务简介

    微服务是一种软件架构模式。

    它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务和服务之间采用轻量级的通信机制相互沟通(通常是基于HTTP的Restful API).每个服务都围绕着具体的业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建

    2、特征

    小:粒度小,专注一项业务

    独:独立部署,服务独立测试、部署、升级、发布

    轻:轻量级通信

    松:松耦合。对语言和工具要求松,可以选择最契合业务的语言

    3、三维扩展模型

    X轴,服务实例水平扩展,保证可靠性与性能;

    Y轴,功能的扩展,服务单一职责,功能独立;

    Z轴,数据分区,数据独立,可靠性保证;

    4、部署粒度

    VM(不推荐)

    Docker

    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

    5、基础设施

    基础设施自动化(devops、自动化部署)

    6、需要解决的难点

    分布式事务:2阶段、3阶段、tcc

    分布式一致性:全局的分布式事务;事件驱动

    分布式调度

    分布式全局id生成

    服务命名、注册、发现

    服务治理

    服务间通信

  • 相关阅读:
    Unity3D游戏制作(四)——Asset Server搭建
    查询开户银行的现代化支付行号
    专业版Unity技巧分享:使用定制资源配置文件
    如何建立一个完整的游戏AI
    实现简易而强大的游戏AI——FSM,有限状态机
    iOS 开发 初级:应用内购买 In-App Purchase
    linux每日命令(14):less命令
    flask上传excel文件,无须存储,直接读取内容
    linux每日命令(13):more命令
    linux每日命令(12):nl命令
  • 原文地址:https://www.cnblogs.com/wangzhongqiu/p/11099257.html
Copyright © 2011-2022 走看看