单体架构
优势:
易于开发
易于测试
易于部署
易于水平伸缩
挑战:
代码膨胀,难以维护
构建、部署成本大
新人上手困难
创新困难
可扩展性差
微服务
单一职责
轻量级通信
隔离性
有自己的数据
技术多样性
优势:
独立性
敏捷性
技术栈灵活
高效团队
劣势:
额外工作,服务拆分
数据一致性
沟通成本
微服务引入的问题及解决方案
通讯
流行的RPC框架
1、Dubbo/Dubbox 阿里 apache,当当
2、Motan 新浪微博
3、Thrift apache
4、Grpc google
发现
部署、更新、扩容
服务编排
Mesos : apache
Swarm :Docker
Kubernetes :google
SpringBoot核心功能:
1、独立运行 java -jar xxx.jar
2、内嵌web服务器
3、简化配置
4、准生产的应用监控
SpringBoot与微服务
SpringBoot :
1、java的润滑剂
2、一种开发配置风格
SpringCloud :
1、简化java的分布式系统
2、一系列框架的集合
3、简化java的分布式开发
4、springboot的封装
5、java的微服务
6、侧重功能,侧重开发
SpringCloud 核心组件
1、Netflix Eureka 服务发现组件
2、Netflix Ribbon 客服端负载均衡组件
3、Netflix Hystrix 断路器
4、Netflix Zuul 服务网关
5、Spring Cloud Config 分布式配置
Eureka
Ribbon
Hystrix
Zuul
ELB:弹性负载平衡器 是一个负载均衡服务器(AWS),作用通常有两个: 根据应用流量自动完成请求的分发 弹性的伸缩资源以应对流量的变化
Spring Cloud Config