目录
[步骤一 :注册ResTemplate](#步骤一 :注册ResTemplate)
微服务技术栈
将一个大的项目拆分出多个独立项目,每个项目完成独立的任务,独立开发和部署,所有这些相关服务形成一个服务集群。一个业务往往由多个服务完成。
注册中心:用于记录每个服务的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里。
改代码前:
改代码后:
可以看见这个业务涉及到了两个项目运行。
总结: