• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

SpringBoot开发之整合Dubbo分布式服务的介绍

springboot 搞代码 4年前 (2022-01-09) 26次浏览 已收录 0个评论

本篇文章给大家带来的内容是关于SpringBoot开发之整合Dubbo分布式服务的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

前言

在 SpringBoot 很火热的时候,阿里巴巴的分布式框架 Dubbo 不知是处于什么考虑,在停更N年之后终于进行维护了。在之前的微服务中,使用的是当当维护的版本 Dubbox,整合方式也是使用的 xml 配置方式。

改造前

之前在 SpringBoot 中使用 Dubbox是这样的。先简单记录下版本,Dubbox-2.8.4、zkclient-0.6、zookeeper-3.4.6。

项目中引入 spring-context-dubbo.xml 配置文件如下:

<?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:monitor protocol="registry"/>    <!-- 提供方应用信息,用于计算依赖关系 -->    <dubbo:application name="spring-boot-pay" />    <!-- 使用zookeeper注册中心暴露服务地址 subscribe 默认:true 是否向此注册中心订阅服务,如果设为false<p>本文来源gao!%daima.com搞$代*!码$网9</p>,将只注册,不订阅 check 默认:true 注册中心不存在时,是否报错    -->    <dubbo:registry protocol="zookeeper" address="192.168.1.180:2181" check="false"/>    <!--                生产者配置 生产者  远程默认调用3次 参数 retries="2" async="true" 异步返回结果 默认是同步 timeout="10000" 毫秒               用dubbo协议在20882端口暴露服务  固定线程池 10 启动时建立线程,不关闭,一直持有  负载均衡策略 轮询     -->    <dubbo:provider  timeout="10000"  threads="10" threadpool="fixed" loadbalance="roundrobin"/>    <!-- name="dubbo" 协议名称   为防止被大量连接撑挂,可在服务提供方限制大接收连接数,以实现服务提供方自我保护。 host 部署外网设置为内网通信地址-->    <dubbo:protocol name="dubbo" port="-1" dispatcher="all"  accepts="1000"   />        <!-- 使用注解方式-->         <dubbo:annotation package="com.itstyle"/></beans>

启动类引入以下注解:

@SpringBootApplication@ImportResource({"classpath:spring-context-dubbo.xml"})public class Application{    private static final Logger logger = Logger.getLogger(Application.class);    public static void main(String[] args) throws InterruptedException,            IOException {        logger.info("支付项目启动 ");    }}

改造后

然而 SpringBoot 引入了新的概念 Spring Boot Starter,它有效的降低了项目开发过程的复杂程度,对于简化开发操作有着非常好的效果。

starter的理念

starter 会把所有用到的依赖都给包含进来,避免了开发者自己去引入依赖所带来的麻烦。

需要注意的是不同的 starter 是为了解决不同的依赖,所以它们内部的实现可能会有很大的差异,例如 jpa 的starter 和 Redis 的 starter 可能实现就不一样,这是因为 starter 的本质在于 synthesize,这是一层在逻辑层面的抽象,也许这种理念有点类似于 Docker,因为它们都是在做一个“包装”的操作,如果你知道 Docker 是为了解决什么问题的,也许你可以用 Docker 和 starter 做一个类比。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SpringBoot开发之整合Dubbo分布式服务的介绍

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址