go-微服务初始

1.认识微服务架构

微服务诞生背景

  • 互联网行业的快速发展,需求变化快,用户数量变化快
  • 敏捷开发深入人心,用最小的代价,做最快的迭代,频繁修改,测试,上线
  • 容器技术的成熟,是微服务的技术基础

微服务架构的特点

  • 将系统服务层完全独立出来,并将服务层抽取为一个一个的微服务
  • 采用一些轻量协议进行传输
  • 服务拆分粒度更细,有利于资源重复利用,提高开发效率
  • 可以更加精准的制定每个服务的优化方案,提高系统可维护性
  • 相比ESB更轻量

什么是微服务

  • 使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程里,一般采用轻量级的通讯机制互联,并且它们可以通过自动化的方式部署
    微服务的特点
  • 单一职责:独立的业务单独放在一个项目里,比如订单服务作为一个项目
  • 轻量级通信:http,rpc,非轻量级(例如Java的RMI)
  • 隔离性:每个服务相互隔离,不干扰
  • 有自己的数据
  • 技术多样性

架构

  • 单体架构
    1. 所有功能集成在一个项目中
    2. 项目整个打包,可以部署到服务器运行
    3. 应用与数据库可以分开部署,提高性能
    4. 优点:
      · 小项目的首选,开发成本低,架构简单
    5. 缺点:
      · 项目复杂之后,很难有扩展和维护
      · 扩展成本高,有瓶颈
      · 技术栈受限
      单体架构
  • 垂直架构
    1. 对于单体架构的拆分,大项目拆成单个的项目的架构
    2. 存在数据冗余
    3. 项目之间要处理数据同步,通过数据库同步
    4. 优点:
      · 小项目的首选,架构简单
      · 避免了单体架构的无限扩大
      · 技术不在受限
    5. 缺点:
      · 很多功能放在一个工程中,有一定瓶颈
      · 系统性能扩展要通过集群节点扩展,成本较高
      垂直架构
  • SOA架构(面向服务的架构)
    1. 将重复性的功能进行抽取,抽取成对应的服务
    2. 通过 ESB 服务总线去访问
    3. 优点:
      · 提高系统的可重用性
      · ESB 减少系统接口耦合问题
    4. 缺点:
      · 系统与服务界限模糊,不利于开发
      · ESB 服务接口协议不固定,不利于系统维护
      · 抽取粒度较大,仍存有一些耦合性
      在这里插入图片描述
  • 微服务架构
    1. 将服务层一个一个抽取为微服务
    2. 遵循单一原则
    3. 微服务之间采用一些轻量协议传输数据
    4. 优点:
      · 服务拆分粒度非常细,利于开发
      · 提高系统可维护性
      · 比 ESB 更轻量
      · 适用于互联网更新换代快的情况
    5. 缺点:
      · 服务过多,服务治理成本高
      · 开发技术要求更高
      在这里插入图片描述
      传统访问方式
      在这里插入图片描述
      微服务架构访问方式
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值