网站开发的公司推荐,搜索关键词热度,长治怎么做平台软件,东莞松山湖邮编前言
眼看着2023即将走远#xff0c;心里想着似乎还有啥#xff0c;需要再跟各位盆友叨叨。这不说曹操#xff0c;曹操就来了。趁着上一篇Dubbo博文的余温尚在#xff0c;博主兴匆匆地“赶制”了Dubbo的下集#xff0c;以飨读者。 上一篇博主依然从Dubbo的内核出发#…前言
眼看着2023即将走远心里想着似乎还有啥需要再跟各位盆友叨叨。这不说曹操曹操就来了。趁着上一篇Dubbo博文的余温尚在博主兴匆匆地“赶制”了Dubbo的下集以飨读者。 上一篇博主依然从Dubbo的内核出发阐明了它是如何running的。而今天博主继续带着各位盆友了解如何使用它。鉴于当前SpringDubbo组合的流行本博是基于Spring完成相关介绍。
如需寻一份Dubbo最新的官方源码请速戳apache dubbo github sourcecode 如需查阅最近的中文文档请速戳apache dubbo doc
使用Dubbo
什么是契约简单讲可以理解为通信双方必须遵守的约定。既然Dubbo是基于RPC通信完成服务调用那么服务提供者P与服务消费者C必须建立在同一个“频率”完成互相握手。
那么在RPC中或者具体到Dubbo使用过程中如何建立“契约”请紧随博主脚步以防迷路。
1、创建BaseService 一个base api可以作为通信的“契约”实现P与C的互相通信。 通常我们在创建BaseService的时候以接口的形式出现当然必须符合java的接口设计原则。形如
public interface MyBaseService {/*** 基础服务* param input 输入内容*/String doWork(String input) throws ServiceException;
}2、创建服务提供者P
创建BaseService完成后我们可以创建一个Provider。形如
Service(myService)
public class MyBaseServiceImpl implements MyBaseService {OverrideString doWork(String input) throws ServiceException{return running:input;}
}定义完成后我们应该把它发布到服务环境中怎么发布
!-- --!-- 服务提供应用名称 --
dubbo:application namemyservice-provider/
!-- 指定注册中心 --
dubbo:registry idmyservice addresszookeeper://localhost:2181/
!-- 服务发布协议及暴露端口 --
dubbo:protocol namedubbo port28080/
!-- 声明需要暴露的服务接口--
dubbo:service interfacecom.mytest.MyBaseServicerefmyService timeout300000 retries0 loadbalanceroundrobin/其中dubbo:service几个参数的解释如下
参数名参数说明interface提供服务的接口全路径ref服务提供类通常是已实现了interface的Beantimeout超时时间单位毫秒retries重试次数当服务异常时触发loadbalance负载均衡方式默认随机
行文至此我们已经新建了一个Provider可以通过Spring启动也可以通过web容器部署。当然部署时我们可以观察到每个服务均以dubbo协议发布服务请求的URL如下所示 dubbo://localhost:28080/com.mytest.MyBaseService当然该URL是基础路径还包括了dubbo:service中指定的各种参数以及服务的请求方法。
3、创建服务消费者C
具备了服务提供者那么我们可以准备一个服务消费者用于请求提供者发布的服务。 首先声明一个服务代理形如
dubbo:reference interfacecom.mytest.MyBaseService idmyBaseService checkfalse loadbalanceroundrobin retries0/其中dubbo:reference 几个参数的解释如下
参数名参数说明interface请求服务的接口全路径id接口唯一IDcheck是否开启服务检测loadbalance负载均衡方式默认随机
声明完成后我们可以新建一个class实现RPC调用。
实际上我们经常使用的dubbo架构如下图示意。这也是本期介绍的主要内容。 结语 Dubbo 为开发者提供从项目创建、开发测试到部署、可视化监测、流量治理再到生态集成的全套服务。 从这句话可以了解Dubbo为微服务的开局和繁荣提供了持久的源动力当然它依然在逐步进化中。博主衷心的希望Dubbo更上一层楼为微服务继续添砖加瓦。 历史回顾 微服务实战系列之Dubbo上微服务实战系列之ZooKeeper实践篇微服务实战系列之ZooKeeper下微服务实战系列之ZooKeeper中微服务实战系列之ZooKeeper上微服务实战系列之MQ微服务实战系列之通信微服务实战系列之J2Cache微服务实战系列之Cache技巧篇微服务实战系列之MemCache微服务实战系列之EhCache微服务实战系列之Redis微服务实战系列之Cache微服务实战系列之Nginx技巧篇微服务实战系列之Nginx微服务实战系列之Feign微服务实战系列之Sentinel微服务实战系列之Token微服务实战系列之Nacos微服务实战系列之Gateway微服务实战系列之加密RSA微服务实战系列之签名Sign