深入微服务框架:构建高效、可扩展与弹性的现代应用架构

前言:当今快速迭代和多变的商业环境中,传统的单体应用程序面临着一系列挑战,包括难以管理复杂性、缺乏灵活性以及无法有效扩展等问题。随着业务需求的不断增长和技术栈的不断演进,企业亟需一种更加模块化、易于管理和扩展的应用程序架构。这就是微服务框架应运而生的背景,它为开发者提供了一种将大型应用程序分解成独立、松散耦合的服务的方法。

假如我们打算开发一个应用程序,就拿支付宝来说,我们常用的业务是支付,但是我们内部也需要其他的业务,我们实现功能AB的时候,每个子模块都是独立开发的。

模块ABCD...都需要扫描我们的数据库,也都需要额外的实现支付功能,那么我们的这个程序过于冗余,而且每个模块在使用的时候都需要扫描一次数据库,这对于数据库来说压力过大了。

那么如何解决呢?

假如我想开发一个模块,这个模块需要六个功能,然后我们的仓库里有五个我们需要的功能,那我们直接通过平台调用即可。这里准备好的功能我们称为生产者,使用,直接调用我们已经实现的模块称为消费者,管理消费者和生产者的平台我们称为管理平台。

生产者是整个业务的核心,中央管理平台怎么确定生产者处于正常运行状态呢:心跳,每隔一段时间生产者就向中央管理平台发送心跳代表自己处于正常运行状态。

一个完整的微服务框架都需要哪些部分及功能:

中央管理平台功能:生产者,消费者,注册,服务发现,服务治理,申请调用

生产者

消费者

权限管理:能是否调通

流量管理:消费者A申请时表示我每分钟调用200次,那么框架就需要限制消费者A的流量小于等于200,如果不对他进行一个限制的话,很有可能压力过大导致服务崩溃。

负载均衡:在集群的时候,如何平衡效率更高

自定义传输协议:为了适应不同的通信需求,微服务框架可能支持自定义的传输协议

序列化反序列化:数据在网络中传输时通常需要被序列化和反序列化,这是确保不同服务间能够正确理解和交换信息的关键步骤。

流程:

相关推荐
Shaoshing26 分钟前
缓存一致问题及常见解决方案
java·缓存
聚美智数32 分钟前
文档转换 API‑文档转 PDF‑PDF 转文档‑异步文档处理‑文件格式迁移‑转换结果回调推送 API 接口介绍
android·java·pdf
从零数据分析43 分钟前
零基础学SQL 23:和上月比总对不上?LAG/LEAD 一步取出上一次(附 4 个模板)
java·数据库·sql·mysql·oracle·sqlite·database
yuzhiboyouye1 小时前
com.fasterxml.jackson.annotation 里最常用高频的注解,可以按“控制字段、控制格式、控制结构、控制流程”来记
java·开发语言
苜蓿muxu1 小时前
简述 ConcurrentHashMap 和 CopyOnWriteArrayList 的区别以及各自适用场景
java·编程语言
9527!到!1 小时前
Springboot @value读取配置参数踩坑&推荐解决方案
java·spring boot·spring
十年Java程序媛1 小时前
Java 面试常问 this、super:构造方法调用顺序避坑
java·开发语言·spring boot·面试·个人开发
337802 小时前
5分钟搞懂Spring的IoC和Bean管理
java
学到老活到老2 小时前
类已经加载了,为什么静态代码还没执行?
java·jvm
学到老活到老2 小时前
写了 new,就一定会在堆上分配对象吗?
java·jvm