Spring Cloud与微服务构建学习笔记之微服务和SOA的关系以及微服务设计原则(三)

一、微服务和SOA的关系
SOA即面向对象架构,SOA往往和企业服务总线(ESB)联系在一起,主要原因在于SOA的实施思路是根据ESB模式来整合集成大量单一庞大的系统,这是SOA的主要落地方式。
微服务和相对于SOA便捷的多,微服务将复杂的业务组件化,也是一种面向服务思想的体现,对于微服务来说,它是SOA的一种实现,但是比ESB实现的SOA更轻便,敏捷,简单。
二、微服务设计原则
软件系统为了满足产品的业务发展,在它整个生命周期中,每个版本都有很多变化,所以软件设计应该是渐进式发展,软件一开始不应该被设计成微服务架构,因为微服务架构虽然有很多优势,但是实现微服务架构需要更多的资源,包括服务器资源、技术人员等。
如果业务相对单一,在LAMP(即服务器采用Linux、开发语言为PHP、部署在Apache服务器上、采用MySQL数据库。)单体架构够用的情况下,应该选择使用LAMP,其开发速度快,性价比高,随着业务的增加,用户数量的增加,可以考虑将数据库读写分离,加缓存,加复杂均衡服务器,将应用程序集群化部署等,如果业务还不断的发展,可以考虑使用分布式系统,例如微服务架构系统,不管使用什么架构,驱动架构发展的一定是业务发展,只有当前架构不适合当前业务的发展,才考虑更换架构。
微服务架构设计时需要考虑三大难题:服务故障的传播性、服务的划分、分布式事务。选择合适的框架。目前比较流行的微服务框架有:SpringCloud和Kubernetes。
解决服务故障的传播性,一般微服务架构都有熔断机制组件。
服务划分:一般来说按照业务划分服务,领域驱动设计具有指导作用。
分布式服务:一般解决方式是两阶段提交或三阶段提交,不管使用哪种方式,都存在事务失败、导致数据不一致的情况。总之,微服务的设计一定是渐进式,随着业务的发展而发展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值