什么是微服务
什么是微服务
微服务是一种架构模式,或者说是一种风格,他提倡将单一的应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调,相互配置,为用户提供最终价值,服务之间采用轻量级的通信机制相互沟通,每个服务都围绕着具体的业务进行构建,并且能够被独立的部署在生产环境中,另外,应尽量避免统一的,集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言,工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储
通俗来讲:微服务的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地解耦合,每一个微服务提供单个业务功能的服务,一个服务就走一件事,从技术角度看就是一种小而独立的处理过程,类似进程的概念,能够自行单独启动或者销毁,拥有自己独立的数据库
微服务的服务栈
服务栈 | 常用 |
---|---|
服务开发 | springboot,spring,springmvc |
服务配置和管理 | netfilx公司的archaius,阿里的diamond |
服务注册与发现 | eureka,consul,zookeeper |
服务调用 | rest,rpc,grpc |
服务熔断器 | hystrix,envoy |
负载均衡 | ribbon,nginx |
服务接口调用 | feign |
消息队列 | kafka,rabbitMQ,activeMQ |
服务配置中心管理 | springcloudConfig,chef |
服务路由 | zuul |
服务监控 | zabbix,nagios,metrics.specatator |
全链路追踪 | zipkin,beace,dapper |
服务部署 | docker,opensrach,kubernetes |
数据流操作开发包 | springcloud stream |
事件消息总线 | springcloud bus |