微服务学习之路(一)——微服务架构
最近一直在学习微服务,毕竟现在大家都在说分布式,集群等,分布式和集群的基本前提是微服务,所以有比较掌握微服务的基本原理。
先看一下微服务架构图,如下图:
微服务主要由以下几个基本组件:
服务描述、注册中心、服务框架、服务监控、服务追踪、服务治理。
1、服务描述
服务调用首先要解决的问题是服务如何对外描述。常用的服务描述包括RESTful API、XML配置已及IDL文件。
通常情况下,如果企业内部之间的服务,都是Java语言,选择XML配置最简单。如果内部存在多个服务,并且服务采用的是不同语言平台,建议使用IDL文件方式进行描述服务。如果还存在对外开放服务调用的话,使用RESTful API方式更加通用。
服务描述方式 | 使用场景 | 缺点 |
RTSTful API | 跨语言平台,组织内外皆可使用 | 使用了HTTP作为通讯协议,相比于TCP协议,性能较差 |
XML配置 | Java 平台,一般用于组织内部 | 不支持跨语言平台 |
IDL | 跨语言平台,组织内外皆可使用 | 修改或者删除PB字段不能向前兼容 |
2、注册中心
注册中心解决服务的发布和订阅。服务提供者将自己提供的服务以及地址登记到注册中心,服务消费者则从注册中心查询所需调用的服务地址,发起请求。
3、服务框架
发起调用之前,需要解决问题:通讯协议?数据传输方式?数据压缩格式?
4、服务监控
监控服务调用情况。需要指标收集、数据处理、数据展示。
5、服务追踪
记录服务调用经过的每一层链路,进行问题追踪和故障定位。
服务追踪原理:服务消费者发起调用,本地按照一定的规则生成一个requestid,发起调用时,将requestid当作请求参数的一部分,传递给服务提供者;服务提供者接收请求,记录这次请求的requestid,然后处理请求。如果服务提供者还要继续请求其他服务,还会再本地生成一个自己的requestid,然后把两个requestid当作请求参数继续传递下去。
6、服务治理
服务监控发现问题,服务追踪定位问题,服务治理解决问题。
生成环境常见故障:单机故障、单IDC故障、依赖服务不可用。
posted on 2019-08-18 14:54 betterLearing 阅读(3051) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?