文章目录
摘要
摘要:分布式;微服务;springcloud;nacos;ribbon;RPC
1 认识微服务
1.1 单体架构与分布式架构
架构方式 | 解释 | 优点 | 缺点 |
---|---|---|---|
单体架构 | 将业务所有功能集中在一个项目中开发,打成一个包部署。 | 1、架构简单;2、 部署成本低 | 耦合度高(维护困难、升级困难) |
分布式架构 | 根据业务功能对系统拆分,每个业务功能模块作为独立项目开发,称为一个服务。 | 1、降低服务耦合;2、有利于服务升级和拓展 | 服务调用关系错综复杂 |
1.2 分布式架构与微服务
微服务是实现分布式架构的一种思想
1.3 微服务架构
特征 | 解释 |
---|---|
单一职责 | 微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责 |
自治 | 团队独立、技术独立、数据独立,独立部署和交付 |
面向服务 | 服务提供统一标准的接口,与语言和技术无关 |
隔离性强 | 服务调用做好隔离、容错、降级,避免出现级联问题 |
2 nacos
2.1 什么是nacos
Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富。
2.2 nacos使用
2.2.1 nacos使用逻辑
- ① 启动下载好的nacos
- ② 引入依赖
- ③ 在各个服务中配置服务名,相关注册信息
2.2.2 启动下载好的nacos
本地windows启动
startup.cmd -m standalone
2.2.3 引入依赖
SpringCloudAlibaba依赖,一般引入父工程
<!--SpringCloudAlibaba依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.6.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
在需要注册到nacos上的服务引入nacos-discovery依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2.2.4 各注册服务中配置nacos相关信息
spring:
application:
name: orderservice #注册服务名,会有集群环境
cloud:
nacos:
server-addr: localhost:8848 #nacos地址,默认用户名密码nacos,nacos
2.2.5 测试nacos注册成功
3 Ribbon负载均衡
3.1 Ribbon负载均衡使用引入
在RestTemplate上添加
@LoadBalanced
注解,实现负载均衡
3.2 负载均衡原理
- 问题:我们发出的请求为http://userservice/user/1,为什么变成http://localhost:8081?