首页 / 微服务 / 【Go进阶】01 微服务概述
【Go进阶】01 微服务概述
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【Go进阶】01 微服务概述,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3484字,纯文字阅读大概需要5分钟。
内容图文
目录
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 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。
- MPP (Massively Parallel Processing),即大规模并行处理:
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 为基础而发展起来的。
- UDDI
- WSDL
- SOAP
- REST
2.4.2. 实现方法
从逻辑上和高层抽象来看,目前,实现 SOA 的方法也比较多,其中主流方式有 Web Service、企业服务总线和服务注册表。
- Web Service
- 企业服务总线
- 服务注册表
参考:
- SOA/软件架构设计—面向服务的架构(SOA详细解释) --重要参考
2.5. 微服务
- SOA与微服务区别:
- SOA注重重用,微服务注重重写
- SOA注重水平服务,微服务注重垂直服务
- SOA注重自上而下,微服务注重自下而上
- 两者之间最关键的区别在于,微服务专注于以自治的方式产生价值。
- 但是两种架构背后的意图是不同的:SOA 尝试将应用集成,一般采用中央管理模式来确保各应用能够交互运作。
- 微服务尝试部署新功能,快速有效地扩展开发团队。它着重于分散管理、代码再利用与自动化执行。
参考:
3. 补充
3.1. RPC(Remote Procedure Call)远程过程调用 gRPC
参考:
内容总结
以上是互联网集市为您收集整理的【Go进阶】01 微服务概述全部内容,希望文章能够帮你解决【Go进阶】01 微服务概述所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。