微服务的核心就是将传统的一站式应用,根据业务拆分成一个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度看就是一种小而独立的处理过程,类似于进程的概念,能够单独启动或销毁,拥有自己独立的数据库。
微服务的优缺点
优点:
- 每个服务足够内聚,足够小,代码容易理解;
- 开发简单,效率高,一个服务可能就专一的只干一件事;
- 微服务能使用不同的语言;
- 易于和第三方集成,微服务允许容易且灵活的方式集成自动部署。
缺点: - 开发人员要处理分布式系统的复杂性;
- 多服务运维难度,随着服务的增加,运维的压力也在增加
- 服务间通讯成本
- 数据一致性
- 系统部署依赖
微服务技术栈有哪些
微服务条目 | 技术 |
---|---|
服务开发 | SpringBoot ; Spring ; SpringMVC |
服务配置与管理 | Netflix公司的Archaius; 阿里的Diamond等 |
服务注册与发现 | Eureka ;Consul ; Zookeeper等 |
服务调用 | Rest ;RPC ;gRPC |
服务熔断 | Hystrix ;Envoy等 |
负载均衡 | Ribbon;Nginx等 |
服务接口调用 | Feign等 |
消息队列 | Kafka ;RabbitMQ ;ActiveMQ等 |
服务配置中心管理 | SpringCloudConfig ;Chef等 |
服务路由 | Zuul等 |