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、定制开发。

  • 相关阅读:
    Microsoft .NET Framework 2.0实现发送邮件(Email)总结
    Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总
    抽象类
    WingIDE 单步调试 Uliweb Python 代码
    Android 4.0 SDK的离线方式安装
    .NET 3.5 中WCF客户端代理性能改进以及最佳实践
    在linux上部署Redmine
    认识jQuery mobile 框架,资源,书籍
    如何使用搜索技巧来成为一名高效的程序员
    Management Console 工具管理类软件通用开发框架(开放源码)
  • 原文地址:https://www.cnblogs.com/ZJOE80/p/12236745.html
Copyright © 2011-2022 走看看