文章目录
微服务入门【微服务以及微服务架构】
微服务概述
1. 微服务是什么?
(http://blog.cuicc.com/blog/2015/07/22/microservices) 【中文】
- 微服务核心就是把传统的单机应用,根据业务将单机应用拆分为一个一个的服务,彻底的解耦,每一个服务都是提供特定的功能,一个服务只做一件事,类似进程,每个服务都能够单独部署,甚至可以拥有自己的数据库。这样的一个一个的小服务就是 微服务.
- 比如传统的单机电商应用, tulingshop 里面有 订单/支付/库存/物流/积分等模块(理解为servcie) 我们根据业务模型来拆分,可以拆分为订单服务、支付服务、库存服务、物流服务、积分服务
- 若不拆分的时候,我的非核心业务积分模块 出现了重大bug 导致系统内存溢出,导致整个服务宕机.
,若拆分之后,只是说我的积分微服务不可用,我的整个系统核心功能还是能使用. - 图解:传统的all in one 系统 all in one 的集群版本 微服务架构版本
- all in on 工程的数据存储 以及微服务的数据存储
2. 微服务架构是什么?
微服务架构是一个架构风格, 提倡
1. 将一个单一应用程序开发为一组小型服务.
2. 每个服务运行在自己的进程中
3. 服务之间通过轻量级的通信机制(http rest api)
4. 每个服务都能够独立的部署
5. 每个服务甚至可以拥有自己的数据库
6. 微服务以及微服务架构的是二个完全不同的概念。
微服务强调的是服务的大小和对外提供的单一功能,而微服务架构是指把 一个一个的微服务组合管理起来,对外提供一套完整的服务.
3. 微服务的优缺点
优点:
①:每个服务足够小,足够内聚,代码更加容易理解,专注一个业务功能点(对比传统应用,可能改几行代码 需要了解整个系统)
②: 开发简单,一个服务只干一个事情。(加入你做支付服务,你只要了解支付相关代码就可以了)
③: 微服务能够被2-5个人的小团队开发,提高效率
④: 服务松耦合,每个服务都能够开发部署。
⑤: 前后段分离, 作为java开发人员,我们只要关系后端接口的安全性以及性能,不要去关注页面的人机交互(H5工程师) 根据前后端接口协议,根据入参,返回json的回参
⑥: 一个服务可用拥有自己的数据库。也可以多个服务连接同一个数据库.
缺点:
①:增加了运维人员的工作量,以前只要部署一个war包,现在可能需要部署成百上千个war包
②: 服务之间相互调用,增加通信成本
③:数据一致性问题(分布式事物问题)
④:系能监控等.
…
4. springcloud微服务技术栈有哪些技术
-
推荐的二个springcloud的论坛链接
http://springcloud.cn/
https://springcloud.cc/spring-cloud-dalston.html -
微服务技术栈的技术一概总览(springcloud微服务架构生态圈)
微服务架构技术栈 实现技术 服务开发 springboot,springmvc 服务配置 config 服务注册发现 spring cloud eureka 服务调用 ribbon,feign 服务路由 zuul 服务熔断 hystrix 服务全链路监控 sleuth+zipkin 服务部署 docker k8s