目录
分布式服务治理_创建支付服务生产者
分布式服务治理_创建服务消费者
服务调用_Dubbo和OpenFeign区别
服务调用_微服务接入OpenFeign
分布式服务治理_创建支付服务生产者
创建服务提供者工程cloud-provider-payment8001
POM文件引入依赖
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies>
编写主启动类
@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-paymentcloud:nacos:discovery:# Nacos服务地址server-addr: 192.168.66.101:8848
查看Nacos控制台服务
分布式服务治理_创建服务消费者
创建服务提供者工程cloud-consumer-order80
POM文件引入依赖
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies>
编写主启动类
@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-ordercloud:nacos:discovery:# Nacos服务地址server-addr: 192.168.66.101:8848
查看Nacos控制台服务
服务调用_Dubbo和OpenFeign区别
回顾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 以上都是错误
服务调用_微服务接入OpenFeign
创建工程cloud-consumer-openfeign-order80
添加OpenFeign依赖
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!-- openfeign --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency></dependencies>
主启动类添加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-ordercloud:nacos:discovery:# Nacos服务地址server-addr: 192.168.66.101:8848
feign:client:config:default:# ⽹络连接阶段1秒超时 7connectTimeout: 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 {@Autowiredprivate PaymentService paymentService;/*** 测试OpenFeign* @return*/@GetMapping("index")public String index(){return paymentService.index();}
}
测试
请求http://192.168.66.101:80/order/index