微服务——技术栈+概念+远程调用案例

目录

微服务技术栈

认识微服务

微服务架构演变

总结

微服务技术对比

SpringCloud

springcloud和springboot的对应版本

​编辑

服务拆分

注意事项

入门案例

远程调用

[步骤一 :注册ResTemplate](#步骤一 :注册ResTemplate)

步骤二:修改service层代码


微服务技术栈

将一个大的项目拆分出多个独立项目,每个项目完成独立的任务,独立开发和部署,所有这些相关服务形成一个服务集群。一个业务往往由多个服务完成。

注册中心:用于记录每个服务的ip+端口和作用,一个服务需要调用另一个服务时就要到注册中心找

配置中心:统一管理整个服务群体的配置,有配置需要变更时在配置中心变更,会自动热更新

服务网关:拦截对服务的访问对用户身份做校验,并将请求路由到具体服务。

分布式缓存:把数据库数据放入内存,查询效率提升

分布式搜索: 海量数据的统计分析

消息队列:服务之间的异步通信,缩短响应时间,提高并发能力,用于高并发的秒杀场景。

分布式日志服务:统计所有的服务的运行日志,进行统一的存储统计和分析。

系统监控链路追踪:实时监控每个节点的运行状态运行负载和CPU占用,出问题可以迅速定位到具体的服务。

Jenkins:对微服务项目进行自动化的编译,基于docker进行打包形成镜像,基于k8s或ranchar实现自动化部署。这就是持续集成。 到这里才是完整微服务技术栈。

认识微服务

微服务架构演变

总结

微服务技术对比

企业中遇到的四种场景

其中上面两种可以看做同一种,下面两种也可以看做同一种

SpringCloud

springcloud和springboot的对应版本

服务拆分

注意事项

入门案例

导入准备好的工程项目和sql语句建表

在user_service里面实现的是一个根据id查询用户的功能,order_service实现根据订单Id查询订单。

user的是8081端口,order的是8080端口。

该项目完全遵循微服务规则,做到了单一职责。,并且数据库独立。

远程调用

需求如下:

这里就需要在订单模块远程调用用户模块,组合查询信息响应给用户。

步骤一 :注册ResTemplate

在order模块的启动类中

步骤二:修改service层代码

指定查询类型将json反序列化成User类型

这里在代码里面获得user对象之后封装到order里。

改代码前:

改代码后:

可以看见这个业务涉及到了两个项目运行。

总结:

相关推荐
正在走向自律22 分钟前
影刀RPA完全指南:从零入门到自动化高手(2/10)
运维·人工智能·自动化·rpa·影刀·rpa自动化工具·ai结合影刀
乌萨奇也要立志学C++24 分钟前
【Linux】进程间通信(一)匿名管道原理剖析与进程池手动实现全流程
linux·运维·服务器
ManageEngineITSM5 小时前
技术的秩序:IT资产与配置管理的现代重构
大数据·运维·数据库·重构·工单系统
梦昼初DawnDream7 小时前
linux安全基线
linux·运维·安全
Broken Arrows7 小时前
在Linux系统中,top命令的显示参数详解
linux·运维·服务器
Lei活在当下8 小时前
【现代 Android APP 架构】09. 聊一聊依赖注入在 Android 开发中的应用
java·架构·android jetpack
pan3035074798 小时前
GRPC详解
微服务·grpc
一尘之中9 小时前
【架构人生】一种“低耦合、高内聚”的处世哲学
架构·ai写作
喵个咪9 小时前
开箱即用的GO后台管理系统 Kratos Admin - 站内信
后端·微服务·go
code-vibe10 小时前
物理机 kali 改造笔记 (一)
linux·运维·服务器