微服务导学
-微服务架构
- 微服务知识:
微服务技术栈及时间安排
第一天学习目录:
架构演进
- 单体应用
- 分布式应用
- 集群
- 总结 微服务是【分布式架构】的最佳实践
微服务技术栈
- 企业中常用的几种微服务架构
- Springcloud 组件
springcloud与springboot版本对应
微服务拆分规则/原则
根据业务模块单一职责 微服务暴露api端口 数据库隔离
微服务远程调用
- 可以通过restTemplate进行远程调用。
Eureka注册中心
- 服务的调用者、消费者针对业务而言,一个服务即可能是提供者,也可能是消费者。
- provideer 有心跳,消费者在服务列表中通过负载均衡选择一个提供者进行调用。
eureka使用——搭建:
- 引入依赖
- 开启服务发现注解
- 配置配置文件。注意:eureka本身也是一个服务,也会注册。
注册服务
在idea中同一个应用启动多个服务
消费服务
- 将provider的ip改为【服务名称】进行调用
- 负载均衡
注意将url修改为服务的提供者名称,同时添加注解@LoadBalanced
Ribbon负载均衡
- Ribbon组件实现了springCloud的负载均衡。
Ribbon负载均衡原理
- 负载均衡策略
- 如何调整负载均衡策略:
方案1针对全局的提供者生效
方案2针对指定的服务提供者生效【针对特定的服务】
默认是懒加载,可以开启饥饿加载
Ribbon总结
Nacos
nacos启动
本用例使用1.4.1版本:
在bin目录下的启动命令【./start.sh -m standalone】
服务多级存储模型
- 提供者:nacos配置杭州-上海集群。
- 消费者:配置优先选择哪个集群环境。
Nacos的权重设置
- 权重的设置范围【0~1】 在nacos的控制台进行配置。 如果权重设置为0,则服务不对外提供服务。利用此项原理,可以在服务的版本更新上做到优雅的平滑升级。 将某个服务的权重设置为0,然后将此实例的服务更新成最新的。然后将在权重设较小的权重。
环境隔离:
- namespace可以用作dev, prod等环境的隔离。
- group:关联度比较高的服务可以在一个group. 修改命名空间:
不同namespace之间的服务是互相隔离的。
Nacos注册中心原理介绍,与Eureka区别
- nacos默认的实力是临时实例。有心跳检测,如果沒喲心跳,則服務會nacos將服務列表中剔除。
- 如果是非临时实例,nacos注册中心主动问询,如果服务挂了,也不会将实例将服务列表中剔除。
- 對於消費者:pull和push的模式都有。