微服务通信

一、Feign远程调用

Feign是Spring Cloud提供的⼀个声明式的伪Http客户端, 它使得调⽤远程服务就像调⽤本地服务⼀样简单, 只需要创建⼀个接⼝并添加⼀个注解即可。 Nacos很好的兼容了Feign, Feign 默认集了Ribbon, 所以在Nacos下使⽤Fegin默认就实现了负载均衡的效果

官⽅地址: https://github.com/OpenFeign/feign

1.1基本使⽤

1加⼊Fegin的依赖

<!--fegin组件-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2在主类上添加Fegin的注解

@EnableFeignClients// 开启 Fegin 

3创建⼀个service, 并使⽤Fegin实现微服务调⽤

4 修改controller代码,并启动验证

5 重启order微服务,查看效果 

1.2 ⾃定义配置

Feign可以⽀持很多的⾃定义配置,如下表所示:

⼀般情况下,默认值就能满⾜我们使⽤,如果要⾃定义时,只需要创建⾃定义的@Bean覆盖默认Bean 即可。

配置⽂件⽅式

基于配置⽂件修改feign的⽇志级别可以针对单个服务:

feign:client:config:service-product: # 针对某个微服务的配置loggerLevel: FULL #日志级别

也可以针对所有服务: 

feign:client:config:default: # 这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置loggerLevel: FULL #日志级别

注意:需要把⽇志级别设置

logging:level:com.wei: debug

 ⽽⽇志的级别分为四种:

  • NONE:不记录任何⽇志信息,这是默认值。
  • BASIC:仅记录请求的⽅法, URL以及响应状态码和执⾏时间
  • HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息
  • FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据。

1.3 Feign使⽤优化

 Feign底层发起http请求,依赖于其它的框架。其底层客户端实现包括:

  • URLConnection:默认实现,不⽀持连接池
  • Apache HttpClient :⽀持连接池
  • OKHttp:⽀持连接池

因此提⾼Feign的性能主要⼿段就是使⽤连接池代替默认的URLConnection

这⾥我们⽤Apache的HttpClient来演示

1 引入依赖

<!--httpClient的依赖 -->
<dependency><groupId>io.github.openfeign</groupId><artifactId>feign-httpclient</artifactId>
</dependency>

2 配置连接池

feign:client:config:default: # 这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置loggerLevel: FULL #日志级别httpclient:enabled: true # 开启feign对HttpClient的支持max-connections: 200 #最大连接数max-connections-per-route: 50 #每个路径的最大连接数

 总结:

1.⽇志级别尽量⽤basic

2.使⽤HttpClient或OKHttp代替URLConnection 

  • 引⼊feign-httpClient依赖
  • 配置⽂件开启httpClient功能,设置连接池参数

二、Dubbo远程调用

2.1 基本简介

Dubbo是阿⾥巴巴开源的基于 Java 的⾼性能 RPC分布式服务框架,致⼒于提供⾼性能和透明化 的RPC远程服务调⽤⽅案,以及SOA服务治理⽅案。 Spring Cloud Alibaba微服务开发框架集成 了Dubbo,可实现微服务对外暴露Dubbo协议的接⼝,Dubbo协议相⽐RESTful协议速度更快 RPC:RPC是远程过程(Remote Procedure Call)的缩写形式,调⽤RPC远程⽅法就像调⽤本地 ⽅法⼀样,Dubbo之前阿⾥研发,中间停⽌维护2年,最后开启维护并捐献给Apache

dubbo官⽹: http://dubbo.io/ 

2.2 基础实现

A.提供统⼀业务api

B.编辑服务提供者

添加依赖

 

<!--dubbo-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>

添加dubbo配置

dubbo:scan:base-packages: com.wei.service.implprotocols:dubbo:name: dubboport: -1registry:address: spring-cloud://localhost

编写并暴露服务

 

 C.编辑服务消费者

添加依赖

<!--dubbo-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>

添加dubbo配置

dubbo:registry:address: spring-cloud://localhostcloud:subscribed-services: service-product

 引⽤服务

服务调⽤测试 

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

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

相关文章

vue全局参数

