一:概念
微服务:可以用不同语言不同存储技术实现的一个独立的功能系统。
二:一些优劣
规模庞大后缺点与解决策略:
开发效率低,测试周期加长,系统可靠性变差,并发流量成本变高
并发不够:加机器
数据逐渐臃肿:分库分表
业务耦合:模块拆分
三:微服务模块
api-》服务注册-》配置中心-》服务治理-》服务监控-》服务追踪
发展:
单机
--》soa(将公共的功能拆分成组件,以服务的方式给各个系统提供服务)拆分粒度大,服务治理差,容易产生性能瓶颈。
--》微服务(拆分更加细,更分布式,去中心化)
1:(api)
client → api网关层 --》服务聚合层 --》具体的服务
2:(服务注册)
服务提供者注册到注册中心,消费者从主策中心获取服务提供者,数据一致性的几个工具:
牺牲性能保证一致性:
ZooKeeper
Etcd
Consul
牺牲一致性保证性能:
Eureka
服务通信:
RPC,Rest,Kafka,RabbitMQ
3:(配置中心)
记录配置信息,写入到注册中心
4:(服务治理)
注册中心或者服务消费者摘除服务,负载均衡,服务路由,服务端故障管理,调用管理
5:(服务监控)
日志采集(推|拉)指标数据监控
6:(服务追踪)
通过一个tranceId把服务窜连起来
四:服务拆分方法:
1:业务逻辑拆分
2:可扩展性
3:可靠性
4:性能拆分
原则:先少后多,先粗后细,先拆服务后拆数据库,接口尽量幂等。