微服务必备知识: 微服务

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是微、什么是服务,微,狭义来讲就是体积小、著名的;2 pizza 团队很好的诠释了这一解释(2 pizza 团队最早是亚马逊 CEO Bezos提出来的,意思是说单个服务的设计,所有参与人从设计、开发、测试、运维所有人加起来 只需要2个披萨就够了 )。 而所谓服务,一定要区别于系统,服务一个或者一组相对较小且独立的功能单元,是用户可以感知最小功能集。

所属技术领域:

微服务

|发展历程|

上世纪 80 年代初,第一种重要的系统分发技术 “远程过程调用 (RPC)” 诞生的时候。RPC 是 Sun Microsystems 最初的 ONC RPC 背后的设想理念,也是 DCE(1988 年)和 CORBA(1991 年)背后的基本理念。
自 1999 年推出 Enterprise Java(奇怪的是版本为 1.2)以来,应用程序所有者与应用程序管理员之间的关系就一直很紧张。
该模式是 Martin Fowler 最初在 2004 年提出的,他在多年后才开始研究微服务)。他的概念被称为 “Strangler Application 模式”,旨在解决您几乎从未实 际生活在 green field 的事实。最需要微服务的程序是网络上最大和最烦人的程序,但是同样地,利用网络的架构可为我们带来一 种管理所需重构的策略。
Circuit Breaker 最初记录在 Michael Nygard 于 2007 年发表的图书《Release It!》中。

|名词定义|

在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是"微"、什么是"服务",微,狭义来讲就是体积小、著名的"2 pizza 团队"很好的诠释了这一解释(2 pizza 团队最早是亚马逊 CEO Bezos提出来的,意思是说单个服务的设计,所有参与人从设计、开发、测试、运维所有人加起来 只需要2个披萨就够了 )。 而所谓服务,一定要区别于系统,服务一个或者一组相对较小且独立的功能单元,是用户可以感知最小功能集。

|技术特点|

 微服务设计原则
1.单一职责原则
意思是每个微服务只需要实现自己的业务逻辑就可以了,比如订单管理模块,它只需要处理订单的业务逻辑就可以了,其它的不必考虑。
2.服务自治原则
意思是每个微服务从开发、测试、运维等都是独立的,包括存储的数据库也都是独立的,自己就有一套完整的流程,我们完全可以把它当成一个项目来对待。不必依赖于其它模块。
3.轻量级通信原则
首先是通信的语言非常的轻量,第二,该通信方式需要是跨语言、跨平台的,之所以要跨平台、跨语言就是为了让每个微服务都有足够的独立性,可以不受技术的钳制。
4.接口明确原则
由于微服务之间可能存在着调用关系,为了尽量避免以后由于某个微服务的接口变化而导致其它微服务都做调整,在设计之初就要考虑到所有情况,让接口尽量做的更通用,更灵活,从而尽量避免其它模块也做调整。
 微服务优势与缺点

  1. 特性
    每个微服务可独立运行在自己的进程里;

一系列独立运行的微服务共同构建起了整个系统;
每个服务为独立的业务开发,一个微服务一般完成某个特定的功能,比如:订单管理,用户管理等;
微服务之间通过一些轻量级的通信机制进行通信,例如通过REST API或者RPC的方式进行调用。

  1. 特点
    易于开发和维护

启动较快
局部修改容易部署
技术栈不受限
按需伸缩

  1. 缺点
    运维要求较高

分布式的复杂性
接口调整成本高
重复劳动
 微服务开发框架
目前微服务的开发框架,最常用的有以下四个:
Spring Cloud:http://projects.spring.io/spring-cloud(现在非常流行的微服务架构)
Dubbo:http://dubbo.io
Dropwizard:http://www.dropwizard.io (关注单个微服务的开发)
Consul、etcd&etc.(微服务的模块)

|资料来源|

名词定义:https://blog.csdn.net/zmbaliqq/article/details/84936551
发展历程:
https://www.ibm.com/developerworks/cn/cloud/library/cl-evolution-microservices-patterns/index.html
技术特点:https://blog.csdn.net/zmbaliqq/article/details/84936551

