微服务简介

1. 什么是微服务?

Martin Fowler 微服务提出者:http://martinfowler.com/articles/microservices.html

微服务这种架构风格就是把一组小服务演化成为一个单一的应用的一种方法。每个应用都运行在自己的进程中,并通过轻量级的机制保持通信,就像HTTP这样的API。这些服务要基于业务场景,并使用自动化布署工具进行独立的发布。可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储。

. 微服务化的核心是将传统的一战式应用, 根据业务拆分成一个一个的服务, 彻底地去耦合, 每一个微服务提供单个业务功能的服务, 一个服务做一件事, 从技术上角度看就是一种小而独立的处理过程, 类似进程的概念, 能够自行单独的启动和销毁, 拥有自己独立的数据库。

2.微服务系统与传统单机系统

原始单机系统: ALL IN ONE , 订单,交易,库存 。。 都在一个工程里, 整个工程打成一个war 包, 进行部署. 有一个地方有改动, 整个项目都要重新编译部署。

分布式系统:拆分成各个模块, 各自独立出来, 形成各自微小的一个进程, 让专业的人来富足专门的模块, 来做专业的事。它更倾向于围绕业务功能对服务结构进行划分、拆解,这些服务可以采用不同的技术栈来实现,包括用户界面,持久层存储,或任何对外协作,因此团队应该是跨职能的,包括开发所需要的全部技术:用户体验、数据库和项目管理。

3. 微服务与微服务架构

微服务:强调的是服务的大小, 它关注的是某有一个点, 是具体解决某一问题/提供落地对应服务的有个服务应用, 可以看做Eclipse里面的一个微服务工程或者Module, 它具体是使用springboot 开发的有个小模块, 专业的事情交给专业的模块来做, 有个模块就做这一件事情。 强调的是一个一个的个体, 每个个体完成一个具体的任务或者功能。(医院里一个一个的科室)
微服务架构:是一种架构模式, 它提倡将单一的应用程序规划成一组小的服务, 服务之间相互协调, 互相配合, 为用户一共最终价值。 每个服务运行在其独立的进程中, 服务与服务之间采取轻量级的通信机制互相协作(通常是基于HTTP协议的Restful API)每个服务都围绕着具体业务进行构建。并且能够被独立的部署到生产环境, 类生产环境等。另外, 应当尽量避免统一的, 集中式的服务管理制度, 对具体的一个服务而言, 应根据业务上下文, 选择适合的语言, 工具对其进行构建(强调是整体, 用哪些方式将一个一个的微服务组装起来, 整体对外暴露服务)

4. 微服务的优缺点

优点:每个服务足够内聚, 足够小, 代码容易理解这样能聚焦一个指定的业务功能或业务需求
开发简单, 开发效率提高, 一个服务可能就是专一的干一件事
微服务能后被小团队单独开发(2-5个人)
微服务是松耦合的, 是有功能意义的服务, 无论是在开发阶段或部署阶段都是独立的
微服务能是用不通语言开发
易于与第三方集成, 微服务允许容易且灵活的方式集成自动部署, 通过持续集成工具Jenkins, hudson, bamboo
微服务易于被一个开发人员理解, 修改和维护, 这样小的团队更关注自己的工作成果, 无需通过合作才能体现价值。
微服务允许你利用融合最新的技术
微服务只是业务逻辑的代码, 不会和HTML CSS 或者其他界面组件混合
每个微服务都有自己的存储能力, 可以有自己的数据库, 也可以有统一的数据库。 可以灵活搭配, 可以连接共库, 也可以连接独立库

缺点:开发人员要处理分布式系统的复杂性
多服务运维难度, 随着服务的增加, 运维的压力也在增大
系统部署依赖
数据一致性
系统集成测试
性能监控。。。

5. 微服务技术栈
多种技术的集合体
服务治理
服务注册
服务调用
服务负载均衡
服务监控

在这里插入图片描述
在这里插入图片描述
6. SpringCloud 特点
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值