文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Dubbo+zookeeper搭配分布式服务的方法

2023-06-29 20:01

关注

本文小编为大家详细介绍“Dubbo+zookeeper搭配分布式服务的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“Dubbo+zookeeper搭配分布式服务的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

分布式架构: 

当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,前端应用能更快速的响应多变的市场需求。 
2.此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。

Dubbo 是什么

Dubbo:

作为分布式架构比较后的框架,同时也是比较容易入手的框架,适合作为分布式的入手框架,下面是简单的搭建过程

工具:idea+tomact+zookeeper (知识点:jsp,spring,springmvc,maven)

思想:

Dubbo+zookeeper搭配分布式服务的方法

依赖:

<dependencies>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context</artifactId>            <version>5.2.5.RELEASE</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-webmvc</artifactId>            <version>5.2.5.RELEASE</version>        </dependency>        <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>4.1.0</version>        </dependency>        <dependency>            <groupId>com.atchengdu</groupId>            <artifactId>001-interface</artifactId>            <version>1.0-SNAPSHOT</version>        </dependency>    </dependencies>

工程分布:

Dubbo+zookeeper搭配分布式服务的方法

provider实现interface提供服务,constomer消费provider提供的服务

interface:

Dubbo+zookeeper搭配分布式服务的方法

package com.atchengdu.serviceinterface; import com.atchengdu.pojo.User;public interface Userservice {    //获取user的信息    User getuserByid(Integer ie);}package com.atchengdu.pojo;import java.io.Serializable;public class User implements Serializable {    private Integer id ;    private String name;    public User(Integer id, String name) {        this.id = id;        this.name = name;    }    public User() {    public Integer getId() {        return id;    public void setId(Integer id) {    public String getName() {        return name;    public void setName(String name) {    @Override    public String toString() {        return "User{" +                "id=" + id +                ", name='" + name + '\'' +                '}';

 provider:

Dubbo+zookeeper搭配分布式服务的方法

package com.atchengdu.Modulserviceimpl; import com.atchengdu.pojo.User;import com.atchengdu.serviceinterface.Userservice;public class Userserviceimpl implements Userservice {    @Override    public User getuserByid(Integer ie) {        User user=new User(1,"张三");        return user;    }}
<?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 name="002-provider"></dubbo:application>    <!--设置协议和端口号-->    <dubbo:protocol name="dubbo" port="20880"></dubbo:protocol>    <!--使用注册中心-->    <dubbo:registry address="zookeeper://localhost:2181"></dubbo:registry>    <!--暴露服务接口-->    <dubbo:service interface="com.atchengdu.serviceinterface.Userservice" ref="userserviceimpl"></dubbo:service>    <!--加载业务实实现了-->    <bean id="userserviceimpl" class="com.atchengdu.Modulserviceimpl.Userserviceimpl"></bean></beans>

constomer:

Dubbo+zookeeper搭配分布式服务的方法

package com.atchengdu.webcontroller; import com.atchengdu.pojo.User;import com.atchengdu.serviceinterface.Userservice;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping; @Controllerpublic class Usercontroller {    @Autowired    private Userservice userservice;    @RequestMapping("/user")    public  String user(Model model,Integer id ){        User user = userservice.getuserByid(id);        model.addAttribute("user",user);        return "user";    }}
<?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:context="http://www.springframework.org/schema/context"       xmlns:aop="http://www.springframework.org/schema/aop"       xmlns:mvc="http://www.springframework.org/schema/mvc"       xmlns:tx="http://www.springframework.org/schema/task"       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd                            http://www.springframework.org/schema/task https://www.springframework.org/schema/task/spring-task.xsd                           http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd                           http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"><context:component-scan base-package="com.atchengdu.webcontroller"></context:component-scan><mvc:annotation-driven></mvc:annotation-driven>    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="suffix" value=".jsp"></property>        <property name="prefix" value="/"></property>     </bean></beans>
<?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 name="003-constomer"></dubbo:application>    <dubbo:registry address="zookeeper://localhost:2181"></dubbo:registry>    <dubbo:reference id="userservice" interface="com.atchengdu.serviceinterface.Userservice"></dubbo:reference></beans>

读到这里,这篇“Dubbo+zookeeper搭配分布式服务的方法”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