一、实用篇
一、认识微服务
1、单体架构:
优点:架构简单、部署成本低
缺点:耦合度高
2、分布式架构:
优点:降低服务耦合、有利于服务升级拓展
问题:
- 服务拆分粒度如何?
- 服务集群地址如何维护?
- 服务之间如何实现远程调用?
- 服务健康状态如何感知?
3、微服务
高内聚、低耦合
优点:拆分粒度更小、服务更独立、耦合度更低
缺点:架构非常复杂、运维、监控、部署难度提高
二、服务拆分及远程调用
1、微服务需要根据业务模块拆分 做不到单一职责不要开发相同业务
2、微服务可以讲业务暴露为接口 供其他微服务使用
3、不同微服务都应该有自己独立的数据库
三、Eureka 注册中心
1、远程调用的问题
2、eureka 原理
3、搭建 EurekaServer
4、服务注册
5、服务发现
问题:
- 服务消费者该如何获取服务提供者的地址信息?
- 如果有多个服务提供者 消费者该如何选择?
- 消费者如何得知服务提供者的健康状态?
例如:
- 注册服务信息 User: localhost:8081 localhost:8082 localhost:8083 Order: localhost:8080
- Order 拉取 User 服务的信息
- 注册中心会去找 User 的信息 发现有三个 以负载均衡 并提供给 Order
- 服务每 30 秒会心跳续约一次 如果不跳了 就会从 User 列表中剔除该服务地址
- 远程调用