简单了解微服务--黑马(在更)

认识微服务

单体架构

不适合大型复杂项目

微服务架构

将单体结构的各个功能模块拆分为多个独立的项目

拆取的独立项目分别开发,在部署的时候也要分别去编译打包,分别去部署,不同的模块部署在不同的服务器上,对外提供不同的功能,相当于每个模块都是一个小的服务,即微服务。

另外还需要做到数据库的数据隔离,每个服务有各自的数据库,互不影响

好处:单体架构在编译部署时要花费大量的时间,微服务拆分开之后,打包编译的速度非常快

坏处:复杂度提升,运维成本变高

SpringCloud

OpenFeign

微服务的远程调用

只需定义接口,无需去实现,底层会帮我们完成跨服务的远程调用,包括服务的拉取,负载均衡,发送请求等等复杂的代码。

网关

网络的关口,负责请求路由转发身份校验

类比

网关:小区开门的老大爷

微服务:小区的各个住户

前端:相当于某人要来小区找人

检查:身份校验

告诉某某某xxx住在xxx号:路由

找不着带你过去:转发

小区可以看成是微服务的集群,小区的住户看成各个微服务

网关(开门的大爷)就能解决微服务太多,前端不知道请求谁的问题,前端只需要知道网关的地址即可,网关根据前端的请求来判断由哪个微服务来处理请求。

判断的过程-->路由,网关将请求转发的过程-->转发

思考:微服务很多,网关如何知道每个微服务的实例ip地址和端口?

注册中心。所有微服务一经启动,都会将信息注册到注册中心,此时注册中心就会有微服务的所有信息,网关也是微服务,启动之后可以去注册中心拉取所有微服务地址。

微服务不需要暴露给前端,只需要将网关暴露给前端即可

配置路由规则

微服务的治理

服务治理包含两部分:

part1:所有微服务在启动时都应该提交自己的服务信息到nacos-->服务的注册

part2:服务的调用者去注册中心拉取服务列表进行服务的调用-->服务的发现

注册中心原理

核心用于微服务的治理-->治理过程复杂-->使用注册中心的组件Nacos

Nacos注册中心组件

服务注册

服务治理包含两部分:

part1:所有微服务在启动时都应该提交自己的服务信息到nacos-->服务的注册

服务发现

part2:服务的调用者去注册中心拉取服务列表进行服务的调用-->服务的发现

步骤1,2和服务的注册是通用的,需要单独完成服务发现的列表拉取

总结(一)

在对单体架构进行微服务的拆分过程中,发现的问题,利用微服务组件进行问题的解决。

**远程调用:**例如,服务拆分之后,每个服务进行单一的职责,复杂服务会出现服务之间的调用(如查询),即远程调用,使用OpenFeign进行解决。

**服务治理:**远程调用有很多,调用关系错综复杂,需要对微服务地址进行维护,并知道它们的健康状态,即服务的治理,使用Nacos组件进行实现。

**网关:**服务很多,前端不知道调用谁,引入网关进行解决。

**配置管理:**微服务越来越多,每个服务都有自己的配置文件,配置太多太复杂,并且配置出现变更需要重新启动服务,服务的可用性降低,使用Nacos组件进行问题解决,可以对配置进行抽取和共享,简化微服务的配置,还可以实现微服务配置的热更新,服务无需重启,提高服务的可用性

RabbitMQ

相关推荐
禾高网络1 分钟前
租赁小程序成品|租赁系统搭建核心功能
java·人工智能·小程序
学会沉淀。7 分钟前
Docker学习
java·开发语言·学习
如若1238 分钟前
对文件内的文件名生成目录,方便查阅
java·前端·python
初晴~38 分钟前
【Redis分布式锁】高并发场景下秒杀业务的实现思路(集群模式)
java·数据库·redis·分布式·后端·spring·
黑胡子大叔的小屋1 小时前
基于springboot的海洋知识服务平台的设计与实现
java·spring boot·毕业设计
ThisIsClark1 小时前
【后端面试总结】深入解析进程和线程的区别
java·jvm·面试
计算机毕设孵化场2 小时前
计算机毕设-基于springboot的校园社交平台的设计与实现(附源码+lw+ppt+开题报告)
spring boot·课程设计·计算机毕设论文·计算机毕设ppt·计算机毕业设计选题推荐·计算机选题推荐·校园社交平台
雷神乐乐2 小时前
Spring学习(一)——Sping-XML
java·学习·spring
苹果醋33 小时前
Golang的文件加密工具
运维·vue.js·spring boot·nginx·课程设计
小林coding3 小时前
阿里云 Java 后端一面,什么难度?
java·后端·mysql·spring·阿里云