Spring Cloud Alibaba【创建支付服务生产者、创建服务消费者 、Dubbo和OpenFeign区别 、微服务接入OpenFeign】(二)

 

目录

分布式服务治理_创建支付服务生产者

分布式服务治理_创建服务消费者 

服务调用_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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/28065.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

密码学学习笔记(十三):哈希函数 - Merkle–Damgård结构

Merkle–Damgrd是一种算法&#xff0c;由Ralph Merkle和Ivan Damgrd提出。它通过迭代调用压缩函数来计算消息的哈希值。 应用 拿SHA-2举例&#xff0c;首先我们需要对需要进行哈希运算的输入做填充&#xff0c;然后将填充后的输入划分为等长的分组&#xff0c;每个分组的长度…

设计模式07-责任链模式

责任链模式属于行为设计模式&#xff0c;常见的过滤器链就是使用责任链模式设计的。 文章目录 1、真实开发场景的问题引入2、责任链模式讲解2.1 核心类及类图2.2 基本代码 3、利用构建者模式解决问题4、责任链模式的应用实例5、总结5.1 解决的问题5.2 使用场景5.3 优缺点 1、真…

Docker基础(二)

1、Docker工作原理 Docker是一个Clinet-Server结构的系统&#xff0c;Docker守护进程运行在主机上&#xff0c;然后通过Socket连接从客户端访问&#xff0c;守护进程从客户端接受命令并管理运行在主机上的容器。 容器&#xff0c;是一个运行时环境&#xff0c;就是我们前面说的…

编程小白的自学笔记十(python爬虫入门二+实例代码详解)

系列文章目录 编程小白的自学笔记九&#xff08;python爬虫入门代码详解&#xff09; 编程小白的自学笔记八&#xff08;python中的多线程&#xff09; 编程小白的自学笔记七&#xff08;python中类的继承&#xff09; 编程小白的自学笔记六&#xff08;python中类的静态方法…

Servlet的监听器

Servlet常用的监听器 ServletContextAttributeListener 用来感知ServlerContext对象属性变化&#xff0c;比如添加或删除属性变化 ServletContextListener 用来感知ServlerContext对象的创建和销毁的 ServletRequestListener 可以用来监听感知ServletRequest对象的创建和销毁的…

QT:问题、解决与原因

在这里记录一些自己遇到的在QT开发上面的小问题和tips 目录 QComboBox 设置qss样式不生效qt按钮设置点击释放效果实现效果 QComboBox 设置qss样式不生效 我设置的样式是&#xff1a; box->setStyleSheet("QComboBox {""border: none;""padding:…

spring boot 多模块项目搭建Knife4j文档,swagger-ui x2

介绍: knife4j jeecg-boot用的就是这个&#xff0c;我之前要搭过swagger-ui&#xff0c;但外观&#xff0c;体验都没有knife4j好&#xff0c;我没记错的话已经停止发布版本了&#xff0c;所以我的多模块项目就用到了这个&#xff0c;还搭建了jwt token获取我也是在网上找的…

Java - 集合

开篇 数组和集合对比 数组的不足: 1、长度开始时必须指定&#xff0c;而且一旦指定&#xff0c;不能修改&#xff0c;灵活性不够 2、保存的必须为同一类型的元素 3、使用数组进行增删元素的方法比较麻烦 集合 1、可以动态的保存任意多个对象 2、提供一系列操作对象的方法…

C# OpenCvSharp+DlibDotNet 人脸替换 换脸

效果 Demo下载 项目 VS2022.net4.8OpenCvSharp4DlibDotNet 相关介绍参考 代码 using DlibDotNet; using OpenCvSharp.Extensions; using OpenCvSharp; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Dra…

二叉树--C语言实现数据结构

本期带大家一起用C语言实现二叉树&#x1f308;&#x1f308;&#x1f308; 1、二叉树的定义 二叉树是一种特殊的树状数据结构&#xff0c;它由节点组成&#xff0c;每个节点最多有两个子节点&#xff0c;分别称为左子节点和右子节点 二叉树的链式存储结构是指用 链表 来表示…

【数据结构】二叉树详解(1)

⭐️ 前言 ✨ 二叉树的概念性质 ⭐️ 二叉树链式结构的实现 结构定义&#xff1a; #include <stdio.h> #include <stdlib.h> #include <assert.h>typedef int BinaryTreeDataType;typedef struct BinaryTreeNode {BinaryTreeDataType value;struct Binary…

【Python统计与数据分析实战_01】位置与分散程度的度量

数据描述性分析 1.描述统计量1.1 位置与分散程度的度量1.1.1 例子一 单维数组1.1.2 例子二 多维数组 1.2 关系度量1.3 分布形状的度量1.3.1 统计量&#xff1a;偏度和峰度 1.4 数据特性的总括 1.描述统计量 数据的统计分析分为统计描述和统计推断两部分。前者通过绘制统计图、…