zoukankan      html  css  js  c++  java
  • 关于微服务(三)

    一.微服务架构特点

    (1)服务服务力度:粒度是围绕业务进行拆分的。

    (2)独立进程:任何一个微服务从它的开发,测试,上线,以及运维等过程都可以独立的进行,不依赖以其他的微服务。

    (3)围绕业务建模:微服务架构是围绕业务建模的

    (4)轻量级通信:通信模式是轻量级的,两个模块之间的通信没有语言关系,没有平台关系。

    (5)去中心化管理:微服务具体用的语言,平台都没有强行的规定,以平台,语言没有依赖关系。

    二.微服务架构设计

    微服务网关:作为客户端服务器,它会维护海量的链接,对用户身份的校验,session的管理,请求的转发。不做业务处理。对外提供HTTP接口。

    微服务聚合层:根据用户的请求,拆分为多个微服务原子层,向微服务原子层发送请求,发送回来之后在微服务聚合层把请求的结果汇集起来,提供给微服务网关层,把结果返回给客户端。提供RPC接口。

    微服务原子层:提供这些微服务的增删改查的修改。提供RPC接口。

    微服务数据层:对每一个微服务的数据单独存在一个数据库中。

    去中心化管理:采用相同的语言开发。

    备注:

    网关层:http/https接口协议,安全

    聚合层:服务器内部同过rpc接口协议,传输更快,通信效率更高

    需要两个中心:微服务注册中心、微服务配置中心

    将聚合层再按业务功能拆分成多个聚合层

    三.通信协议和服务的注册、发现

    通信协议-轻量级通信协议

    (1)REST:基于HTTP,与语言、平台无关;

    (2)HAL:基于REST协议做的一个提升,国内用的暂时比较少;

    (3)RPC:远程过程调用,国内开源RPC框架用得比较多,如:Apache、Thrift、gRpc、dubbo;

    (4)消息队列:两个微服务通过消息队列通信,可以把同步的调用变成异步的调用;

    RPC相较HTTP的优势:

    (1)省去了HTTP头信息,传输包更轻量;

    (2)基于TCP长连接,效率比较高;

    (3)安全方面高于HTTP;

    四.柔性可用和服务治理

    1、为什么需要柔性可用?

    流量高峰期,短时请求量大的情况下:服务能力有限、性能下降、服务宕机、系统雪崩

    2、柔性设计如何做?

    目标:保证核心服务可用;非核心服务弱可用,甚至不可用;

    方式:系统降级、数据层降级、柔性可用策略;

    (1)系统降级:拒绝部分请求、关闭部分服务(业务紧密)

        

    (2)数据层降级

    更新请求:持久到消息队列,只更新缓存,暂不更新数据库;

    读请求:读取缓存;

    数据补齐:后续需将消息队列中的数据写入数据库中;

    (3)柔性可用策略

    自动打开柔性可用策略,不依赖人员手动开启;

    测试环境时需演练,确保线上生效;

     3、服务治理

    (1)服务需要监控:监控进程状态,及时发现问题,掌握主动权;

    (2)主要监控:机器资源、进程状态;

    (3)监控手段:

      

    (4)微服务实时监控

    例如:请求平均耗时、请求异常条数等,对比最近几天的数据情况发现问题

    (5)微服务监控框架:open-falcon、定制开发。

  • 相关阅读:
    iOS 面试题搜集
    iOS 常用第三方类库、完整APP示例
    iOS 键盘遮挡输入 解决办法
    iOS UIColor RGB HEX
    iOS APP性能优化
    iOS Swift 数组 交换元素的两种方法
    iOS CoreData primitive accessor
    iOS Start developing ios apps (OC) pdf
    iOS 传值方式
    iOS IB_DESIGNABLE IBInspectable @IBDesignable @IBInspectable 加速UI开发
  • 原文地址:https://www.cnblogs.com/ZJOE80/p/12236745.html
Copyright © 2011-2022 走看看