微服务

技术特性

单一职责原则

指的是每一个微服务模块,只关心自己的业务规则。例如订单模块只关心订单的相关业务,不牵扯其他业务的逻辑。


服务自治原则

每一个微服务模块的开发,需要有自己的开发、测试、运维、部署这一条独立的栈,并且有自己的数据库等一切,完全把其当成一个单独的项目来做,不牵扯到其它无关业务。


轻量级通信原则

微服务的通信协议需要跨平台、跨语言的通信协议,因为微服务是不绑定技术栈的,不论使用Java、PHP还是.net去开发Web系统,它们之间的通信一定是去语言特色的。


接口明确原则

前面提到了微服务的“接口调整成本高”,那么怎么去避免它呢?我们一开始就应该规划好微服务的模块是一种什么样的模型,尽量去避免A接口的改动会导致B接口的改动这种情况。


技术应用

基于Spring Cloud的微服务架构场景


微服务架构组件

选型方案

微服务实例的开发

SpringBoot

负载均衡

Spring Cloud Ribbon

服务注册和发现

Spring Cloud Eureka

断路器

Spring Cloud Hystrix

微服务网关

Spring Cloud Zuul

服务追踪

Sleuth

集中配置中心

Spring cloud config

日志监控

ELK(Elasticsearch , Logstash, Kibana)

持续集成

Jenkins

部署

docker

调试

swagger