1.什么是微服务
定义:基于单体应用围绕业务进行服务拆分,拆分出来每一个服务独立应用独立运行独立都署
运行在自己计算机进程中基于分布式服务管理
2.如何解决微服务的服务间通信问题?
a.HTTP Rest 方式 使用http协议进行数据传递JsoN springcloud 使用http协议传递参数
b.RPC 方式 远程过程调用 二进制
OSI: 物理层、数据链路层、网络层、传输层(RPC)、会话层、表示层、应用层(Http)
3.如何在java代码中发起http方式请求?
a.spring框架提供Httpclient对象RestTemplate发起—个http请求
4 .实现服务间通信写一个案例
1.开发两个测试服务用户服务users订单服务orders
2.用户服务订单服务都是两个独立springboot应用
3.两个服务都引入consul client依赖&健康检查依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
4 .配置两个服务application. properties
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
5.在入口类中加入服务注册client注解
//User
@SpringBootApplication
@EnableDiscoveryClient
public class UserApplication {
public static void main(String[] args) {
SpringApplication.run(UserApplication.class,args);
}
}
//order
@SpringBootApplication
@EnableDiscoveryClient
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class,args);
}
}