最近学习的内容很杂,转型做售前,忽然发现很多技术都不太了解,压力很大,但也从中看到了一束通往将来的光辉,在将来,当客户问题起,能够做为技术专家娓娓而谈,同时,精通产品相干的方方面面,能够和各类人物娓娓而谈,指导四方。好了,幻想是美妙的,事实很骨感,那就朝着那束光好好致力吧。最近的内容也会写得比拟杂,比拟乱,比较慢,以自看为主。
微服务架构的格调,就是将繁多程序开发成一个微服务,每个微服务运行在本人的过程中,并应用轻量级机制通信,通常是 HTTP RESTFUL API。这些服务围绕业务能力来划分构建的,并通过齐全自动化部署机制来独立部署。这些服务能够应用不同的编程语言,以及不同数据存储技术,以保障最低限度的集中式治理。
微服务具备如下特点。
•按业务划分为一个独立运行的程序,即服务单元。
•服务之间通过 HTTP 协定互相通信。
•自动化部署。
•能够用不同的编程语言。
•能够用不同的存储技术。
•服务集中化治理。
•微服务是一个分布式系统。
依据 Martin Fowler 的定义,微服务的“微”是依照业务来划分的。
微服务架构是分布式架构,分布式系统比单体零碎更加简单,次要体现在服务的独立性和服务互相调用的可靠性,以及分布式事务、全局锁、全局 Id 等。
另外,分布式系统的利用都是集群化部署,会给数据一致性带来艰难。
在分布式系统中,服务之间相互依赖,如果一个服务呈现了故障或者是网络提早,在高并发的状况下,会导致线程阻塞,在很短的工夫内该服务的线程资源会耗费殆尽,最终使得该服务不可用。因为服务的相互依赖,可能会导致整个零碎的不可用,这就是“雪崩效应”。为了避免此类事件的产生,分布式系统必然要采取相应的措施,例如“熔断机制”。