springCloud(1):微服务简介

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介:

一、什么是微服务

微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。

二、微服务架构特性

1、每个微服务可独立运行在自己的进程里

2、一系列独立运行的微服务共同构建起整个系统

3、每个服务为独立的业务开发,一个微服务只关注某个特定的功能,如:订单管理

4、微服务之间通过一些轻量级的通信机制进行通信,例如:通过RESTful API进行调用

5、可以使用不同的语言与数据存储技术

6、全自动的部署机制

三、微服务的优点与挑战

3.1、优点

1、易于开发和维护

一个微服务只会关注一个特定的业务功能。

2、单个微服务启动较快

 单个微服务代码量较少

3、局部修改容易部署

 单体应用只要要修改就得重新部署整个应用,微服务解决了这一问题

4、技术栈不受限

 语言不受限制

5、按需伸缩

可根据需要,实现细粒度的扩展

3.2、挑战

1、运维成本较高

更多的服务意味着更多的运维投入

2、分布式固有的复杂性

使用微服务构建的是分布式系统,对于一个分布式系统,系统容错、网络延迟、分布式事务等都会带来巨大的挑战

3、接口调整成本高

微服务之间通过接口进行通信,如果修改某一个微服务的API,可能所有使用了该接口的微服务都需要做调整

4、重复劳动

很多服务可能都会使用到相同的功能,而这个功能并没有达到分解为一个微服务的程度。

四、微服务设计原则

4.1、单一职责原则

指的是一个单元(类、方法或者服务等)只应关注整个系统功能中单独、有界限的一部分。(SOLID原则之一)

4.2、服务自治原则

指每个微服务应具备独立的业务能力 、依赖与运行环境。应该与其它服务高度解耦,每个微服务从开发、测试、构建、部署,都应当可以独立运行,而不应该依赖其它的服务

4.3、轻量级通信原则

轻量级的通信机制应具备两点:

 1、体量较轻

 2、跨语言

微服务架构中,常用的协议有REST、AMQP、STOMP、MQTT等

4.4、微服务粒度

微服务的粒度是难点,也常常是争论的焦点。应当使用合理的粒度划分微服务,而不是一味的把服务做小。

五、微服务架构的实现

不仅需要开发框架的支持,还需要一些自动化的部署工具,以及IaaS、PaaS或CaaS的支持。


开发框架的选择:

 可以使用Spring Cloud作为微服务开发框架。当然也可以使用Dubbo等

本文转自我爱大金子博客51CTO博客,原文链接http://blog.51cto.com/1754966750/1941022如需转载请自行联系原作者


我爱大金子

相关文章
|
20天前
|
负载均衡 监控 算法
【微服务 SpringCloud】实用篇 · Eureka注册中心
【微服务 SpringCloud】实用篇 · Eureka注册中心
34 1
|
20天前
|
存储 SpringCloudAlibaba Java
【微服务 SpringCloud】实用篇 · 服务拆分和远程调用
【微服务 SpringCloud】实用篇 · 服务拆分和远程调用
33 2
|
8天前
|
监控 Dubbo Java
【SpringCloud】认识微服务
【SpringCloud】认识微服务
19 1
|
20天前
|
Prometheus 监控 负载均衡
【SpringCloud】微服务重点解析
【SpringCloud】微服务重点解析
32 0
|
20天前
|
缓存 负载均衡 算法
【微服务 SpringCloud】实用篇 · Ribbon负载均衡
【微服务 SpringCloud】实用篇 · Ribbon负载均衡
42 0
|
20天前
|
消息中间件 Java RocketMQ
Spring Cloud RocketMQ:构建可靠消息驱动的微服务架构
【4月更文挑战第28天】消息队列在微服务架构中扮演着至关重要的角色,能够实现服务之间的解耦、异步通信以及数据分发。Spring Cloud RocketMQ作为Apache RocketMQ的Spring Cloud集成,为微服务架构提供了可靠的消息传输机制。
30 1
|
20天前
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo: 微服务通信的高效解决方案
【4月更文挑战第28天】在微服务架构的发展中,服务间的高效通信至关重要。Spring Cloud Dubbo 提供了一种基于 RPC 的通信方式,使得服务间的调用就像本地方法调用一样简单。本篇博客将探讨 Spring Cloud Dubbo 的核心概念,并通过具体实例展示其在项目中的实战应用。
25 2
|
3天前
|
运维 负载均衡 Cloud Native
云原生架构技术之云原生微服务
微服务模式将后端单体应用拆分为松耦合的多个子应用,每个子应用负责一组子功能。这些子应用称为“微服务”,多个“微服务”共同形成了一个物理独立但逻辑完整的分布式微服务体系。这些微服务相对独立,通过解耦研发、测试与部署流程,提高整体迭代效率。此外,微服务模式通过分布式架构将应用水平扩展和冗余部署,从根本上解决了单体应用在拓展性和稳定性上存在的先天架构缺陷。但也要注意到微服务模型也面临着分布式系统的典型挑战:如何高效调用远程方法、如何实现可靠的系统容量预估、如何建立负载均衡体系、如何面向松耦合系统进行集成测试、如何面向大规模复杂关联应用的部署与运维。
19 4
|
4天前
|
敏捷开发 负载均衡 监控
探索微服务架构下的API网关设计与实践
【5月更文挑战第31天】本文将深入剖析微服务架构中的关键组件——API网关,探讨其设计理念、核心功能以及在实际项目中的应用。我们将从API网关的基本概念出发,逐步展开对其路由、负载均衡、认证授权、监控日志等方面的详细讨论,并结合实际案例,分析如何高效地实现和管理一个稳定的API网关。
|
4天前
|
缓存 监控 安全
微服务架构下的API网关设计与实践
【5月更文挑战第31天】本文深入探讨了在微服务架构中,API网关的核心作用与设计策略。通过分析网关的职责、选型标准及实现细节,文章为读者提供了一套完整的API网关解决方案。同时,结合具体案例,展示了如何在实际应用中有效部署和优化API网关,确保系统的高可用性和可扩展性。