目录
分布式服务治理_创建支付服务生产者
分布式服务治理_创建服务消费者
服务调用_Dubbo和OpenFeign区别
服务调用_微服务接入OpenFeign
创建服务提供者工程cloud-provider-payment8001
POM文件引入依赖
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-actuator
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
org.projectlombok
lombok
编写主启动类
@Slf4j
//注解开启服务注册与发现功能
@EnableDiscoveryClient
@SpringBootApplication
public class PaymentMain8001 {
public static void main(String[] args) {
SpringApplication.run(PaymentMain8001.class,args);
log.info("************PaymentMain8001 启动成功 ********");
}
}
注意: @EnableDiscoveryClient:开启注册发现服务
编写YML配置文件
server:
port: 8001
spring:
application:
# 微服务名字
name: provider-payment
cloud:
nacos:
discovery:
# Nacos服务地址
server-addr: 192.168.66.101:8848
查看Nacos控制台服务
创建服务提供者工程cloud-consumer-order80
POM文件引入依赖
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-actuator
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
org.projectlombok
lombok
编写主启动类
@SpringBootApplication
@Slf4j
@EnableDiscoveryClient
public class OrderMain80 {
public static void main(String[] args) {
SpringApplication.run(OrderMain80.class,args);
log.info("************ OrderMain80 启动成功 ********");
}
}
编写YML配置文件
server:
port: 80
spring:
application:
# 微服务名字
name: consumer-order
cloud:
nacos:
discovery:
# Nacos服务地址
server-addr: 192.168.66.101:8848
查看Nacos控制台服务
回顾Dubbo
Apache Dubbo 是一款微服务开发框架,它提供了 RPC通信与微服务治理两大关键能力。这意味着,使用 Dubbo 开发的微服务,将具备相互之间的远程发现与通信能力, 同时利用 Dubbo 提供的丰富服务治理能力,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。
通信性能方面
从通信的性能上来分析,SpringCloud的通信采用Openfeign (feign)组件。Feign基于Http传输协议,底层实现是Rest。从OSI 7层模型上来看Rest属于应用层。
注意:在高并发场景下性能不够理想,成为性能瓶颈。
Dubbo框架的通信协议采用RPC协议,属于传输层协议,性能上自然比rest高。提升了交互的性 能,保持了长连接,高性能。
注意: Dubbo性能更好,比如支持异步调用、Netty性能更好。
实时效果反馈
1.OpenFeign底层是Feign采用___协议。
A RPC
B HTTP
C TCP
D 以上都错误
2. Dubbo框架的通信协议采用RPC协议,属于___协议。
A 应用层
B 传输层
C 会话层
D 以上都是错误
创建工程cloud-consumer-openfeign-order80
添加OpenFeign依赖
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-actuator
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
org.projectlombok
lombok
org.springframework.cloud
spring-cloud-starter-openfeign
org.springframework.cloud
spring-cloud-starter-loadbalancer
主启动类添加feign注解
@EnableFeignClients
@SpringBootApplication
@Slf4j
@EnableDiscoveryClient
public class OrderOpenFeign80 {
public static void main(String[] args) {
SpringApplication.run(OrderOpenFeign80.class,args);
log.info("*************OrderOpenFeign80 启动成功 ********");
}
}
创建YML配置文件
server:
port: 80
spring:
application:
# 微服务名字
name: consumer-order
cloud:
nacos:
discovery:
# Nacos服务地址
server-addr: 192.168.66.101:8848
feign:
client:
config:
default:
# ⽹络连接阶段1秒超时 7
connectTimeout: 1000
# 服务请求响应阶段2秒超时
readTimeout: 2000
创建要调用的的微服务接口
@Service
@FeignClient(value = "provider-payment",fallback = TemplateServiceFallback.class)
public interface PaymentService {
@GetMapping("/payment/index")
String index();
}
创建控制层
/**
* 订单控制层
*/
@RestController
@RequestMapping("order")
public class OrderController {
@Autowired
private PaymentService paymentService;
/**
* 测试OpenFeign
* @return
*/
@GetMapping("index")
public String index(){
return paymentService.index();
}
}
测试
请求http://192.168.66.101:80/order/index