java 探花交友项目篇1Dubbo 提供者消费者 dubbo高级特性 启动检查 多版本 时和重试 负载均衡
Dubbo的前世今生
SOA架构
Dubbo介绍
Dubbo是阿里巴巴公司开源的一个高性能、轻量级的 Java RPC 框架。
致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。
官网:http://dubbo.apache.org
目前Dubbo在企业中有两种开发思路
feign不适合高并发,所以我们替换成Dubbo
Dubbo的快速入门
Dubbo的基本架构
nacos:
安装DubboAdmin
修改配置:Dubbo-admin-server/src/main/resource下的appilication.properties文件
这里我们修改成nacos以及nacos的端口8848
在dubbo-admin目录下打开终端输入命令
mvn --projects dubbo-admin-server spring-boot:run
然后
搭建环境
(1)创建user-provider模块导入依赖
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<!--dubbo的起步依赖-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>3.0.11</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-registry-nacos</artifactId>
<version>3.0.11</version>
</dependency>
</dependencies>
(4):配置
server:
port: 18081
spring:
datasource:
url: jdbc:mysql://localhost:3306/dubbo-demo?useSSL=false
username: root
password: 123
driver-class-name: com.mysql.jdbc.Driver
application:
name: user-provider
logging:
level:
cn.itcast: debug
pattern:
dateformat: HH:mm:ss:SSS
#配置dubbo提供者
#dubbo协议和访问端口
dubbo:
protocol:
name: dubbo
port: 20881
#注册中心地址
registry:
address: nacos://127.0.0.1:8848
#dubbo注解的包扫描
scan:
base-packages: cn.itcast.user.service
依赖:
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--dubbo的起步依赖-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>3.1.4</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-registry-nacos</artifactId>
<version>3.1.4</version>
</dependency>
</dependencies>
然后我们访问消费者的方法,,返回成功就可以了
Dubbo的最佳实践
抽取为独立模块,然后我们在各自的pom引入该模块的依赖就可以了:
<dependency>
<groupId>cn.itcast</groupId>
<artifactId>user-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
序列化
所以我们的domain类,都实现Serializable就行了
Dubbo的高级特性
启动检查
多版本
我们通过版本号,保证升级的平稳过渡
超时与重试
dubbo 利用超时机制来解决这个问题(使用timeout属性配置超时时间,默认值1000,单位毫秒)
若超时时间较短,当网络波动时请求就会失败,Dubbo通过重试机制避免此类问题的发生
一次没有成功,默认会再进行两次请求,可以通过consumer.retries设置(推荐改成0)
负载均衡
以上均可以在DubboReference里设置参数:
SpringCloud整合Dubbo
为什么需要Dubbo?
Spring Cloud Alibaba提供了微服务开发的一站式解决方案,内部包含开发分布式应用微服务的必需组件,通过 Spring Cloud编程模型轻松整合Dubbo完成微服务调用 官方地址: https://github.com/alibaba/spring-cloud-alibaba
模块分析:
1、创建dubbo-api模块,引入依赖
2、抽取公共接口
import cn.itcast.dubbo.domain.User;
public interface UserService { User queryById(Long id); }
父工程加入SpringCloud Alibaba依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
消费者和提供者引入nacos注册中心和Dubbo依赖
<!--nacos注册中心的依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--springcloud alibaba dubbo依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgjjijh
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13