微服务介绍

微服务是什么?

1、微服务核心就是把传统的单机应用,根据业务将单机应用拆分为一个一个的服务,彻底的解耦,每一个服务都是提供特定的功能,一个服务只做一件事,类似进程,每个服务都能够单独部署,甚至可以拥有自己的数据库。这样的一个一个的小服务就是 微服务.

2、比如传统的单机电商应用, tulingshop 里面有 订单/支付/库存/物流/积分等模块(理解为servcie)
我们根据 业务模型来拆分,可以拆分为 订单服务,支付服务,库存服务,物流服务,积分服务

3、若不拆分的时候,我的非核心业务积分模块 出现了重大bug 导致系统内存溢出,导致整个服务宕机.
若拆分之后,只是说我的积分微服务不可用,我的整个系统核心功能还是能使用.

拆分前和拆分后的系统
微服务介绍_第1张图片

微服务架构是什么? 微服务架构是一个架构风格, 提倡
1、将一个单一应用程序开发为一组小型服务.

2、 每个服务运行在自己的进程中

3、 服务之间通过轻量级的通信机制(http rest api)

4、每个服务都能够独立的部署

5、每个服务甚至可以拥有自己的数据库

微服务以及微服务架构的是二个完全不同的概念
微服务强调的是服务的大小和对外提供的单一功能,而微服务架构是指把 一个一个的微服务组合管理起来,
对外提供一套完整的服务.

微服务的优缺点
①:每个服务足够小,足够内聚,代码更加容易理解,专注一个业务功能点(对比传统应用,可能改几行代码 需要了解整个系统)

②: 开发简单,一个服务只干一个事情。(加入你做支付服务,你只要了解支付相关代码就可以了)

③: 微服务能够被2-5个人的小团队开发,提高效率

④: 服务松耦合,每个服务都能够开发部署。

⑤: 前后段分离, 作为java开发人员,我们只要关系后端接口的安全性以及性能,不要去关注页面的人机交互(H5工程师) ,根据前后端接口协议,根据入参,返回json的回参

⑥:一个服务可用拥有自己的数据库。也可以多个服务连接同一个数据库.

缺点:
①:增加了运维人员的工作量,以前只要部署一个war包,现在可能需要部署成百上千个war包

②: 服务之间相互调用,增加通信成本

③:数据一致性问题(分布式事物问题)

④:系能监控等

springcloud微服务技术栈有哪些技术
微服务架构技术栈 实现技术
服务开发 springboot,springmvc
服务配置 config
服务注册发现 spring cloud eureka
服务调用 ribbon,feign
服务路由 zuul
服务熔断 hystrix
服务全链路监控
服务部署
sleuth+zipkin
docker k8s

spring cloud技术栈图示
微服务介绍_第2张图片

你可能感兴趣的:(微服务,微服务)