什么是微服务,什么是分布式
本文写于 2020 年 12 月 24 日
微服务
2014 年由 James Lewis 和 Martin Fowler 提出了完整的微服务概念。
微服务是一种 「架构风格」,该风格在开发应用时,将一个应用拆分成为一组小型服务。这些服务应该要围绕着业务功能进行拆分。
每一个服务都拥有自己的进程,可以独立的部署、升级,并且应该拥有自动化部署机制(太多服务了,部署起来会很麻烦)。
服务之间应该是去中心化的,它们之间通过轻量的协议进行交互,通常使用 HTTP。
在不同的服务上,可以使用不同的语言、运用不同的储存技术。比如我们编写一个购物网站,商品管理后台用 PHP 在一个服务器写、用户管理后台使用 Node.js 在另一个服务器编写、商品购买使用 Java 在第三个服务器编写……
而这就出现「分布式」。
分布式
不同的服务在不同的服务器上用着不同的语言编写,这些服务组成的就是分布式系统。
例如 A 服务,部署在了北京的 10 台服务器上;B 服务部署在了武汉的 5 台机器上;C 服务部署在了广州的 3 台机器上。
这时候就会出现几个问题。
首先是远程调用。
订单服务想要调用购物车,购物车想要调用用户。这就是远程调用。
这一点我们可以使用 HTTP 协议解决问题。
其次是服务发现。
因为很可能多个机器部署了同一个服务,我们该如何去调用呢?
这就需要运用到 「负载均衡」 机制。负载均衡可以选择链接最快的服务器进行连接。
第四是服务容错。
在远程调用过程中产生的错误除了代码的错误,还可能是网络连接错误,我们该如何处理这些错误?
第五是配置管理。
当我们需要修改 A 服务的配置时,不可能将源代码修改后部署到这十台服务器上,这太麻烦了。
我们可以将所有的配置放置到统一的配置中心,修改配置时只需要重新部署配置中心就可以了。
第六是服务监控。
第七是链路追踪。
第八是日志管理。
第九是任务调度。比如定时任务。
……
第一万……
综上所述,分布式系统虽然很方便,可是还存在诸多的问题。Spring Boot + Spring Cloud + Spring Cloud Data Flow 就是为了解决这些问题而生的。
(完)
原文转载:http://www.shaoqun.com/a/503913.html
hemingway:https://www.ikjzd.com/w/2344
虚拟信用卡:https://www.ikjzd.com/w/1055
什么是微服务,什么是分布式本文写于2020年12月24日微服务2014年由JamesLewis和MartinFowler提出了完整的微服务概念。微服务是一种「架构风格」,该风格在开发应用时,将一个应用拆分成为一组小型服务。这些服务应该要围绕着业务功能进行拆分。每一个服务都拥有自己的进程,可以独立的部署、升级,并且应该拥有自动化部署机制(太多服务了,部署起来会很麻烦)。服务之间应该是去中心化的,它们
亚马逊 海外购:亚马逊 海外购
外贸圈:外贸圈
海关总署出台10条措施 促外贸稳增长:海关总署出台10条措施 促外贸稳增长
跨境行业进入并购潮?跨境通拟变更实控人!:跨境行业进入并购潮?跨境通拟变更实控人!
口述:女友把旧爱照片压床下是为了避孕:口述:女友把旧爱照片压床下是为了避孕
没有评论:
发表评论