hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 杂谈 - 正文 君子好学,自强不息!

微效劳架构案例(03):数据库选型简介,营业数据计划设想

2019-11-18杂谈搜奇网38°c
A+ A-

本文源码:GitHub·点这里 || GitEE·点这里

更新进度(共6节):

01:项目手艺选型简介,架构图解申明

02:营业架构设想,体系分层治理

03:数据库选型,营业数据设想计划

一、数据库挑选

1、数据库分类

数据库范例 罕见数据库
关联型 MySQL、Oracle、DB2、SQLServer等。
非关联型 Hbase、Redis、MongodDB等。
行式存储 MySQL、Oracle、DB2、SQLServer等。
列式存储 Hbase、ClickHouse等。
分布式存储 Cassandra、Hbase、MongodDB等。
键值存储 Memcached、Redis、MemcacheDB等。
图形存储 Neo4J、TigerGraph等。
文档存储 MongoDB、CouchDB等。

2、数据库挑选

基于特定的运用环境,挑选最适合的数据库,竖立数据存储形式,使之能够有效地存储数据,满足种种用户的运用需求。比方:一般的营业库,数据量不大情况下挑选MySQL;有频仍的搜刮操纵,能够运用ElasticSearch;体系存在大批热门数据,能够运用罕见的缓存数据库等。

3、微效劳数据库

微效劳架构的一个症结点是数据库设想计划,基本原则是每一个效劳都有自身零丁的数据库,而且只要微效劳自身能够接见这个数据库。其他的效劳如果想接见,只能经由过程挪用该效劳对外供应的接口举行操纵,如许能够紧缩数据库操纵的接口,在题目排查和机能优化上都能够供应支持,如许也使体系的框架更具有条理。该形式图解以下:

微效劳C经由过程微效劳A操纵数据库A,或许经由过程微效劳B操纵数据库B。

二、计划营业数据库

1、整体分别

重要运用三种数据存储:MySQL(分别三个营业库),ElasticSearch(单台),Redis(单台)。

2、用户库

(user-data)存储用户相干的数据结构,比方User信息,Token,操纵日记等。

CREATE TABLE `hc_user_base` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `user_name` varchar(50) DEFAULT NULL COMMENT '用户名',
  `pass_word` varchar(300) DEFAULT NULL COMMENT '加密暗码',
  `phone` varchar(30) DEFAULT NULL COMMENT '手机号',
  `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  `create_time` datetime DEFAULT NULL COMMENT '建立时候',
  `update_time` datetime DEFAULT NULL COMMENT '更新时候',
  `state` int(1) DEFAULT '0' COMMENT '状况:0可用,1禁用',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';

3、治理体系库

(admin-data)存储背景微效劳治理体系的支持数据库,比方定时器,治理员权限,设置字典等。

-- 治理员列表
CREATE TABLE `hc_admin_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `user_name` varchar(50) DEFAULT NULL COMMENT '用户名',
  `pass_word` varchar(300) DEFAULT NULL COMMENT '加密暗码',
  `phone` varchar(30) DEFAULT NULL COMMENT '手机号',
  `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  `create_time` datetime DEFAULT NULL COMMENT '建立时候',
  `update_time` datetime DEFAULT NULL COMMENT '更新时候',
  `state` int(1) DEFAULT '0' COMMENT '状况:0可用,1禁用',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='治理用户表';

-- 角色和权限列表
CREATE TABLE `hc_role_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `role_name` varchar(64) DEFAULT NULL COMMENT '角色称号',
  `role_auth` varchar(64) DEFAULT NULL COMMENT '角色权限',
  `create_time` datetime DEFAULT NULL COMMENT '增加时候',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='体系角色表';

-- 定时器列表
CREATE TABLE `schedule_job` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '使命id',
  `bean_name` varchar(200) DEFAULT NULL COMMENT 'spring bean称号',
  `params` varchar(2000) DEFAULT NULL COMMENT '参数',
  `cron_expression` varchar(100) DEFAULT NULL COMMENT 'cron表达式',
  `status` tinyint(4) DEFAULT NULL COMMENT '使命状况  0:一般  1:停息',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  `create_time` datetime DEFAULT NULL COMMENT '建立时候',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='定时使命';

4、数据剖析库

(report-data)存储数据归档的报表,剖析效果等,案例重要演示把用户的搜刮行动举行剖析,存储到报表库。

-- 书本搜刮纪录
CREATE TABLE `hc_search_book` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `user_id` int(11) DEFAULT NULL COMMENT '用户ID',
  `book_id` int(11) DEFAULT NULL COMMENT '书本ID',
  `book_name` varchar(100) DEFAULT NULL COMMENT '书本称号',
  `search_time` datetime DEFAULT NULL COMMENT '搜刮时候',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='书本被搜刮纪录';

-- 症结词搜刮纪录
CREATE TABLE `hc_search_key_word` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `user_id` int(11) DEFAULT NULL COMMENT '用户ID',
  `key_word` varchar(50) DEFAULT NULL COMMENT '症结词',
  `search_num` int(11) DEFAULT NULL COMMENT '搜刮次数',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='症结词搜刮纪录';

5、搜刮引擎库

(es-data)存储用户的搜刮数据,能够基于MySQL库动态及时的导入到ES效劳。

-- 书本搜刮信息表
CREATE TABLE `hc_book_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `book_name` varchar(100) DEFAULT NULL COMMENT '书本称号',
  `book_author` varchar(100) NOT NULL DEFAULT '0' COMMENT '作者',
  `book_desc` varchar(200) DEFAULT NULL COMMENT '简介',
  `book_press` varchar(100) NOT NULL DEFAULT '0' COMMENT '出版社',
  `create_time` datetime DEFAULT NULL COMMENT '建立时候',
  `update_time` datetime DEFAULT NULL COMMENT '更新时候',
  `state` int(1) DEFAULT '0' COMMENT '状况:0可用,1删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='书本信息表';

三、数据库设想总结

数据库设想是微效劳设想的一个中心点,基本原则是每一个微效劳都有自身零丁的数据库,而且只要微效劳自身能够接见这个数据库。在微效劳架构中,数据库设想首先要满足用户的需求,便于保护和扩大,具有很好的读写机能,还能够协助开发人员明白和治理体系。

四、源代码地点

GitHub·地点
https://github.com/cicadasmile/husky-spring-cloud
GitEE·地点
https://gitee.com/cicadasmile/husky-spring-cloud

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
微效劳架构案例(03):数据库选型简介,营业数据计划设想

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/282018.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>