微服务

Posted by jabin on December 21, 2018

一、 理论基础-康威定律

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations. - Melvin Conway(1967)

图片描述

1. 沟通方式决定系统设计

Adding manpower to a late software project makes it later

亲密(intimate)朋友: 5 信任(trusted)朋友: 15 酒肉(close)朋友: 35 照面(casual)朋友: 150

2. 时间再多也不可能把一件事做到完美, 但是总可以做完一件事

There is never enough time to do something right, but there is always enough time to do it over 图片描述

每个服务都可能挂掉,但是我们有足够的冗余和备份即可

持续集成、敏捷开发

3. 线性系统和线性组织架构有异质同态的特性

There is a homomorphism from the linear graph of a system to the linear graph of its design organization 图片描述 图片描述

团队的组织分工和系统的架构

4. 大的系统总是倾向于分解成众多小系统

The structures of large systems tend to disintegrate during development, qualitatively more so than with small systems

二、微服务架构选型

图片描述

1. 服务框架

gRpc、 spring、 dubbo

2. 运行时支撑服务

服务路由网关:后端总入口,kong, zuul
服务注册与发现: etcd, consul, zk
集中式配置中心: apollo, etcd+regester+confd

3. 服务安全、鉴权

4. 后台服务

消息系统: kafka,xxMQ
分布式缓存
分布式数据访问层
任务调度: xxl-job

5. 服务容错

Hystrix、nginx反向代理实现
超时
熔断
隔离
限流
降级

6. 服务监控

日志监控: elk
调用链监控: APM组件, cat等
Metrics:  实时性能监控
告警通知
健康检查

7. 服务部署、运维

docker、IC、