sgg---dubbo

RPC基础。

----------------------------03--------------------------------

灰度发布。

------------------------------------04-----------------------------

设计架构:

------------------------------------05-----------------------------

安装zookeeper:https://blog.csdn.net/qq_28764557/article/details/104943624

------------------------------------06-----------------------------

安装monitor:dubboadmin:https://blog.csdn.net/qq_28764557/article/details/104943624

------------------------------------07-----------------------------

代码:

把接口什么的都写到一个独立的过程,pom引入,到时候打包就可以打在一起了。

此时我们调这个方法要远程调用的:

------------------------------------08-----------------------------

1.将服务的提供者注册到注册中心。

2.消费者去服务的注册中心去订阅。

我们实现1:

第一步:导入dubbo依赖

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>dubbo</artifactId>
	<version>2.6.2</version>
</dependency>

第二步:注册到注册中心,引入zookeeper的客户端,注意版本的问题

<dependency>
	<groupId>org.apache.curator</groupId>
	<artifactId>curator-framework</artifactId>
	<version>2.12.0</version>
</dependency>

第三步:配置服务的提供者

<!-- 1、指定当前服务/应用的名字(同样的服务名字相同,不要和别的服务同名) -->
	<dubbo:application name="user-service-provider"></dubbo:application>
	
	<!-- 2、指定注册中心的位置 -->
	<!-- <dubbo:registry address="zookeeper://127.0.0.1:2181"></dubbo:registry> -->
	<dubbo:registry protocol="zookeeper" address="192.168.244.130:2181"></dubbo:registry>
	
	<!-- 3、指定通信规则(通信协议?通信端口) -->
	<dubbo:protocol name="dubbo" port="20882"></dubbo:protocol>
	
	<!-- 4、暴露服务   ref:指向服务的真正的实现对象 -->
	<dubbo:service interface="com.atguigu.gmall.service.UserService" 
		ref="userServiceImpl01" timeout="1000" version="1.0.0">
		<dubbo:method name="getUserAddressList" timeout="1000"></dubbo:method>
	</dubbo:service>
	<!-- 服务的实现 -->
	<bean id="userServiceImpl01" class="com.atguigu.gmall.service.impl.UserServiceImpl"> 
    </bean>

配置文件的配置的步骤:

1.指定服务的名字

2.指定配置中心

3.协议,用什么通信,端口

4.暴露服务

没有应用任何注解的。

------------------------------------09-----------------------------

消费者:主要看下配置文件,这三步。

1.服务名称

2.注册地址

3.声明接口,生成远程服务代理

为了使注解生效,我们要启用包扫描,这个是spring的service

服务的提供者:

对应的配置文件:

服务的消费者:

对应的配置文件:

总览:

这个是纯的原生的spring配置方案。

------------------------------------10-----------------------------

监控中心要自己打包的:

修改或者jar包就可以。

保证整个正确就可以了。

我自己启动失败了。

服务端和客户端都要连接监控中心。

重启。

------------------------------------11-----------------------------

dubbo与springboot整合。

我们创建两个springboot应用。

配置服务的提供者:

1.导入dubbo的starter

注意导入的版本的规则:

<dependency>
	<groupId>com.alibaba.boot</groupId>
	<artifactId>dubbo-spring-boot-starter</artifactId>
	<version>0.2.0</version>
</dependency>

2.导入dubbo的其他依赖

3.配置:

其他的配置:

之前我们不在impl里面写@Service直接使暴露的很麻烦的。

现在:

4.开启dubbo:

---------------------------------

客户端:

1.引入starter

2.

server.port=8081

dubbo.application.name=boot-order-service-consumer
dubbo.registry.address=zookeeper://192.168.244.130:2181
dubbo.monitor.protocol=registry  // 这个是自己在注册中心根据协议找监控中心

3.注解

4.同样开启

测试:

暴露服务就是@Service,引用服务就是@Reference

------------------------------------12-----------------------------

dubbo配置文件的优先级:

第一个是java命令吧。

1的优先级大于2

------------------------------------13-----------------------------

启动检查,客户端:

<!-- 配置当前消费者的统一规则:所有的服务都不检查 -->
	<dubbo:consumer check="false" timeout="5000"></dubbo:consumer>

------------------------------------14-----------------------------

默认是1000ms。

超时设置:调用服务的提供者时间过长就会引起许多线程的阻塞的。

精确优先。

超时会报错的。

我们可以全局设置的:

提供者也可以指定超时属性:

---

总结:同级别的消费者是优先的提供方次之。

          不同级别的精确有限而不是消费者优先的。

------------------------------------15-----------------------------

重试次数,不包含第一次调用,超时时间配合重试次数的:

失败了 还可以重试其他的服务:

开启三个服务的提供方:

也是重试的其他服务器,不在一颗树上吊死了,重试次数是假如三个水平服务,失败了一个,再去第二个,再去第三个,凑足四次。

原则:

------------------------------------16-----------------------------

多版本的设置:灰度发布。

客户端测试:

可以是* 也可以是1.0.0

------------------------------------17-----------------------------

本地存根:

第一步:

消费者,必须有有参构造器,传入的远程接口的代理实现。

第二步:有参构造器

第三步:判断

第四步:配置

使用的时候放在接口里面。

------------------------------------18-----------------------------

springboot与dubbo整合的三种方式:

 * SpringBoot与dubbo整合的三种方式:
 * 1)、导入dubbo-starter,在application.properties配置属性,使用@Service【暴露服务】使用@Reference【引用服务】
 * 2)、保留dubbo xml配置文件;
 * 		导入dubbo-starter,使用@ImportResource导入dubbo的配置文件即可
 * 3)、使用注解API的方式:
 * 		将每一个组件手动创建到容器中,让dubbo来扫描其他的组件

第一种方式:

配置文件写了包扫描,就不用写这个注解了

这种方式是不能做到方法级别的精确的配置的。

----------------------------------

服务端第二种方式:这个可以精确的更细

暴露service不用写了

---------------------------------------

服务端第三种方式:配置类,这个和xml其实是一样的。

此时重点,指定扫描路径:

暴露服务

------------------------------------19-----------------------------

高可用:

 

dubbo直连:

这个要和提供者的端口是一样的都是20882。

------------------------------------20-----------------------------

集群的负载均衡:名称一样的搞一个集群启动

轮询是权重用完了就不来了。

测试负载均衡:

第一步:启动多个 服务端

第二步:启动一个消费者,dubbo默认是随机的

默认是Random。

第三步:如何改变?在服务端客户端都可以

自己定制:https://www.cnblogs.com/dalaoyang/p/11328748.html

可以在控制台调节权重。

------------------------------------21-----------------------------

服务的降级:

屏蔽掉一些服务。

直接在控制台设置:

第一个:

第二个:

服务的提供者:

超时容错。

------------------------------------22-----------------------------

服务容错:

集群的容错模式。5个。

实际我们整合Hystrix进行容错的。

第一步:

服务端引入

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>
		spring-cloud-starter-netflix-hystrix
	</artifactId>
</dependency>

第二步:开启服务

第三步:

异常的容错。

第四步:写消费者导入pom,开启服务注册

Hystrix:https://blog.csdn.net/yunzhaji3762/article/details/84331296

Hystrix 是隔离、熔断以及降级的一个框架。

第五步:

 

------------------------------------23-----------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值