SOA和微服务架构的区别
1.
架构划分不同
SOA强调按水平架构划分为:前、后端、数据库、测试等;
微服务强调按垂直架构划分,按业务能力划分,每个服务完成一种特定的功能,服务即产品。
2.
技术平台选择不同
SOA应用倾向于使用统一的技术平台来解决所有问题;
云原生架构和微服务体系区别
如果是架构师、开发工程师讲技术架构,一般都讲微服务架构体系,以微服务微基础,然后把CI/CD、DevOps、容器等基础设施环境都包含在内。
如果是运维工程师讲架构,一般都讲云原生架构,以容器等基础设施环境为基础,把微服务、CI/CD、DevOps等包含在内。这就是这两个概念的区别。
微服务架构实践中,服务是如何通信的
微服务之间的通信,一般都是借助于微服务框架完成,一般有REST风格的api通信,和微服务框架结合的RPC.
REST风格的api通信所谓的REST风格的api通常来讲就是HTTP结合来使用,但是要遵循REST规范的HTTP有如下特征.
统一接口
无状态
缓存
客户端-服务器
分层系统
按需代码(可选)
RPC通信RPC(RemoteProcedureCall)远程过程调用是一个计算机通信协议。我们一般的程序调用是本地程序内部的调用,RPC允许你像调用本地函数一样去调用另一个程序的函数,这中间会涉及网络通信和进程间通信,但你无需知道实现细节,RPC框架为你屏蔽了底层实现。RPC是一种服务器-客户端(Client/Server)模式,经典实现是一个通过「发送请求-接受回应」进行信息交互的系统。
RPC通信通常和微服务框架结合,框架会定于消息的序列化格式,比如谷歌的gRPC框架就是利用protobuff序列化,来序列化消息之后通信。
常见的微服务框架有:Dubbo
是阿里巴巴公司开源的一个Java高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。ApacheDubbo|?d?b??|是一款高性能、轻量级的开源JavaRPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。2011年末对外开源,仅支持Java语言。
官网:http://dubbo.apache.org/zh-cn/
Dubbo架构图|图片来源dubbo.apache.org
Tars
腾讯内部使用的微服务架构TAF(TotalApplicationFramework)多年的实践成果总结而成的开源项目。仅支持C++语言,目前在腾讯内部应用也非常广泛。2017年对外开源,仅支持C++语言。
源码:https://github.com/TarsCloud/Tars/
TARS架构图|来源github.com/TarsCloud
「本命鹅厂TARS框架介绍PPT已下载,不想自己麻烦去找的同学,在我公众号「后端技术学堂」回复「tars」获取。」
Motan
是新浪微博开源的一个Java框架。Motan在微博平台中已经广泛应用,每天为数百个服务完成近千亿次的调用。于2016年对外开源,仅支持Java语言。
官方指南:https://github.com/weibocom/motan/wiki/zh_userguide
Motan框架|图片来源github.com/weibocom/motan
gRPC
是Google开发的高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(ProtocolBuffers)序列化协议开发。本身它不是分布式的,所以要实现上面的框架的功能需要进一步的开发。2015年对外开源的跨语言RPC框架,支持多种语言。
中文教程:https://doc.oschina.net/grpc?t=58008
gRPC架构图|图片来源www.grpc.io
thrift
最初是由Facebook开发的内部系统跨语言的高性能RPC框架,2007年贡献给了Apache基金,成为Apache开源项目之一,跟gRPC一样,Thrift也有一套自己的接口定义语言IDL,可以通过代码生成器,生成各种编程语言的Client端和Server端的SDK代码,支持多种语言。
thrift架构|图片来源wikimedia
创作不易,看到这里动动手指,点赞「三连」是对我持续创作的最大支持,我们下篇文章再见!
文章每周持续更新,可以微信搜索公众号「后端技术学堂」提前看,或在公众号回复「资料」有我给你准备的各种编程学习资料,我们下期见!
微服务架构能为运维人员带来什么
采用微服务发布的系统,对于运营人员,当出现错误的时候,不会出现全部服务失败
如何从传统单体架构转向微服务
微服务架构系统灵活性,健壮性,扩展性好,特别适合需求变化迅速的场景。但系统复杂度高,部署,管理难度大。微服务除了开发期框架之外,还有需要一系列的运行期中间件支撑,如API网关,服务注册中心,统一配置中心等。目前国内比较成熟的吧,东软有一支团队在做,他们网站是https://platform.neusoft.com/
微服务架构和分布式架构的区别
微服务架构是指将一个大型的应用程序拆分成多个小型独立的服务,每个服务都有自己的功能和特点,并可以独立部署和运行,彼此之间通过API进行通信和交互。微服务架构的优点是系统解耦、服务可维护,可伸缩性好等。而分布式架构则是指将一个应用程序分布式地部署在多个物理节点上,每个节点拥有自己的计算资源和存储资源,各节点之间通过网络传输数据和协同工作。分布式架构的优点是可以充分利用多节点的资源,提高系统的容错性和可靠性,但开发和维护难度也相应增加。简单说,微服务架构更注重服务的拆分和解耦,而分布式架构更注重整个系统的资源利用和协同工作。