Skip to content

rockit-ba/eventdriven-simple-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

eventdriven-simple-demo

使用springcloud-stream实现事件驱动简单示例

主要为三个服务:

article: 负责获取用户编写的文章。

relation:关系服务,某个人关注的作者。

recommend:根据用户id获取推荐给该用户的文章。

未考虑分布式事务的问题,通常来说事件驱动使用事件表的方式进行可靠投递和最终一致性。

详情可看代码注释。

# 文章服务数据库
CREATE TABLE `article` (
  `article_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `title` varchar(255) DEFAULT NULL,
  `create_time` datetime DEFAULT NULL,
  PRIMARY KEY (`article_id`)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8;

# 推荐服务数据库
CREATE TABLE `article` (
  `article_id` int(11) NOT NULL,
  `title` varchar(255) DEFAULT '',
  `create_time` datetime DEFAULT NULL,
  PRIMARY KEY (`article_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `recommend_article` (
  `user_id` int(11) NOT NULL,
  `article_id` int(11) NOT NULL,
  PRIMARY KEY (`user_id`,`article_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

# 关系服务数据库
CREATE TABLE `attentions` (
  `user_id` int(11) NOT NULL,
  `attention_user_id` int(11) NOT NULL,
  PRIMARY KEY (`user_id`,`attention_user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `user` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT '',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

About

使用springcloud-stream实现事件驱动简单示例

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages