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

目录

微服务技术栈

认识微服务

微服务架构演变

总结

微服务技术对比

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里。

改代码前:

改代码后:

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

总结:

相关推荐
阡陌数智3 分钟前
Gemini 4 Argon 百万 Token 输出能力解析:原生长输出模型的工程落地与并发成本治理
人工智能·架构
乔旭伟10 分钟前
Linux 服务器备份实战:一致性快照、日志归档与恢复演练
linux·运维·服务器
cpolar技术支持31 分钟前
把配置发出去怕带出密钥?先把含凭据配置转成脱敏只读快照,用 cpolar 给同事核对差异
运维·python·内网穿透·cpolar·配置脱敏
我不会起名字3221 小时前
Redis 突然只能读不能写:MISCONF 报错的 3 类触发条件与 4 步恢复
运维·redis·持久化·排查·misconf
workflower1 小时前
Agentic AI 时代的企业ICT 基础设施运维
运维·人工智能·机器学习·重构·云计算·汽车
szxinmai主板定制专家1 小时前
ZYNQ 数据采集方案踩坑总结:电力强电磁干扰、工业现场多协议适配优化
运维·人工智能·fpga开发·机器人·zynq
猫咪很可爱2 小时前
Oracle RAC 启动失败排查:私网通信与内核参数优化实战
运维·数据库·oracle
无足鸟ICT2 小时前
【RHCA+】RPM包验证和数字证书
linux·运维·服务器
yunfengzhineng2 小时前
天津立体库货架配套厂家
大数据·运维·人工智能·python
星恒随风2 小时前
Linux线程概念详解:从分页存储、页表、MMU与TLB,深入理解线程和进程的区别与联系
linux·运维·笔记·学习·状态模式