分布式服务一篇概览

这篇具有很好参考价值的文章主要介绍了分布式服务一篇概览。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

分布式服务开发复杂于服务间交互,协调,治理等。服务的复杂性由应用本身转移到了网络交互层。

一、关于 12-factor 问题

在开发分布式服务时,我们通常会考虑如 12-factor 问题,如配置中心、无状态化、日志等。

一个代码库:支持多人协作开发的代码集中管理平台。

一个依赖库:服务依赖发布、存储、隔离等管理。

一个配置中心:集中的配置管理中心,服务,协调多服务应用。

可插拔的支持服务:如数据库、消息中间件、三方服务等。

构建、发布、运行过程管理:服务发布管理。

每一个服务实例都是一个无状态的工作进程。

服务通过绑定特定的端口对外提供服务。

通过增减服务实例类型及数量来实现服务伸缩。

快速启动,优雅关机增强服务健壮性。

尽可能的保持开发、测试及生产环境一致性。

事件流形式处理日志,分离影响。

脚本或命令行式的服务管理工具支持。

二、总览

借用一张图:

 分布式服务一篇概览 

三、服务发现

当由多个服务实例提供服务时,客户端需要知道都有哪些可调用服务,服务的具体位置以及怎么调用。

分布式协调服务:服务注册与发现。如 Eureka(AP)、Consul(CP)、Zookeeper(CP)、Nacos(CP + AP) 及 Etcd (CP)等。

示例 Nacos 架构图:

分布式服务一篇概览

 文章来源地址https://www.toymoban.com/news/detail-440361.html

四、API 网关

客户端及服务端之间是多对对关系,对于涉及到统一权限管理、路由负载、日志、监控等支持性功能需求,网关服务处理相对更加合适。如 Spring Cloud Gateway、nginx、OpenResty、zuul、APISIX 等。

示例 Spring Gate Way 工作流程:

分布式服务一篇概览

五、配置中心

独立的服务配置可以和服务集成在一起,对于分布式多服务模式,灵活、集中的配置管理则非常必要。
配置中心一般需要提供配置添加、删除、更新管理,环境管理、灰度管理、版本控制等。如 Apollo、Nacos、Spring Cloud Config 等。 
Apollo vs Spring Cloud Config:
功能点 Apollo Spring Cloud Config 备注
配置界面 一个界面管理不同环境、不同集群配置 无,需要通过git操作  
配置生效时间 实时 重启生效,或手动refresh生效

Spring Cloud Config 需要通过Git webhook,

加上额外的消息队列才能支持实时生效

版本管理 界面上直接提供发布历史和回滚按钮 无,需要通过git操作  
灰度发布 支持 不支持  
授权、审核、审计 界面上直接支持,而且支持修改、发布权限分离 需要通过git仓库设置,且不支持修改、发布权限分离  
实例配置监控 可以方便的看到当前哪些客户端在使用哪些配置 不支持  
配置获取性能 快,通过数据库访问,还有缓存支持 较慢,需要从git clone repository,然后从文件系统读取  
客户端支持

原生支持所有Java和.Net应用,

提供API支持其它语言应用,

同时也支持Spring annotation获取配置

支持Spring应用,提供annotation获取配置 Apollo的适用范围更广一些

六、服务治理

分布式服务涉及多服务间协调共同对外提供服务。相对来说,会有更多的不可控因素影响其可用性,如服务间调用超时、流量过载等,因此服务治理也是一门必修课。
熔断降级、流量控制支持:Spring Cloud Circuit Breaker、Resilience4J、Sentinel、Hystrix。
Sentinel 示例:
分布式服务一篇概览

七、链路追踪

分布式服务使得问题追踪变得很困难,需要综合请求路径上不同服务节点表现来定位问题。因此首先需要有一条链,一条从请求调用入口到服务底层再到返回的完整追踪链路。
支持组件如:Spring Cloud Sleuth、Zipkin、SkyWalking。
示例 SkyWalking 架构图:
分布式服务一篇概览

八、日志

汇总所有服务日志顺序综合展示。包括日志收集,传送,落库存储及展示等。
典型如 ELK,logstash 负责收集日志数据及传送,ElasticSearch 负责存储,Kibana 负责 查询展示。
数据采集存在多种可选收集器:如 filebeat(更轻量)、logstash、Fluentd 等。
分布式服务一篇概览

九、监控

