什么是微服务:
分布式结构的一种,可涵盖多种语言不同版本的不同模块,提高了系统的可维护性,可伸缩性,可测试性
为什么要用微服务:
能够把不同模块分离开,提高效率减少压力。而且,微服务的使用可以方便多模块集成,可以实现一些跨版本模块的共同使用。比如如果我使用一个jdk8的项目如果想要使用当下的springai框架,我就可以通过新增一个模块,通过openFeign实现远程调用实现功能。
通过黑马微服务课程我学到了什么:
mybatisplus:
系统的学习了mybatisplus,其主要使用lambda表达式。mybatisplus也拥有快速代码生成器,可以快速构建entity,mapper,service,controller四层。我发现mybatisplus很适用于微服务这个结构:微服务由于模块见相互补直接关联,所以正常情况下我们是不可以直接进行多表联查的。而mybatisplus的劣势有两点1.不能简单实现多表联查(可以依托于mybatis的xml实现,但是违背了mybatisplus的初衷)2.混淆了service与mapper的关系。在使用微服务的时候,我们减小了第一点,放大了第二点
docker:
了解掌握了如何使用docker:docker是一个容器,可以承载不同的组件,通过他我们可以实现快速部署。docker可以实现组件的稳定传递,也拥有自己的镜像网站。docker的风格是极简,其中的镜像只会加载与自身相关的内容,因此所占内存是很小的
微服务:
nacos:
注册中心原理,通过引入依赖实现了记录与监控服务器服务状态。实现了服务治理
配置管理:微服务内配置冗余过多,我们想简化配置,引入了配置管理的概念:通过springcloud的上下文加载bootstrap.yml拉取nacos中的配置,再加载application.yml,完成springboot初始化。同时,使用配置管理,我们还能完成配置信息的热部署,通过配置一些常见易变更的参数完成不重启服务器自动读取配置完成变更。同时我们还可以通过此功能实现动态路由:将路由信息保存至nacos,实时推送数据信息
openFeign:
是一个声明式http客户端,基于springMVC,帮我们更简单的实现远程调用:我们通过抽取一个公共api接口,配置相关信息进而实现微服务与微服务之间的远程调用
gateway:
微服务模块较多之后,我们会发现难以处理,因此我们引入了网关的概念:统一管理各个业务,实现前端-》网关-》后端业务的统一调用。我们首先引入网关模块,通过网关设置的断言与过滤实现token的传递和使用。网关内我们可以轻易的改写请求头,进而塞入token等内容。
这时就衍生了新的问题:微服务与微服务之间如何进行token的传递呢?我们知道微服务与微服务之间由openFeign进行调用,不经由网关。因此我们需要在openFeign中同时加入额外拦截器获取请求头内重要信息
sentinel:
微服务保护:sentinel提供了限流,线程隔离,熔断服务等功能提供了一定的微服务系统保护功能,一定程度上防止了微服务雪崩问题
seata:
我们知道一些方法必须具有事务性,但是在微服务之间的调用中,openFeign的使用显然是不具有这种特性的。因此我们引入seata,seata可以在更高一层面上管理协调事务实现一致性问题
标签:总结,网关,服务,openFeign,实现,学习,模块,mybatisplus,4.30 From: https://www.cnblogs.com/kun1790051360/p/18168282