【Go进阶】01 微服务概述

【Go进阶】01 微服务概述,第1张

概述目录1.微服概述1.1.起源1.2.微服务1.2.1.定义1.2.2.微服务的不足1.3.组件服务化2.架构2.1.巨石架构2.2.MPP2.3.SMP2.4.SOA架构2.4.1.关键技术2.4.2.实现方法2.5.微服务3.补充3.1.RPC(RemoteProcedureCall)远程过程调用gRPC1.微服务概述1.

目录

1. 微服务概述1.1. 起源1.2. 微服务1.2.1. 定义1.2.2. 微服务的不足 1.3. 组件服务化 2. 架构2.1. 巨石架构2.2. MPP2.3. SMP2.4. SOA架构2.4.1. 关键技术2.4.2. 实现方法 2.5. 微服务 3. 补充3.1. RPC(Remote Procedure Call)远程过程调用 gRPC 1. 微服务概述1.1. 起源SOA: 面向服务的架构模式微服务可以看做是 SOA的一种实践; 小而美单一职责尽可能早的创建原型;可移植性比效率更重要; 1.2. 微服务1.2.1. 定义

定义

围绕业务功能构建的, 服务并关注单一业务, 服务间蔡英文轻量级的通信机制;

可以全自动独立部署, 可以使用不同的编程语言和数据存储技术

微服务架构通过业务拆分实现服务组件化, 通过组件组合快速开发系统,

业务单一的服务组件又可以独立部署, 是的整个系统变得清晰灵活;

特点

原子服务独立进程隔离部署去中心化服务治理

缺点

基础设施的建设, 复杂度高; 1.2.2. 微服务的不足

微服务应用是分布式架构,

1.3. 组件服务化
2. 架构

参考:

比较全的常见的架构设计思想整理 --参考价值高 MPP (Massively Parallel Processing),即大规模并行处理: MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果(与Hadoop相似)。 SMP(Symmetric Multi-Processor)又称对称多处理器结构,SMP系统内有许多紧耦合多处理器,在这样的系统中,所有的cpu共享全部资源,如总线,内存和I/O系统等;SOA(Service-OrIEnted Architecture,SOA)
SOA 即面向服务的架构,将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来,接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、 *** 作系统和编程语言。这使得构件在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。微服务
微服务架构其实和SOA 架构类似,微服务是在SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。
2.1. 巨石架构巨石架构 微服务是通过否定单体巨石monolithic而诞生的,单体巨石意思是铁板一块,高度耦合在一起,如同搅拌在一起的意大利面,或者说拌面,代码之间纠缠不清,修改维护难度很大,难以增加新功能;微服务不是对单体随意一刀切进行分割,而是根据有界上下文,在上下午边界出进行切割,不但形成模块化,而且通过微服务运行架构进行彼此最大化的松耦合。 巨石架构简介 将所有功能都部署在一个web容器中运行的系统就叫做巨石型应用。巨石型应用有很多好处:IDE都是为开发单个应用设计的、容易测试——在本地就可以启动完整的系统、容易部署——直接打包为一个完整的包,拷贝到web容器的某个目录下即可运行。 --优点但是,上述的好处是有条件的:应用不那么复杂。对于大规模的复杂应用,巨石型应用会显得特别笨重:要修改一个地方就要将整个应用全部部署(PS:在不同的场景下优势也变成了劣势);编译时间过长;回归测试周期过长;开发效率降低等。另外,巨石应用不利于更新技术框架,除非你愿意将系统全部重写(代价太高你愿意老板也不愿意)。 --缺点

参考:

巨石应用转微服务
2.2. MPP
2.3. SMP
2.4. SOA架构2.4.1. 关键技术

与 SOA 紧密相关的技术主要有 uddi、WSDL、SOAP 和 REST 等,而这些技术都是以 XML 为基础而发展起来的。

uddiWSDLSOAPREST2.4.2. 实现方法

从逻辑上和高层抽象来看,目前,实现 SOA 的方法也比较多,其中主流方式有 Web Service、企业服务总线和服务注册表。

Web Service企业服务总线服务注册表

参考:

SOA/软件架构设计—面向服务的架构(SOA详细解释) --重要参考
2.5. 微服务SOA与微服务区别: SOA注重重用,微服务注重重写SOA注重水平服务,微服务注重垂直服务SOA注重自上而下,微服务注重自下而上两者之间最关键的区别在于,微服务专注于以自治的方式产生价值。 但是两种架构背后的意图是不同的:SOA 尝试将应用集成,一般采用中央管理模式来确保各应用能够交互运作。微服务尝试部署新功能,快速有效地扩展开发团队。它着重于分散管理、代码再利用与自动化执行。

参考:

SOA与微服务区别:
3. 补充3.1. RPC(Remote Procedure Call)远程过程调用 gRPC

参考:

什么是RPC? 总结

以上是内存溢出为你收集整理的【Go进阶】01 微服务概述全部内容,希望文章能够帮你解决【Go进阶】01 微服务概述所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1235652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存