dubbo 实现简易分布式服务

dubbo 实现简易分布式服务,第1张

dubbo 实现简易分布式服务 dubbo 实现简易分布式服务

服务器需要搭建zookeeper环境

zookeeper端口2181

还需要有java环境

1.需求

某个电商系统,订单服务需要调用用户服务获取某个用户的所有地址;

我们现在 需要创建两个服务模块进行测试

模块功能订单服务web模块创建订单等用户服务service模块查询用户地址等

测试预期结果

订单服务web模块在A服务器,用户服务模块在B服务器,A可以远程调用B的功能。

2.工程架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aOAIZG4h-1642477640192)(C:UsersjiejieAppDataRoamingTyporatypora-user-imagesimage-20220118114313932.png)]

3.创建项目 3.1 公共接口层 ego-interface

简单maven项目即可

1.修改pom.xml文件

    
      org.projectlombok
      lombok
      ${lombok.vsersion}
    
  
2.创建实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserAddress implements Serializable {
    private static final long serialVersionUID = 1L;
    private Integer id;
    private String userId;
    private String userAddress;
}
3.创建公共接口 UserService
public interface UserService {
    
    public List queryAllAddress(Integer id);
}

OrderService
public interface OrderService {
    
    public List initOrder(Integer uid);
}
3.2 用户服务模块 ego-user-service-provider (服务提供者) 1.修改pom.xml文件

    
    
      com.hgzy
      03-ego-interface
      1.0-SNAPSHOT
    

  
    com.alibaba
    dubbo
    2.6.7
  

  
    com.101tec
    zkclient
    0.11
  
  
  
    org.apache.curator
    curator-framework
    4.1.0
  
  
    io.netty
    netty-all
    4.1.32.Final
  


2.创建服务实体类
@Service
public class UserServiceImpl implements UserService {
    private static List addresses=new ArrayList();
    static {
        addresses.add(new UserAddress(1,"1","湖南省株洲市荷塘区湖南化工职业技术学院"));
        addresses.add(new UserAddress(2,"2","湖南省永州市祁阳县"));
    }

    @Override
    public List queryAllAddress(Integer id) {
        return addresses;
    }
}
3.applicationContext.xml


    
    
    
    
    
    


 
  
    
    

4.测试服务 TestProvider
public class TestProvider {
    public static void main(String[] args) throws IOException {
        ApplicationContext ac=
                new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
        System.out.println("服务提供者启动成功");
        System.in.read();
    }
}

3.3 订单服务(服务消费者) ego-order-service-consumer 1.修改pom.xml文件

    
    
      com.hgzy
      03-ego-interface
      1.0-SNAPSHOT
    

  
    com.alibaba
    dubbo
    2.6.7
  

  
    com.101tec
    zkclient
    0.11
  
  
  
    org.apache.curator
    curator-framework
    4.1.0
  
  
    io.netty
    netty-all
    4.1.32.Final
  


2.创建服务实体类
@Service
public class OrderServiceImpl implements OrderService {

    @Reference
    private UserService userService;

    public void setUserService(UserService userService) {
        this.userService = userService;
    }

    @Override
    public List initOrder(Integer uid) {
        return userService.queryAllAddress(uid);
    }
}
3.applicationContext.xml



    

    

    
   

  
        
<    


测试类
public class TestConsumer {
    public static void main(String[] args) throws IOException {
        ApplicationContext ac=
                new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
        OrderService orderService = (OrderService) ac.getBean(OrderService.class);
        for (UserAddress userAddress : orderService.initOrder(1)) {
            System.out.println(userAddress);
        }
        System.in.read();
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5709121.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存