springCloud(1):微服务简介

一、什么是微服务

微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用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等

时间: 2024-10-25 14:48:49

springCloud(1):微服务简介的相关文章

JAVA架构师之SpringBoot,SpringCloud构建微服务项目架构

springcloud微服务项目架构搭建第一天(一).项目简介1.准备工作:idea创建springboot模板 2.后台应该涉及的技术(后期可能会有删改) Spring Framework 容器SpringMVC MVC框架Apache Shiro 安全框架Spring session 分布式Session管理MyBatis ORM框架MyBatis Generator 代码生成PageHelper MyBatis物理分页插件Druid 数据库连接池FluentValidator 校验框架Th

springCloud搭建微服务集群+Zuul服务器端负载均衡

概述 最近研究了一下springCloud的微服务集群,主要用到了SpringCloud的服务发现和服务器端负载均衡,所有的项目都是用的springboot,可以和springCloud无缝对接. 技术选型服务发现:eureka负载均衡:zuul 实现Eureka集群(eurekaServer):8001.8002.8003服务提供方(eurekaClient):9001.9002服务端负载均衡服务:9100 1.新建工程eureka服务器,用idea创建springboot项目,引入eurek

springCloud进阶(微服务架构&Eureka)

springCloud进阶(微服务架构&Eureka) 1. 微服务集群 1.1 为什么要集群 为了提供并发量,有时同一个服务提供者可以部署多个(商品服务).这个客户端在调用时要根据一定的负责均衡策略完成负载调用. 1.2 服务提供者集群-同一种服务(服务名)部署多个 实际生产就是同一种服务多部署几台服务器,开发时就是用端口来区分. 1) 拷贝一份8001 2) 修改主类-改名 3) 改8002yml,端口 4) 服务提供者 1.3 服务消费者负载均衡调用 1)常见的负载均衡技术 Ribbon

SpringCloud微服务简介(一)

Spring Cloud简单认识 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及部署,并通过各自暴露的API接口相互通讯.它们彼此相互协作,作为一个整体为用户提供功能,却可以独立地进行扩. 微服务架构需要的功能或使用场景 1:我们把整个系统根据业务拆分成几个子系统. 2:每个子系统可以部署多个应用,多个应用之间使用负载均衡. 3:需要一个服务注册中心,所有的服务都在注册中心注册,负载均衡也

微服务架构【SpringBoot+SpringCloud+VUE】一 || 微服务简介

目录 1.什么是微服务 2.Spring Cloud是什么 3.服务注册中心 4.学习交流QQ群[883210148] 1.什么是微服务 在开发项目之前,我们有必要了解一下,什么是微服务?简单来说:微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服务仅关注于完成一件任务并很好地完成该任务.在所有情况下,每个任务代表着一个小的业务能力. 2.Spring Cloud是什么 Spring Cloud是一个微服务框架的规

深入理解SpringCloud与微服务构建

旭日Follow_24 的CSDN 博客 ,全文地址请点击: https://blog.csdn.net/xuri24/article/details/81742534 目录 一.SpringCloud微服务技术简介 1.1 微服务的功能主要体现在以下儿个方面. 1.2 微服务具有以下的特点. 二.开发框架SpringBoot 三.服务注册和发现Ereka 3.1 什么是Eureka 3.2 Ereka优势 ( l ) Registe 「一一服务注册 (2) Renew一一服务续约 (3) Fe

基于spring-cloud的微服务(4)API网关zuul

API网关是微服务架构中的很重要的一个部分,内部有多个不同的服务提供给外部来使用,API网关可以对外做统一的入口,也可以在网关上做协议转换,权限控制和请求统计和限流等其他的工作 spring-cloud封装了Netflix提供的开源的API网关实现zuul,我们可以很方便地启动一个zuul网关的实例,并支持向eureka进行注册,并对在eureka上已经注册的服务进行代理 使用IDEA的spring initializer来创建一个zuul项目 填写相关的group类型等信息,选择使用gradl

【SpringCloud构建微服务系列】学习断路器Hystrix

一.Hystrix简介 在微服务架构中经常包括多个服务层,比如A为B提供服务,B为C和D提供服务,如果A出故障了就会导致B也不可用,最终导致C和D也不可用,这就形成了雪崩效应. 所以为了应对这种情况,我们就需要一种容错机制,该机制需要实行以下两点: 为网络请求设置超时,以便尽快释放资源 使用断路器模式,就像家里的电闸一样,如果电流过大就会立刻跳闸以保护电路防止发生火灾.当请求失败率达到一定的阈值,断路器就会打开,不会再请求依赖的服务. Hystrix就是这样设计的,以实现容错处理. 二.通用方式

Spring Cloud微服务简介

概述 Spring Cloud给开发者提供一套按照一定套路快速开发分布式工具.它为微服务架构中涉及**配置管理,服务治理,断路器,智能路由,微代理,控制总线,全局锁,分布式会话和集群状态等操作提供了一种简单的开放方式. SpringCloud组成 Spring Cloud 1.xxx版本和Spring Cloud 2.xxx版本中,其中在Spring Cloud Netflix核心组件的依赖标识名发生了变化. 1:Spring Cloud Config 分布式配置管理,支持使用Git存储配置内容