当前位置: 首页 > news >正文

discuz可以做门户网站吗/厦门百度广告

discuz可以做门户网站吗,厦门百度广告,做团购网站哪家好些,保定百度推广排名在上一篇文章,我们介绍如何使用 Dubbo 进行服务间的远程通信,我们采用的模式是,调用方(Consumer)直接通过 URL 调用 Provider 发布的服务。虽然这样也实现了远程通信的目标,但是作为主流的服务治理组件&…

在上一篇文章,我们介绍如何使用 Dubbo 进行服务间的远程通信,我们采用的模式是,调用方(Consumer)直接通过 URL 调用 Provider 发布的服务。虽然这样也实现了远程通信的目标,但是作为主流的服务治理组件,最根本的就是要解决大规模集群之后的服务注册和发现的问题,那么,难道我调用一个服务时,需要把集群所有结点 URL 都记下来?要调用很多个服务呢?所以这样使用 Dubbo 在实际开发中势必是不可取的。

那怎么办呢?引入注册中心,Provider 把服务发布到注册中心,Consumer 去中心中心通过服务接口找相应的服务实现。如果服务是大规模集群,Consumer 也根本不用关心,它需要知道就只有注册中心的地址,负载均衡,服务监控这些情注册中心都给做了。

Dubbo 能够支持的注册中心有:consul、etcd、nacos、sofa、zookeeper、 redis、multicast 等。而一般 Dubbo 的注册中心选用 zookeeper,因为除了数据存储外,zookeeper 还提供了 watcher 机制,即只要服务发生变化,调用方就能感知到。

下面我们就通过注册中心来对上一篇的代码进行改造…

注:因为注册中心主要解决的是服务注册发现问题,所以上一篇我们服务实现(Provider)和服务调用(Consumer)的具体 Java 代码不用修改,要改的地方只有配置文件。

引入zookeeper作为服务注册中心

给 pay-provider 与 order-service 都需要引入zk的客户端,即 curator 的相关依赖

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

1.pay-provider 改造

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd"><dubbo:application name="pay-service"/><!-- 若用注册中心则要引入其相应客户端jar包(如curator),并且url前要加上zookeeper://--><dubbo:registry address="zookeeper://43.107.136.120:2181"/><dubbo:protocol name="dubbo" port="20880"/><dubbo:service interface="com.xupt.yzh.IPayService" ref="payServic"/><bean id="payServic" class="com.xupt.yzh.PayServiceImpl"/></beans>

2.order-service 改造

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd"><dubbo:application name="order-service"/><dubbo:registry address="zookeeper://43.107.136.120:2181"/><!-- 当有注册中心时,就不需要url了--><dubbo:reference interface="com.xupt.yzh.IPayService" id="PayService"/></beans>

3.注册中心原理

引入注册中心有什么用呢?为什么 Consumer 直接配置个注册中心的地址就可以了?我们登到 zk 上去一看究竟…

在这里插入图片描述

可以看到,zookeeper 会为当前服务的 url 创建一个临时节点。Dubbo 相关内容是的根节点是 dubbo,第二级节点是服务的接口,叶节点是一个临时节点,是相应服务 URL(注:还&包含了服务名等信息 )。所以,当 Consumer 需要调用哪个服务时,就可以通过相应接口找到具体的服务实现,不用再自己记 URL 了。

问题一:Consumer 每次调用服务都要去查一次注册中心?

可以在消费端会进行缓存;通过配置缓存文件的路径开启

<dubbo:registry id="zookeeper" address="zookeeper://43.107.136.120:2181"  file="d:/dubbo-server" /> 

问题二:Dubbo 支持同时配置多个注册中心吗?

Dubbo 中可以支持多注册中心,有的时候,客户端需要用调用的远程服务不在同一个注册中心上,那么客户端就需要配置多个注册中心来访问。演示一个简单的案例

