微服务入门知识

什么是微服务?微服务架构和传统服务有什么区别?当前微服务的开发方式你了解几个?微服务之间的是怎么通信的?

微服务怎么部署发布?springboot和springcloud在微服务中充当什么角色?

什么是微服务?

微服务架构是一种架构模式,它单一应用程序划分成一组小的服务,每个服务是一个独立的进程,服务之间互相协调、互相配合。服务之间采用轻量级的通信机制相互协作(通常是基于HTTP协议的restful api)。

微服务框架和传统单体框架

传统应用:功能集中在一个系统,一个发布包,一个进程,同一套数据库,往往是一个开发语言。
优点:开发、部署、测试容易。
缺点: 个人理解-耦合性强 1.可能因为一个小补丁,导致整个系统崩溃了;2.模块耦合,具体由两个小模块组成,需要访问两个数据库,开发为了图方便,直接揉在一起,假如一个数据库挂了,那整个功能都不能用了。
网上总结的-交付周期长,维护成本增加,新人培训周期长,技术选择单一。

微服务应用:一组独立交付的业务单元构成的分布式系统。具体就是模块化解耦分离,独立部署,支持不同的开发语言。
优点:服务隔离互不影响(REST接口调用)、独立部署、支持技术多样性。具体表现举例:上面那个功能两个小模块分两个微服务,这样一个数据库挂了,另一个照常运行。
缺点:编程难度大、远程调用更慢且存在失败风险、一致性(事务)难把控、运维要求高。

微服务衍生

既然微服务是拆分成一组小的服务,那就必须提供配套的管理中心。实际远不止这个。

包括注册中心、负载均衡、配置中心、治理中心、服务监控、安全管控、事务管理。

微服务开发的方式

微服务开发的方式主要有一下三种:
 1、dubbo+zookeeper   
 2、spring boot+spring cloud
 3、ServiceComb
dubbo :微服务间调用、负载均衡、服务注册
zookeeper:服务注册中心
spring boot:spring全家桶的封装,不是新技术。
spring cloud:基于springboot一套微服务框架,一种解决方案。
servicecomb:兼容springcloud的微服务框架,使用Saga提供一站式解决方案,服务部署治理监控。

微服务间的通信方式:REST协议(http-文本)、RPC(二进制)

猜你喜欢

转载自blog.csdn.net/x18094/article/details/106170603