1. 单体架构
->将业务的所有功能集中在一个项目中开发,打成一个包部署
优点: 架构简单,部署成本低
缺点: 耦合度高
2.分布式架构
->根据业务功能进行系统的拆分,每隔业务模块作为独立项目开发,成为一个服务
优点:降低服务耦合,有利于升级拓展
服务拆分注意事项
1.不同的微服务,不要重复开发相同业务
2.微服务数据独立,不要访问其他微服务的数据库(一个微服务对应一个数据库)
3.微服务可以将自己的业务暴露为接口,供其他微服务调用
微服务调用方式
1.基于RestTemplate发起的http请求实现远程调用
2.http请求做远程调用是与语言无关的调用,只要直到对方的ip/端口/接口路径/请求参数就行
提供者与消费者
服务提供者 : 一次业务中,被其他微服务调用的服务。(提供接口给其他微服务)
服务消费者 : 一次业务中,调用其他微服务的服务。(调用其他微服务提供的接口)
思考
服务A调用服务B,服务B调用服务C,那么服务B是什么角色呢?
->如果是A调B这个业务,那么B就是提供者 B调用C,那么B就是消费者(一个业务既可以是提供者也可以是消费者,根据业务而定)
nacos注册中心
-
服务注册中心诞生背景? (服务多了,需要统一管理,例如所有公司需要在工商局进行备案)
-
服务注册中心的选型?(社区活跃度,稳定性,功能,性能,学习成本)
-
Nacos下载,安装(解压),配置(application.properties),启动(startup.cmd),访问(http://ip:port/nacos)
-
基于Nacos实现服务的注册?(添加依赖,服务配置,启动服务并检查)
-
基于RestTemplate实现服务的简易调用?(服务消费方调用服务提供方)
-
常见问题
如何理解服务注册中心?(存储服务信息的一个服务)
服务注册中心诞生的背景? (服务多了,需要对服务进行更好管理)
市场上常用的注册中心?(Zookeeper,Eureka,Nacos,Consul)
如何对注册中心进行选型?(社区活跃度,稳定性,功能,性能,学习成本)
Nacos 是什么?(是Alibaba公司基于SpringBoo技术实现的一个注册中心,本质上也是一个web服务)
Nacos 的基本架构?(Client/Server架构)
Nacos 主要提供了什么核心功能?(服务的注册,发现,配置)
Nacos 服务启动需要什么前置条件?(配置JDK的JAVA_HOME目录,安装MySQL5.7以上版本,配置连接的数据库)
Nacos 服务单机模式,window平台下启动时的指令是什么?(startup.cmd -m standalone)
实现Nacos服务注册需要添加什么依赖?(两个:web,discovery)
实现Nacos服务注册时,必须做哪些配置?(服务名,假如是本机服务注册可以省略服务地址)
Nacos如何检查服务状态?(通过心跳包实现,服务启动时会定时向nacos发送心跳包-BeatInfo)
服务之间进行服务调用时,使用了什么API?(RestTemplate,用此对象之前要先创建这个对象并交给spring管理) -
使用LoadBalancerClient这个对象实现对远程服务进行负载均衡方式的获取