基于dubbo+zookeeper将web项目做垂直拆分

结构图

基于dubbo+zookeeper将web项目做垂直拆分_第1张图片

  1. 提供一个web工程,使用JSTL + springmvc 架构
  2. 一个订单order应用,一个用户user应用,一个积分score应用,使用spring + mybatis
  3. 三个应用对应着自己的数据库,数据库使用mysql
    基于dubbo+zookeeper将web项目做垂直拆分_第2张图片
  4. 基于dubbo 远程调用,使用zookeeper注册中心

项目代码

代码路径:https://github.com/dengjili/dubbo-demo

基于dubbo+zookeeper将web项目做垂直拆分_第3张图片

核心代码演示

通过dubbo调用,分别往三个中心插入数据

	@Autowired
	private IUserOperateService userOperateService;
	
	@Autowired
	private IOrderOperateService orderOperateService;
	
	@Autowired
	private IScoreOperateService scoreOperateService;
	
	@RequestMapping("/index")
	public ModelAndView index() {
		ModelAndView mv = new ModelAndView();
		String userId = userOperateService.createUser("张三");
		String orderId = orderOperateService.createOrder(userId, "商品订购");
		String score = scoreOperateService.addScore(userId, 100);
		mv.addObject("userId", userId);
		mv.addObject("orderId", orderId);
		mv.addObject("score", score);
		mv.setViewName("index");
		return mv;
	}

分别启动应用,应用启动逻辑

public class UserBootstratp {

	public static void main(String[] args) {
		/* Main.main(args); */

		Logger logger = LoggerFactory.getLogger(UserBootstratp.class);
		@SuppressWarnings("all")
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/applicationContext.xml");
		logger.debug("user app 启动完成...");
		
		try {
			System.in.read();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

在这里插入图片描述

测试

基于dubbo+zookeeper将web项目做垂直拆分_第4张图片
user结果
基于dubbo+zookeeper将web项目做垂直拆分_第5张图片

order结果
基于dubbo+zookeeper将web项目做垂直拆分_第6张图片

score结果

基于dubbo+zookeeper将web项目做垂直拆分_第7张图片

你可能感兴趣的:(dubbo)