开课吧Java:微服务设计遵循的规约有哪些?

微服务架构通过独立运行的服务实现快速迭代和部署。这些服务必须具有可扩展性,允许根据需求进行伸缩。此外,服务间的故障不应影响整个应用程序,确保高可用性。统一的API接口是微服务的另一个关键特征,支持服务组合和互操作性。微服务内部组件高度内聚,每个服务专注于单一业务功能,遵循单一责任原则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前用在软件交付的主流方法,是将整个应用程序构建,整体集成与测试。当出现无论多么小的修改,都需要回归一个完整的应用程序测试周期。而使用微服务,软件模块作为独立的运行时服务,本身具有良好定义的API。微服务方法可以更快地向应用程序传递较小的增量更改。

要成为微服务,服务必须是:

微服务设计规约:可扩展

微服务必须能够独立,与同一应用程序中的其它服务进行扩展,向上或向下扩展。

此约束表示可以根据负载或其他因素微调应用程序性能、可用性和资源使用情况。

此种约束可以通过不同的方式实现,以流行的系统构建方式,运行微服务的多个无状态实例,包含服务命名,注册和发现机制以及路由请求与负载均衡。

微服务设计规约:可伸缩

微服务在发生故障时不影响应用程序中的其他服务

可伸缩性,也称弹性。表示单个服务实例故障时,应该对应用程序的影响最少。

在微服务中,所有实例的失败应只影响应用程序的单一功能,用户能够继续使用应用程序的其它部分运行不会受到影响。

微服务是一个松散耦合的面向服务的体系结构,具有上下文与边界。具有弹性结构,与其他服务松散耦合,上下文限制服务出现失败之区域。

微服务设计规约-可组合

微服务必须提供统一的接口,且支持服务组合。

微服务的API有特殊的标识,用来表示和操作资源的常用方法,用以描述API模式和API操作支持。REST架构风格的“统一接口”约束也描述了这一方法。

服务组合是SOA的一种设计原则,具有明显的优点,但很少有资料说明如何实现的指导原则。微服务接口设计应该具备组合模式支持,如聚合,链接和更高级别的功能,如缓存,代理与网关。

微服务必须只含高内聚的实体

在软件中,衡量事物是否属于一体是一个重要指标。若模块中的对象和函数都集中在相同的任务上,则称该模块具有高内聚力。内聚力越高,软件越易维护。

微服务只执行单个业务功能,即它的全部组件都应具有高内聚性。这和面向对象设计的单一责任原则是一致的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值