/* eslint-disable no-new */ new Vue({el: #app,router,components: { App },template: <App/>,data:function(){return{wbWinList: [] // 定义的变量&#xff0c;全局参数}}, }) //使用全局参数 // this.$root.backgroundColor 666;其它页面如果想监听改变 //监听全…

git cherry-pick 用法

/* * cherry-pick */ git cherry-pick 允许开发者有选择地合并其他分支的提交到当前分支&#xff0c; 这对于解决代码冲突、修复bug以及在不同分支之间转移提交非常有用。 基本用法&#xff1a; 1.合并一个提交&#xff1a;通过指定提交的哈希值&#xff0c…

polarctf靶场[CRYPTO]显而易见的密码、[CRYPTO]夏多的梦、[CRYPTO]再这么说话我揍你了、[CRYPTO]神秘组织M

[CRYPTO]显而易见的密码 考点&#xff1a;ntlm编码 打开文件&#xff0c;显示内容就是ntlm格式 ntlm解密 在线网站&#xff1a; https://www.cmd5.com/便可得到flag [CRYPTO]夏多的梦 根据题目提示可以猜测为夏多密码 考点&#xff1a;夏多密码 在线加密原理网站&#x…

使用axios的fetch adapter遇到浏览器兼容问题

axios 2024年5月20号发布1.7.0版&#xff0c;开始支持fetch adapter&#xff0c;我是很高兴的&#xff0c;把此前fetch写的语句换成axios的&#xff0c;感觉简洁了很多。 因为我要post传urlencode编码参数&#xff0c;所以用fetch得这样&#xff1a; let data{k1:v1,k2:v2,k3:…

链表OJ题——链表的回文结构

文章目录 一、题目链接二、解题思路三、解题代码 一、题目链接 链表的回文结构 二、解题思路 三、解题代码

探索JetBrains IDE数据库驱动的存储位置及离线安装指南

JetBrains IDE&#xff0c;如IntelliJ IDEA和GoLand&#xff0c;是广受开发者喜爱的集成开发环境。它们提供了强大的数据库支持功能&#xff0c;包括数据库连接和操作。了解数据库驱动的存储位置对于进行离线安装和配置非常重要。 理解数据库驱动 数据库驱动是软件应用程序与…

4种方法!前端判断页面是在PC端还是移动端打开

4种方法&#xff01;前端判断页面是在PC端还是移动端打开 在写前端的过程中&#xff0c;有时候考虑适配与页面权限等问题的时候&#xff0c;需要涉及到用户访问的设备情况&#xff0c;下面将介绍几种常见的判断页面是在PC端还是移动端打开的方法。 方法1. 基于 navigator.use…

【JAVA基础】类与对象

文章目录 Java类Java对象为什么Java会设计对象Java对象怎么用程序的执行流程 Java类 JAVA类&#xff1a;项目中新建的.java文件就是JAVA类&#xff0c;其中包含代码&#xff0c;通过javac命令编译为二进制.class文件&#xff0c;让计算机读取。类是对象的模板 Java对象 JAVA…

【K8s】专题十二(2):Kubernetes 存储之 PersistentVolume

本文内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01; 如果对您有帮助&#xff0c;烦请点赞、关注、转发、订阅专栏&#xff01; 专栏订阅入口 Linux 专栏 | Docker 专栏 | Kubernetes 专栏 往期精彩文章 【Docker】&#xff08;全网首发&#xff09;Kyl…

Python学习-打工人挣钱

编程案例 example one: # 假设小王每天可以挣500元,周内每天花60,周末每天花100,一年365天可以挣多少钱?MoneySum=0 for i in range(365):if i % 7 in [6,0]:MoneySum

笔试题(6)

1 、static 的用法&#xff08;定义和用途&#xff09; 1&#xff09;用 static 修饰局部变量&#xff1a;使其变为静态存 储方式(静态数据区)&#xff0c;那么这个局部变量在函 数执行完成之 后不会被释放&#xff0c;而是继续保留在内存中。 2&#xff09;用 static 修饰全局…

【C++题解】1146. 求S的值

欢迎关注本专栏《C从零基础到信奥赛入门级&#xff08;CSP-J&#xff09;》 问题&#xff1a;1146. 求S的值 类型&#xff1a;递归基础、函数 题目描述&#xff1a; 求 S12471116…的值刚好大于等于 5000 时 S 的值。 输入&#xff1a; 无。 输出&#xff1a; 一行&…

自然语言处理系列三十四》 语义相似度》同义词词林》代码实战

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》&#xff08;人工智能科学与技术丛书&#xff09;【陈敬雷编著】【清华大学出版社】 文章目录 自然语言处理系列三十四HanLP自然语言处理工具包代码实战同义词…

原生js中的防抖节流笔记

防抖,单位时间内&#xff0c;频繁触发&#xff0c;只执行最后一次 效果演示 优化前&#xff0c;不断触发&#xff0c;浪费性能 优化后&#xff0c;只在指定时间内触发 演示代码 import debounce from "/node_modules/lodash-es/debounce.js"; const oBox docu…

宿舍管理系统设计与分析

第一章 管理信息系统概述 在人类进入21世纪之际&#xff0c;随着社会的组织化程度以及企业生产的社会化程度越来越高&#xff0c;信息作为一种资源已经和材料、能源并称为现代社会化发展的三大支柱之一。管理信息系统是融科学、信息科学、系统工程以及现代通讯技术、计算机技术…

大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

ollama+llama3.1 405B 简介

ollamallama3.1 简介 Llama 3.1是一款来自Meta的最新型号&#xff0c;提供8B、70 B和405 B模型。 llama3.1:latestllama3.1:8bllama3.1:70bllama3.1:405bllama3.1:8b-instruct-fp16llama3.1:8b-instruct-q2_Kllama3.1:8b-instruct-q3_K_Sllama3.1:8b-instruct-q3_K_Mllama3.1…

WSL-ubuntu下载安装配置cudnn

下载 安装cuDnn的话需要和CUDA版本对应&#xff0c;可参考官网&#xff1a; cuDNN Archive | NVIDIA Developer 我的cuda是11.8 这个cuDNN8.9.7_Linux直接下载&#xff1a; https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.7/local_installers/11.x/cudn…

简约好看音乐播放器网页网站MP4播放器源码

源码介绍 简约好看音乐播放器网页网站MP4播放器源码&#xff0c;music是存放音乐的文件夹&#xff0c;添加音乐也是非常简单&#xff0c;参考上图自己研究去吧&#xff0c;不多说了。 效果截图 源码下载 简约好看音乐播放器网页网站MP4播放器源码

[笔记]中间件基础 - 进一步阅读的扩展点

mqtt肯定可以称为中间件&#xff0c;对吧&#xff1f; MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级、开放源代码的发布/订阅传输协议&#xff0c;由IBM公司发起并作为一个开源项目开发。它通常用于物联网&#xff08;IoT&#xff09;设备之…