前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dubbo框架介绍「建议收藏」

Dubbo框架介绍「建议收藏」

作者头像
全栈程序员站长
发布2022-07-29 15:22:16
3750
发布2022-07-29 15:22:16
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

Dubbo是一个常用的分布式服务框架,它致力于提供高性能和透明化的RPC远程调用服务方案,Dubbo有助于开发企业级的开发效率,以及可以通过简单的配置就可以做到负载均衡。

一、Dubbo的基础知识

1.Dubbo是什么

2.Dubbo涉及的知识

二、Dubbo框架设计介绍

1.Dubbo的各个角色

Dubbo在设计的时候,抽象出了四个角色的概念,它包括Consumer、Provider、Registry、Monitor。Consumer就是我们常说的消费者,Provider表示服务的提供者,Registry表示Dubbo服务的注册中心,实际上Dubbo并没有这样的一个注册应用,它只是抽象出了注册中心的这么一个概念,Monitor是监控类型的一个角色。

首先,Provider将服务注册到注册中心上,然后Consumer获取到这些服务,来调用Provider。或者当Provider提供的服务有变化时,也会相应的通知Consumer。Provider和Consumer在调用时,都会发送相应的统计信息给Monitor.

2.生产者配置和启动

①引入maven依赖

代码语言:javascript
复制
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>dubbo</artifactId>
			<version>2.5.3</version>			
		</dependency>

②编写配置文件

Spring默认目录:classpath*:META-INFO/spring/*.xml

这个文件下的所有xml都会加载到spring容器中,如果有Dubbo相关的配置,就会启动对应的NIO容器。

③xsd文件

代码语言:javascript
复制
<?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://code.alibabatech.com/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://code.alibabatech.com/schema/dubbo
        http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> 
    
    <dubbo:application/> 
    <dubbo:provider/>	  
    <dubbo:registry/>
    <dubbo:protocol/>
    <dubbo:service  interface="com.gome.service.ReadService"  ref="readService"/>

</beans>

④Dubbo标签

3.消费之配置和启动

①引入maven依赖

代码语言:javascript
复制
                <dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>dubbo</artifactId>
			<version>2.5.3</version>			
		</dependency>

②编写配置文件

Spring默认目录:classpath*:META-INFO/spring/*.xml

③加载XML的方式

1>自定义容器加载xml

代码语言:javascript
复制
ApplicationContext ctx = new ClassPathXmlApplicationContext("/spring/spring-config.xml");

2>web类型配置

代码语言:javascript
复制
<context-param>
		<param-name>contextConfigLocation</param-name>
		<parem-value>classpath*:/spring/spring-config.xml</parem-value>
	</context-param>

3>Junit启动方式

代码语言:javascript
复制
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath*:spring-*.xml"})
public class HttpRpcTest{}

④xsd文件

代码语言:javascript
复制
<?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:jee="http://www.springframework.org/schema/jee"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
	http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"
	default-lazy-init="false" >
	
   <dubbo:application></dubbo:application>   
   <dubbo:registry></dubbo:registry> 
   <dubbo:consumer></dubbo:consumer>  
   <dubbo:reference></dubbo:reference>
    
</beans>

⑤Dubbo标签

在这里需要注意,Dubbo中引用的spring的版本是2.5的,要和项目中的保持一致。这里只是对Dubbo框架的相关配置做了简单的介绍,也是站在RPC框架的基础上,Dubbo是RPC的一种实现,理解了PRC的底层原理,能更好的帮助我们Dubbo框架的相关配置。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/129303.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档