热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微服务相关基础知识学习

1、基本概念1.1、相关概念1.1.1、组件组件是可独立更换和升级的软件单元。组件又可以分为库(library)和服务(service)两个概念。1.1.2、库(library)指




1、基本概念

1.1、相关概念


1.1.1、组件

组件是可独立更换和升级的软件单元。

组件又可以分为库(library)和服务 (service) 两个概念。


1.1.2、库(library)

指的是链接到程序的组件,通过本地函数调用来使用库提供的功能;例如JDK中的相关类库。


1.1.3、服务 (service)

服务 (service) 是进程外的组件,通过网络服务请求 (web service request) 或者远程函数调用之类的机制来使用里面的功能。例如微信接口、支付接口等第三方接口或者自己开发提供的服务。


1.1.4、分布式

一个业务拆分为多个子业务,部署在多个服务器上 。


1.1.5、集群

同一个业务,部署在多个服务器上 。


1.1.6、分布式和集群的区别

大白话解说,半分钟就懂 — 分布式与集群是什么 ? 区别是什么?


1.2、微服务

微服务是什么?十分钟了解微服务架构

微服务是指分解成围绕业务能力所组织的服务。这些服务需要对该业务领域的软件进行广泛的实施,包括用户界面、持久性存储和任何外部协作。因此,微服务团队是跨职能的,包括开发所需的全部技能:用户体验、数据库和项目管理。


1.2.1、微服务设计的原则

我们决定切割应用程序的原则是什么?组件的关键属性是独立替换和可升级性的概念,这意味着我们可以寻找重写组件而不影响其协作者的点。事实上许多微服务群都明确预计许多服务将被废弃,而不是长远发展。

强调可替换性是模块化设计中的一般原则的特别情况,其原则是为了在整个模式变化中驱动模块化。你可以在相同模块并且相同时间内做修改。系统修改的那部分应很少出现在不同且相互依赖的服务中。如总是两个服务一并修改,那说明你需要要合并服务了。

我们听到的一个合理的论点是你不应该从微服务架构开始,而应从单一(庞大)的项目开始,一旦这一项目遇到问题,就拆分模块,划分不同的微服务。


1.2.2、微服务优点

将组件并于服务使得发布计划具有更大的颗粒度。单一服务下,任何修改都需重新发布整个应用,而微服务架构的情况下,只需要重新发布修改的服务,所以微服务能简化并加快发布流程。但缺点是需要担心修改某个服务使得其消费者中断。


1.2.3、微服务与传统单体应用相比的缺点

或者说是使用微服务所付出的代价。

使用服务作为组件的结果是,应用程序需要被设计,以便它们能够容忍服务的失败。任何服务调用都可能由于供应商的无法使用而失败,必须尽可能为客户优雅地响应。与单块设计相比,这是一个缺点,因为它引入了额外的复杂性来处理它。其结果是,微服务团队不断地反思服务失败如何影响用户体验。Netflix的Simian Army在工作日中引入了服务的失败,甚至是数据中心,以测试应用程序的弹性和监控。

对于微服务的缺点所作出的优化

由于服务可能随时发生故障,因此能够快速检测故障并在可能的情况下自动恢复服务很重要。 微服务应用程序非常重视应用程序的实时监控,检查架构元素(数据库每秒获得多少请求)和业务相关指标(例如每分钟收到多少订单)。 语义监控可以提供一个预警系统,从而引导开发团队进行跟踪和调查。 监控对迅速发现不良紧急行为至关重要,只有发现才可能进行修复。



推荐阅读
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • B站服务器故障影响豆瓣评分?别担心,阿里巴巴架构师分享预防策略与技术方案
    13日晚上,在视频观看高峰时段,B站出现了服务器故障,引发网友在各大平台上的广泛吐槽。这一事件导致了连锁反应,大量用户纷纷涌入A站、豆瓣和晋江等平台,给这些网站带来了突如其来的流量压力。为了防止类似问题的发生,阿里巴巴架构师分享了一系列预防策略和技术方案,包括负载均衡、弹性伸缩和容灾备份等措施,以确保系统的稳定性和可靠性。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • 2021年Java开发实战:当前时间戳转换方法详解与实用网址推荐
    在当前的就业市场中,金九银十过后,金三银四也即将到来。本文将分享一些实用的面试技巧和题目,特别是针对正在寻找新工作机会的Java开发者。作者在准备字节跳动的面试过程中积累了丰富的经验,并成功获得了Offer。文中详细介绍了如何将当前时间戳进行转换的方法,并推荐了一些实用的在线资源,帮助读者更好地应对技术面试。 ... [详细]
  • 深入解析 Lifecycle 的实现原理
    本文将详细介绍 Android Jetpack 中 Lifecycle 组件的实现原理,帮助开发者更好地理解和使用 Lifecycle,避免常见的内存泄漏问题。 ... [详细]
  • 提升Android开发效率:Clean Code的最佳实践与应用
    在Android开发中,提高代码质量和开发效率是至关重要的。本文介绍了如何通过Clean Code的最佳实践来优化Android应用的开发流程。以SQLite数据库操作为例,详细探讨了如何编写高效、可维护的SQL查询语句,并将其结果封装为Java对象。通过遵循这些最佳实践,开发者可以显著提升代码的可读性和可维护性,从而加快开发速度并减少错误。 ... [详细]
author-avatar
书友74562696
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有