一 什么是微服务

若依 微服务 依赖管理 微服务相互依赖_spring

译文:

微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相协作(通常是基于HTTP 协议的RESTfulAPI )。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建

解读微服务特点:

1:微服务是一种项目架构思想(风格)

2:微服务架构是一系列小服务的组合

3:任何一个微服务,都是一个独立的进程

4:轻量级通信(跨语言,跨平台)

5:服务粒度(围绕业务功能拆分)

6:去中心化管理(不依赖某一种语言)

 

二  微服务架构的优势:

1 开发起来比较简单

2 技术栈灵活,社区比较活跃

3 服务之间可以代码分离解耦,便于维护

 

三 微服务的缺点

1 服务间通讯成本增高

2 分布式事物问题

 

四  微服务架构springcloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

五 springcloud与dubbo区别

 

Dubbo

SpringCloud

服务注册中心

Zookeeper

Eureka

服务调用方式

RPC

REST API

服务监控

Dubbo-monitor

Spring BootAdmin

断路器

不完善

Spring Cloud Netflix Hystrix

服务网关


Spring Cloud Netflix Zuul

分布式配置


Spring Cloud Config

服务跟踪


Spring Cloud Sleuth

消息总线


Spring Cloud Bus

数据流


Spring Cloud Stream

批量任务

无    

Spring Cloud Task

区别一:协议不一样,dubbo是RPC通信协议,而springcloud采用的是HTTP协议,RestFul风格

http协议相对于RPC更加灵活,RPC无法跨语言调用,但是http可以,所以springcloud更适合微服务架构

 

区别二:Dubbo只是实现了服务治理,而Spring Cloud下面有17个子项目(可能还会新增)分别覆盖了微服务架构下的方方面面,服务治理只是其中的一个方面,一定程度来说,Dubbo只是Spring Cloud Netflix中的一个子集。但是在选择框架上,方案完整度恰恰是一个需要重点关注的内容。

 

笔记转移,由于在有道云的笔记转移,写的时间可能有点久,如果有错误的地方,请指正