• Dubbo:服务提供者、消费者相关配置


    1.架构

     

    2.提供者配置

    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
           xmlns="http://www.springframework.org/schema/beans"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
           http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
    
        <!--指定当前服务的名字,不要与别的服务同名-->
        <dubbo:application name="dubbo-server-provider"/>
        <!--指定注册中心位置-->
        <dubbo:registry address="zookeeper://192.168.10.132:2181"/>
        <!--指定通信规则(协议/端口)-->
        <dubbo:protocol name="dubbo" port="10000"/>
        <!--暴露服务 ref:指向服务真正的实现对象-->
        <dubbo:service interface="com.wj.UserService" ref="userServiceImpl"/>
    
        <!--服务实现-->
        <bean id="userServiceImpl" class="com.wj.service.impl.UserServiceImpl"/>
    </beans>
    

     service实现:

    注意实体类需要实现Serializable接口,否则会报错,因为远程调用过程有序列化和反序列化过程。

    public class UserServiceImpl implements UserService {
    
        @Override
        public List<User> getAll() {
            User user1 = new User(1, "张三", 12, "北京");
            User user2 = new User(2, "李四", 13, "北京");
            return Arrays.asList(user1, user2);
        }
    }
    

    Main方法:

    public class ProviderMain {
        public static void main(String[] args) throws IOException {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
            context.start();
            System.in.read();
        }
    }
    

      

    3.消费方配置

    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
           xmlns="http://www.springframework.org/schema/beans"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-4.3.xsd
           http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
    
        <!--消费者服务名-->
        <dubbo:application name="dubbo-server-consumer"/>
        <!--注册中心地址-->
        <dubbo:registry address="zookeeper://192.168.10.132:2181"/>
        <!--声明需要远程调用的远程服务接口,生成远程服务代理-->
        <dubbo:reference interface="com.wj.UserService" id="userServiceImpl"/>
    
        <context:component-scan base-package="com.wj"/>
    
    </beans>
    

     消费者类:

    @Controller
    public class UserController {
        @Autowired
        UserService userService;
        public List<User> getAll(){
            return userService.getAll();
        }
    }
    

    Main方法:

    public class ConsumerMain {
        public static void main(String[] args) throws IOException {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
            UserController bean = context.getBean(UserController.class);
            List<User> users = bean.getAll();
            for (User user : users) {
                System.out.println(user);
            }
            System.in.read();
        }
    }

     4.分别运行两个main方法 

    消费方打印结果:

     

     dubbo admin上服务调用关系:

    代码已上传至github

  • 相关阅读:
    用 VMControl 管理 IBM i,第 1 部分: VMControl 简介
    使用 VMControl 2.4 实现多网络的 Power 服务器捕捉和系统部署
    lftp 4.4.0 发布,命令行的FTP工具
    Percona Toolkit 2.1.4 发布
    RabbitMQ 2.8.7 发布,AMQP 消息队列
    编程获取本机IPv4及IPv6地址
    Mac下android环境搭建
    Python 3.3.0 RC3 发布
    Sean Lynch谈Facebook Claspin监控工具的由来
    .NET开发者可以在Windows 8中使用ARM
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/12964244.html
Copyright © 2020-2023  润新知