相关文章
|
缓存 负载均衡 Kubernetes
微服务必备知识:Service Mesh
Service Mesh 会完成完整的服务间调用流程,如服务发现负载均衡,最后将请求发送给目标服务。这表现为 Sidecar。 Sidecar 这个词中文翻译为边车,或者车斗,也有一个乡土气息浓重的翻译叫做边三轮。Sidecar 这个东西出现的时间挺长的,它在原有的客户端和服务端之间加多了一个代理。 多个服务调用的情况,在这个图上我们可以看到 Service Mesh 在所有的服务的下面,这一层被称之为 服务间通讯专用基础设施层。Service Mesh 会接管整个网络,把所有的请求在服务之间做转发。在这种情况下,我们会看到上面的服务不再负责传递请求的具体逻辑,只负责完成业务处理。服务间通讯的
869 0
|
Dubbo Java 应用服务中间件
微服务必备知识:Spring Cloud Alibaba Sentinel
Sentinel 是阿里巴巴开源,面向分布式付五架构的轻量级流量控制组件。在微服务中,服务的调用一般分为Consumer和Provoder,在使用过程中,我们需要对Provoder进性限流保护,来保证不会被过快的调用或者流量激增所打垮,我们可以配置QPS模式的限流,来让多余的流量直接拒绝,同时我们也可以对Provider进性授权保护(不受信任的应用直接拒绝),系统保护(Load超出阈值停止服务),热点保护(增强板的限流保护)
568 0
|
消息中间件 存储 分布式计算
微服务必备知识:Apache RocketMQ
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题,实现高性能、高可用、可伸缩和最终一致性架构。目前市面上比较有名的中间件有:RabbitMQ、kafka、RocketMQ Apache RocketMQ是分布式消息和流数据平台,一个这函证具备低延退、高并发、高可用、高可靠,可支撑万亿级数据洪峰的分布式消息中间件,是企业数字化转型必须的核心、是基础性软件,已服务于阿里巴巴逾十年。
682 0
|
负载均衡 监控 网络协议
微服务必备知识:Istio
Istio是Service Mesh 一种实现,提供的功能包括有: 1、服务发现、负载均衡 2、故障恢复、指标收集和监控 3、A/B测试、灰度发布 4、限流、访问控制和端到端认证
649 0
|
存储 容灾 Java
微服务必备知识:Config 分布式配置中心
分布式配置中心还是Nacos,既可以作为服务注册和发现,也可以作为配置中心来使用。Spring Cloud Config用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,分为服务端和客户端两个部分。其中服务端又称为分布式配置中心,是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息;而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定配置中心来管理应用资源和业务相关的配置内容。服务器存储后端的默认实现使用git,也可以使用SVN仓库或者本地文件系统。
881 0
|
2天前
|
设计模式 监控 持续交付
深入理解微服务架构:从理论到实践
【6月更文挑战第22天】微服务架构作为现代软件开发的基石,其理念和实践已经深入人心。本文将通过一个实际案例,探讨如何将微服务架构的理论应用到实践中去,包括设计原则、技术选型、以及实施过程中可能遇到的挑战和相应的解决策略。我们将看到,尽管微服务带来了许多优势,但在实际应用中也不可避免地会遇到一系列问题,需要开发者具备深厚的技术功底和丰富的实践经验才能妥善应对。
|
21小时前
|
缓存 运维 监控
探索微服务架构中的API网关模式
在微服务架构的海洋中,API网关是连接客户端与众多微服务群岛之间的桥梁。本文将深入探讨API网关的设计原则、核心功能以及在现代软件架构中的关键作用,同时分析其在实际应用中的效益和面临的挑战。
|
2天前
|
监控 Kubernetes API
探索微服务架构中的API网关模式
【6月更文挑战第22天】在微服务架构的海洋中,API网关是一艘引领航行的旗舰。它不仅是服务的守门人,更是流量的指挥官和信息的翻译官。本文将深入探讨API网关的核心作用、设计考量与实现策略,为构建高效、可靠的微服务系统提供航标。
|
2天前
|
JSON 负载均衡 监控
探索微服务架构中的API网关模式
【6月更文挑战第22天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务间的通信与集成。本文将深入探讨API网关的核心概念、设计原则及其在现代后端系统中的关键作用,同时通过实例分析其对系统性能和可维护性的影响,为读者提供一种视角,理解如何高效地构建和管理微服务架构下的API网关。
|
1天前
|
Kubernetes 监控 Cloud Native
云原生架构下的微服务治理实践
【6月更文挑战第23天】在云计算的浪潮中,云原生架构以其弹性、可扩展性和高效性成为企业数字化转型的重要推手。本文将深入探讨如何利用云原生技术实现微服务的治理与优化,确保系统的稳定性和高可用性。我们将从微服务的基本概念出发,通过具体案例分析,揭示云原生环境下微服务治理的关键策略,并分享实践经验,旨在为读者提供一套完整的微服务治理解决方案。

热门文章

最新文章