当前位置: 首页 > 后端技术 > PHP

系统服务建设-服务定义

时间:2023-03-29 19:35:24 PHP

关于服务,软件系统的服务,是一个很大的概念。通过一些servitization主题文章的输出,我总结servitization是一个idea,一个softwareprocess。非一与那并无严格规范的定义,但有一定的量化指标可供参考。话又说回来,软件开发是一项工程活动。根据软件开发的定义,它是由一套理论基础支撑的。大学教育中设有专门的软件工程专业。本文试图在软件开发理论和中小型软件项目最佳实践的基础上,探索最大面向服务的软件系统。一个服务系统首先应该是一个分布式系统。分布式系统分布式系统是由一组计算机节点组成的系统,这些计算机节点通过网络进行通信并协调它们的工作以完成共同的任务。分布式系统具有以下特点:1副本副本(Replica)是分布式系统中最常见的概念之一,指的是分布式系统提供数据和服务的冗余方式。在常见的分布式系统中,为了对外提供高可用的服务,我们往往会对数据和服务进行复制处理。有了replica的概念,就会涉及到replica数据一致性的问题。2故障总会发生。不要担心故障。故障总是会发生在分布式系统中。我们需要做的是预防和处理故障。分布式系统的核心是处理各种异常情况。服务交互的三种状态服务交互的三种状态可以理解为网络请求的三种状态,“成功”、“失败”、“超时”。特别地,失败和超时是不同的,失败代表一个明确的结果被处理,而超时是一个不确定的状态。在定义跨系统的通信协议时,这三种状态之间的区别很重要。超时与重试分布式系统需要区别对待RPC的“成功”、“失败”、“超时”三种状态。当发生“超时”时,可以通过发起读取数据的操作来验证RPC是否成功(如银行系统的做法)。或者在设计分布式协议时,将执行步骤设计成可重试的,也就是所谓的“幂等性”。失败的操作可以重试,直到在某些情况下成功。[一些执行步骤是可重试的,而另一些则不是。幂等性的要点是任意数量的执行的影响与一次执行的影响相同。在事务设计中保持幂等性尤为重要】本文不对幂等性做过多介绍。C/S和P2P回顾一下,网络通信有两种通信模式,C/S模式和P2P模式。C/S模式强调客户端和服务器之间的角色定位。端和服务器端。在P2P模式下,在一组面向服务的系统中,每个节点都是调用链中的一个环节。除了用户前端和数据持久化端,几乎每个节点都在上游获取服务,下游提供服务。显然,在分布式系统中,使用的通信方式是P2P方式。基于对以上内容的理解,本文对服务化做了一个简单的定义。服务化是软件服务的一个过程,它是不断变化和完善的。有几个可量化的属性共享如下:1.面向服务系统最终的功能交付被多个下游系统依赖调用,调用者>=2。即一个服务可以被多个服务消费者共享使用。服务需要独立部署,不需要和其他项目深度耦合。有功能边界2、面向服务的系统具有一定的抽象功能,抓大放小,解决系统的核心功能和主要矛盾。我们需要定义系统的核心模块和数量,即服务的粒度和稳定性。3、服务系统稳定、可靠、可控。鲁棒性。4.服务体系健全灵活。异常可以并行转换,有降级等容错机制。弹性思维弹性是面向服务的系统的一个特性,它要求系统在遇到异常和外部故障时保持原有的最小功能输出,以免不堪重负。设计者在设计服务系统时需要建立弹性思维。容错与降级总结本文从分布式特征、服务交互状态、网络通信模型入手。基于理论、实践、可再现性、回顾开发经验和理解的原则,从四个维度对软件的服务进行了分析。定义。然后我会整理一些开发案例进行分解。内部分享参考资料:阿里巴巴B2B高效研发管理实践