<!-- 配置多个注册中心,这里需要指定id -->
<dubbo:registry address="zookeeper://192.168.13.102:2181"  id="registryCenter1"/> 
<dubbo:registry address="zookeeper://192.168.13.103:2181"  id="registryCenter2"/> 
<!-- 将服务注册到不同配置中心,这里需要指定registry-->
<dubbo:service interface="com.xupt.LoginService" ref="loginService" registry="registryCenter1"/> 

消费端同理,在dubbo:registry中指定id,然后dubbo:reference中指定registry属性即可

问题三:注册中心 dubbo:registry 还有其他特性吗?

  • 当设置 <dubbo:registry check=“false” /> 时,记录失败注册和订阅请求, 后台定时重试
  • 可通过 <dubbo:registry username=“admin” password=“1234” /> 设置 zookeeper 登录信息
  • 可通过 <dubbo:registry group=“dubbo” /> 设置 zookeeper 的根节点,默认使用 dubbo 作为 dubbo 服务注册的 namespace

4.几个流程

  • 服务注册:服务提供者(Provider)启动时,会向 Zookeeper 服务端注册服务信息,即会在 Zookeeper 服务器上创建一个服务节点,并在节点上存储服务的相关数据(如服务提供者的ip地址、端口等),比如注册一个用户注册服务(user/register)。

  • 服务发现:服务消费者(Consumer)启动时,会根据本身依赖的服务信息,向 Zookeeper 服务端获取注册的服务信息并设置 Watcher,获取到注册的服务信息之后将服务提供者信息缓存在本地,调用服务时直接根据从 Zookeeper 注册中心获取到的服务注册信息调用服务,比如发现用户注册服务(user/register)并调用。

  • 服务通知:当服务提供者因为某种原因宕机或不提供服务之后,Zookeeper 服务注册中心的对应服务节点会被删除,因为服务消费者在获取服务信息的时候在对应节点上设置了Watch,因此节点删除之后会触发对应的 Watcher,Zookeeper注册中心会异步向服务所关联的所有服务消费者发出节点删除的通知,服务消费者根据收到的通知更新缓存的服务列表。

http://www.lbrq.cn/news/1602613.html

相关文章:

  • 胶州建网站/在线网页制作工具
  • android源码下载网站/南宁推广公司
  • 火车头wordpress自动排版/网站推广和网站优化
  • wordpress做导语/seo搜索引擎优化技术教程
  • 网站不用了怎么办/电商运营公司简介
  • 网站建设工作经历/百度帐号登录个人中心
  • 专业做网站公司怎么样/关键词文案生成器
  • lol网站怎么做/网站软文代写
  • phpbb wordpress/seo初级入门教程
  • 网站备案域名怎么买/深圳seo网络推广
  • 郴州做网站的/危机舆情公关公司
  • 做网站学什么软件/汽车推广软文
  • 彩票开奖网站开发/深圳网络营销模式
  • 北京市建设网站/免费推广的平台
  • 做网站需要学些什么条件/绍兴seo优化
  • 六安网站建设找哪家/友情链接平台站长资源
  • 淘宝做的代码能在其他网站用吗/网站的seo是什么意思
  • 好看的网站建设/长春网站优化流程
  • b2b2c网站开发/伟哥seo博客
  • 子网站怎么建设/关键词查询
  • 个人工商户做网站备案/莆田网站建设优化
  • 网站建设 价格/网络推广如何收费
  • 个人网站可以做音乐下载网/合肥网站推广助理
  • 网站下载文件怎么做/百度搜索网
  • 专做定制旅游网站有哪些/微信广告平台
  • 建设局网站首页/整站seo定制
  • 网站开发项目经理职责/百度教育小程序
  • 智慧旅游网站开发与设计/排名优化百度
  • 贵港网站建设公司/seo网页优化服务
  • 怎么看一个网站做得好不好/百度客服电话是多少
  • Antlr学习笔记 01、maven配置Antlr4插件案例Demo
  • STM32_Hal库学习SPI
  • Redis之通用命令与String类型存储
  • 老电脑PE下无法读取硬盘的原因
  • 专网内网IP攻击应急与防御方案
  • linux进度条程序