微服务

架构类型

单体架构


有一些致命缺点:

  1. 一旦某个服务宕机,会引起整个应用不可用,隔离性差
  2. 只能整体应用进行伸缩,浪费资源,可伸缩性差
  3. 代码耦合在一起,可维护性差

微服务架构


通过上述的架构,解决了单体架构的弊端。但同时引入了新的问题:

  1. 代码冗余
  2. 服务和服务之间存在调用关系

微服务方案

代码冗余问题

场景

服务未拆分之前,公共的功能有统一的实现,比如认证,授权,限流等,但是服务拆分之后,每一个服务可能都需要实现一遍。

方案

  • 由于为了保持对外提供服务的一致性,引入了网关的概念,由网关根据不同的请求,将其转发到不同的服务(路由功能),由于入口的一致性,可以在网关上实现公共的一些功能
  • 可以将公共的功能抽取出来,形成一个新的服务,比如统一认证中心

服务之间调用

场景

服务拆分后,服务和服务之间发生的是进程和进程之间的调用,服务器和服务器之间的调用。
那么就需要发起网络调用,网络调用我们能立马想起的就是http,但是在微服务架构中,http虽然便捷方便,但性能较低

方案

这时候就需要引入RPC(远程过程调用),通过自定义协议发起TCP调用,来加快传输效率。

服务治理

场景

每个服务由于可能分布在成千上百台机器上,服务和服务之间的调用,会出现一些问题,比如,如何知道应该调用哪台机器上的服务,调用方可能需要维护被调用方的地址,这个地址可能很多,增加了额外的负担,这时候就需要引入服务治理.

方案

服务治理中有一个重要的概念服务发现,服务发现中有一个重要的概念叫做注册中心。

每个服务启动的时候,会将自身的服务和ip注册到注册中心,其他服务调用的时候,只需要向注册中心申请地址即可。

posted @   Ho1d_F0rward  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示