微服务概述

一。微服务

微服务是一种更细粒度的SOA架构,用于建立分布式软件系统(主要是分布式计算),可以解决单体应用规模增加时所带来的问题。微服务是一种软件架构,并没有约束要用哪个技术或者绑定在哪个平台。如果细到代码层面是分层,细到工程方面是模块化,细到应用层面是服务拆分(微服务,SOA)。微服务不只针对于Java,PHP,NodeJS都可以做,一个单体应用程序把所有的功能放在一个单一进程中,并且通过在多个服务器上复制这个单体进行扩展。一个微服务架构把每个功能元素放进一个独立的服务中,并且通过跨服务器分发这些服务进行扩展,只在需要时才复制。

二。优劣势

开发,单体应用开发的好处是由于没有拆分,都放在一起,好找,服务调用简单。微服务的拓扑结构会异常复杂,从点状到环状到星状。
稳定,远程服务和进程服务的调用,单一进程方法的调用稳定性要高于远程服务,远程反序列化和网络的不稳定,因为不是同一个进程里面的,比较消耗性能。
部署,单一应用部署简单,中心化,耦合度太高,学习成本增高,伸缩性差,持续交付的能力小,开发和维护成本会越来越高。微服务一个应用会拆分成几个应用。小规模用单体,大规模用微服务。

三。单体应用,SOA,微服务的比较

单体应用和微服务的比较
单体应用	微服务开发,服务调用	简单	复杂稳定性	单一进程的方法调用稳定性比远程方法调用好	反序列化和网络是不稳定的性能	网络原因导致微服务在系统开销方面更耗性能部署	简单	复杂中心化	耦合度越来越高,代码重复开发耦合度	高	低学习成本	单体应用业务划分不明确,新人学习成本高伸缩	差	好持续交付	由于耦合度高,持续交付困难	耦合度低

面向服务架构(SOA)和微服务的比较
共同点:面向服务,松耦合,模块化,分布式计算,平台无关性(rest用的是http协议,http协议是文本协议,只要做文本解析即可。计算机里面只有二进制,没有文本的概念,二进制加上编码才会有文本。Rest可以是json,xml,html,json结构较简单,所以大多数人都在用,rest是一种风格,比如restful)
不同点:原子性:SOA再拆分就变成了微服务,微服务比SOA更加具有原子性;领域驱动设计:DDD,微服务更讲究;开发运维体系:DevOps。

上一篇:报错:Unknown lifecycle phase mybatis-generator-generate
下一篇:SpringWebMVC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值