- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
1、微服务拆分注意事项 微服务拆分注意事项: 1.单一职责:不同微服务,不要重复开发相同业务 2.数据独立:不要访问其它微服务的数据库 3.面向服务:将自己的业务暴露为接口,供其它微服务调用 。
1.微服务需要根据业务模块拆分,做到单一职责,不要重复开发相同业务 2.微服务可以将业务暴露为接口,供其它微服务使用 3.不同微服务都应该有自己独立的数据库 。
2、订单和用户服务调用案例 订单和用户两个独立服务;有两个单独的数据库, 。
。
。
-需求:根据订单id查询订单的同时,把订单所属的用户信息一起返回 。
不要重复开发业务,不能直接查数据库,服务是独立的看不见别人的数据库。 订单向用户发起远程调用;如何完成远程调用;远程调用方式分析: 发起http请求。如下图:
。
。
使用 spring提供的 RestTemplate http请求;通过bean注测为spring对象; 。
基于RestTemplate发起的http请求实现远程调用。http请求做远程调用是与语言无关的调用,只要知道对方的ip、端口、接口路径、请求参数即可.
因此,我们需要在order-service中 向user-service发起一个http的请求,调用http://localhost:8081/user/{userId}这个接口.
使用步骤:
步骤是这样的:
步骤1、注册一个RestTemplate的实例到Spring容器 。
注册RestTemplate,首先,我们在order-service服务中的OrderApplication启动类中,注册RestTemplate实例:
@MapperScan("cn.it.order.mapper") @SpringBootApplication public class OrderApplication { public static void main(String[] args) { SpringApplication.run(OrderApplication.class, args); } @Bean public RestTemplate restTemplate() { return new RestTemplate(); } }
。
步骤2、修改order-service服务中的OrderService类中的queryOrderById方法,根据Order对象中的userId查询User 。
修改order-service服务中的cn.it.order.service包下的OrderService类中的queryOrderById方法:
步骤3、将查询的User填充到Order对象,一起返回 。
。
@Service public class OrderService { @Autowired private OrderMapper orderMapper; @Autowired private RestTemplate restTemplate; public Order queryOrderById(Long orderId) { // 1.查询订单 Order order = orderMapper.findById(orderId); // 2.利用RestTemplate发起http请求,查询用户 // 2.1.url路径 String url = "http://userservice/user/" + order.getUserId(); // 2.2.发送http请求,实现远程调用 User user = restTemplate.getForObject(url, User.class); // 3.封装user到Order order.setUser(user); // 4.返回 return order; } }
。
3、服务的提供者和消费者概念 -提供者与消费者 。
服务提供者:一次业务中,被其它微服务调用的服务。(提供接口给其它微服务) 服务消费者:一次业务中,调用其它微服务的服务。(调用其它微服务提供的接口) 。
-服务调用关系:
服务提供者:暴露接口给其它微服务调用 服务消费者:调用其它微服务提供的接口 提供者与消费者角色其实是相对的 一个服务可以同时是服务提供者和服务消费者 。
但是,服务提供者与服务消费者的角色并不是绝对的,而是相对于业务而言.
如果服务A调用了服务B,而服务B又调用了服务C,服务B的角色是什么?
- 对于A调用B的业务而言:A是服务消费者,B是服务提供者 - 对于B调用C的业务而言:B是服务消费者,C是服务提供者 。
因此,服务B既可以是服务提供者,也可以是服务消费者.
最后此篇关于SpringCloud入门(二)服务间调用和案例的文章就讲到这里了,如果你想了解更多关于SpringCloud入门(二)服务间调用和案例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
根据 Android docs ,activity生命周期如下: onCreate() onStart() onResume() onPause() onStop() onDestroy() 问题是,
我有一门类(class)有很多专栏,但这个问题只需要其中三个: ---------------------------------------- | start_date | start_time
给定在同一个 Tomcat 6 上运行的两个 Web 应用程序。如果您从一个应用程序到另一个应用程序进行 http 调用,Tomcat 是否会“短路”此调用,或者它会在调用之前一直在 interweb
我是一名优秀的程序员,十分优秀!