(Prometheus | Zabbix)+ Grafana 

1、Promethueus

开源系统监控报警系统。负责收集,存储时间序列监控数据并展示。整体架构图如下:

分布式服务一篇概览

2、Zabbix

开源的分布式监控解决方案。

3、Grafana

提供查询,多维度可视化展示,报警等功能。

 分布式服务一篇概览

十、附加订阅

分布式服务一篇概览

 

到了这里,关于分布式服务一篇概览的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式调用与高并发处理 Zookeeper分布式协调服务

    单机架构 一个系统业务量很小的时候所有的代码都放在一个项目中就好了,然后这个项目部署在一台服务器上,整个项目所有的服务都由这台服务器提供。 缺点: 服务性能存在瓶颈,用户增长的时候性能下降等。 不可伸缩性 代码量庞大,系统臃肿,牵一发动全身 单点故障

    2024年02月12日
    浏览(65)
  • 分布式服务框架_Zookeeper--管理分布式环境中的数据

    安装和配置详解 本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网   http://hadoop.apache.org/zookeeper/ 来获取, Zookeeper 的安装非常简单,下面将从单机模式和集群模式两个方面介绍 Zookeeper 的安装和配置。 单机模式

    2024年02月12日
    浏览(42)
  • 【分布式和微服务1】一篇文章详细了解分布式和微服务的基本概念

    🍀 通俗一点说,高可用的意思是:在 高 并发的情况下,系统仍然是 可用 的 🍀 高可用的目的:保障业务的连续性( 实现在用户眼里,业务永远是正常对外提供服务的 ) 🍀 🍬 【上图】一个 SpringBoot 项目( apple.jar )被部署到服务器上运行,可向其发送 网络请求 对 数据

    2024年02月02日
    浏览(69)
  • 分布式消息服务设计

    为了解决当A系统的一个“操作”需要发送一个通知(生产者),由关心这个操作的业务(消费者)订阅消息并处理时,实现业务解耦,并适合分布式。本文主要讲解以消息中间件Rabbitmq作为通知服务. • 异步通信:提高相应速度和吞吐量 • 可靠性:持久化消息,确保可靠传

    2024年02月12日
    浏览(38)
  • 分布式、集群、微服务

    分布式是以缩短单个任务的执行时间来提升效率的;而集群则是通过提高单位时间内执行的任务数来提升效率。 分布式是指将不同的业务分布在不同的地方。 集群指的是将几台服务器集中在一起,实现同一业务。 分布式中的每一个节点,都可以做集群。而集群并不一定就是

    2024年02月08日
    浏览(52)
  • 分布式服务-区块链

    http://www.ruanyifeng.com/blog/2017/12/blockchain-tutorial.html blockchain-001.jpg 安全,信任,去中心化 特殊的分布式数据库 区块链的作用是存储信息,读写 - 数据库 任何人都可以架设服务器加入区块链网络 什么是区块链网络? 没有管理员,也无法产生管理员 概述 blockchain-002.jpg 区块链由一

    2024年04月12日
    浏览(40)
  • 分布式消息服务kafka

    什么是消息中间件? 消息中间件是分布式系统中重要的组件,本质就是一个具有接收消息、存储消息、分发消息的队列,应用程序通过读写队列消息来通信。 例如:在淘宝购物时,订单系统处理完订单后,把订单消息发送到消息中间件中,由消息中间件将订单消息分发到下

    2024年02月01日
    浏览(48)
  • 分布式与微服务

    目录 微服务 (Microservices) 微服务 微服务架构图 微服务集群架构 简单代码举例 微服务架构在购物下单平台的简单应用 传统单体架构 微服务架构转变 微服务架构下的购物平台模块 微服务架构的优势 分布式系统 (Distributed Systems) 分布式 分布式架构图 分布式服务器集群部署架构

    2024年02月03日
    浏览(39)
  • 微服务学习——分布式搜索

    elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域。 elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。 Lucene是一个

    2024年02月03日
    浏览(37)
  • 微服务分布式事务处理

    当我们向微服务架构迁移时,如何处理好分布式事务是必须考虑的问题。这篇文章介绍了分布式事务处理的两种方案,可以结合实际采用合适的解决方案。原文:Handling Distributed Transactions in the Microservice world [1] 如今每个人(包括我)都在思考、构建微服务,分布式系统是微服

    2024年02月04日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包