微(micro)就是指体积小,服务(service)区别于系统,服务于一个或者一组相对较小且独立的功能单元,是用户可以感知最小功能集。微服务是一种分布式系统解决方案架构。将单个应用程序作为一组小型服务,每个服务程序都在自己的进程中运行,并与轻量级机制进行通信。服务围绕业务功能构建。可以通过全自动部署机器独立部署。可以用不同的编程语言编写,使用不同的数据存储技术,并尽量不采用集中式管理。我在黑马程序员社区学到的,社区有很多学习视频,路线图什么的,感觉对学习编程的小伙伴很有用,想学习的可以看一下。谢谢你对我们的支持,希望我的回答能有所作用,欢迎追问,再次表示感谢!
微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。
微服务的本质:
微服务,关键其实不仅仅是微服务本身,而是系统要提供一套基础的架构,这种架构使得微服务可以独立的部署、运行、升级,不仅如此,这个系统架构还让微服务与微服务之间在结构上“松耦合”,而在功能上则表现为一个统一的整体。这种所谓的“统一的整体”表现出来的是统一风格的界面,统一的权限管理,统一的安全策略,统一的上线过程,统一的日志和审计方法,统一的调度方式,统一的访问入口等等。
微服务的目的是有效的拆分应用,实现敏捷开发和部署。
微服务提倡的理念团队间应该是inter-operate, not integrate 。inter-operate是定义好系统的边界和接口,在一个团队内全栈,让团队自治,原因就是因为如果团队按照这样的方式组建,将沟通的成本维持在系统内部,每个子系统就会更加内聚,彼此的依赖耦合能变弱,跨系统的沟通成本也就能降低。
微服务的特点:
1、易于开发和维护
2、启动较快
3、局部修改容易部署
4、技术栈不受限
5、按需伸缩
缺点:
1、运维要求较高
2、分布式的复杂性
3、接口调整成本高
4、重复劳动