热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于微服务(三)

一.微服务架构特点(1)服务服务力度:粒度是围绕业务进行拆分的。(2)独立进程:任何一个微服务从它的开发,测试,上线,以及运维等过程都可以独立的进行,不依赖以其他的微服务。(

一.微服务架构特点

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

 


推荐阅读
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 提供:ZStack云计算原创2016-12-26张鑫讲师介绍张鑫ZStack总架构师、联合创始人《系统虚拟化》主要作者,曾任职Intel开源软件技术中心 ... [详细]
  • 云原生SRE
    序言年底了,没有分手的朋友的赶紧分了,所谓新年新气象,年年不重样。去留无意,望看风卷残云。。。运维不会消失,但 ... [详细]
  • 阿里首席架构师科普RPC框架
    RPC概念及分类RPC全称为RemoteProcedureCall,翻译过来为“远程过程调用”。目前,主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程 ... [详细]
  • 罕见蠕虫瞄准PHP漏洞 Linux安全不在
    php教程|PHP源码Linux,RPC,XML,PHP,PHPGroupWarephp教程-PHP源码ec(2);  据国外媒体报道,Linux和其他开源软件遭到病毒或黑客袭击的 ... [详细]
  • 云原生的十大开源项目是什么
    这篇“云原生的十大开源项目是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值 ... [详细]
  • ASP.NET CORE 简介
    ASP.NETCore是一个跨平台的高性能开源框架,用于生成启用云且连接Internet的新式应用。使用ASP.NETCore,您可以:生成Web ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • 项目需要将音视频文件上传服务器,考虑并发要求高,通过七牛来实现。直接上代码usingQiniu.IO;usingQiniu.IO.Resumable;usingQiniu.RPC; ... [详细]
  • Java工程师书单(初级,中级,高级)
    简介怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作一两年之后开始迷茫的程序 ... [详细]
  • 微服务下的几个难点问题及常见的解决方案
    原文链接:https:cloud.tencent.comdevelopernews1362051背景介绍1.1幂等性定义数学定义在数学里,幂等有 ... [详细]
author-avatar
金叶诺一的妈妈
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有