基于分布式的云笔记实现(参考某道云笔记)

article/2025/8/18 22:14:20

注:
1)云笔记代码可在github上下载,如果对您有用,记得star一下。
2)依赖jar包可在以下地址下载jar包,密码:yvkj,放到web/lib下即可
3)hdfs配置参考网址
4)redis配置参考网址

一、产品简述

云笔记是在吸收了多年的运营数据,经过精确的大数据分析指导需求模型的建立从而实现的,云笔记通过大数据分布式存储解决方案解决了笔记信息量膨胀的问题,并且通过分布式搜索引擎服务以及数据分析推荐平台的建立提升了用户搜索分享比较的能力,系统可以有针对性的提供用户其他人分享的笔记资源扩充自己的知识行囊,并且在分享之外通过每个人的配额管理实现了非分享笔记的安全私有化,保证了用户的私人空间。通过分布式解决方案用户空间被设计为无限大。业务端同时提供了windows客户端,更加贴近用户的使用习惯,并且数据平台支持移动设备的接入,达到无处不学习,无处不笔记的效果。

二、技术关键词

web平台:
- nginx,keepalived+lvs ,tomcat,springmvc,jquery,fckeditor,mybatis,
- hadoop(hdfs,mapreduce),hbase,zookeeper,thrift,mysql,redis
客户端:
- windows

三、设计理念

将云笔记信息分别存储在redis和hbase中。
redis(缓存):存储每个用户的笔记本信息
hbase(持久层):存储用户的笔记本信息、笔记本下的笔记列表、笔记具体信息。

四、库表设计

1.笔记本

1.1 redis

keyvalue
loginNameList<String>

List<string>: List<笔记本的rowkey | 笔记本名称 | 时间戳 | status>
例子: List<senfeng_134223232343|aaaddd|1401761871307|0>

1.2 hbase 表名:nb rowkey : loginName_ timestamp 列簇1:noteBookInfo(nbi): 列:
notebookname(nbn):笔记本名称
createTime(ct):创建时间
status(st):状态
noteList(nl):笔记本下的笔记列表,是个json串(noteRowKey|name| createTime| status)

例子 senfeng403_1321312312 学习资料 123123123 1 {{“json1”},{“json2”}}

2.笔记

2.1**hbase** 表名:n RowKey : loginName_timestamp 列簇1:noteInfo(ni):笔记信息 列:
notename(nn):笔记的名字
createTme(ct):创建时间
status(st):笔记状态
列簇2:ContentInfo(ci):笔记本容信息 列:
content(c):笔记内容

例子 senfeng_1323242113 基础知识 1323242113 0 基础知识内容

3.创建hbase表语句

create 'nb','nbi'
create 'n','ni','ci'

五、功能描述

1.笔记本功能

1.1创建笔记本:

点击全部笔记本右侧的“+”号,会出现填写笔记本名字的对话框
这里写图片描述
填写笔记名字后,点击创建,笔记本创建成功
这里写图片描述

1.2修改笔记本:

双击想要修改的笔记本,修改“笔记本”名字。
这里写图片描述

1.3删除笔记本:

当“笔记本”下不存在笔记内容时,单击想要删除的笔记本,会出现“X”号。
这里写图片描述
点击“X”号,会提示是否删除笔记本,点击“是”,笔记本将不进入回收站,直接删除。
这里写图片描述
如“笔记本”下存在“笔记”,需要将笔记清空后方可删除“笔记本”。

2.笔记本功能

2.1新建笔记:

点击相应笔记本,会在右侧显示该“笔记本”下的所有笔记,点击相应笔记右侧的“+”号,创建“笔记名字”,填写完毕,点击保存,笔记创建成功。
这里写图片描述

2.2新建或修改笔记内容:

点击对应的“笔记”,会在内容栏出现“对应笔记”的内容, “添加”或“修改”笔记内容。
这里写图片描述
编辑结束,点击保存,笔记保存成功;不点击保存不予保存。
这里写图片描述

2.3笔记分享:

点击相应笔记,会出现笔记状态,有“分享按钮”时为未公开的笔记。
这里写图片描述
点击“分享按钮”,会将笔记变为分享状态(分享后的笔记不能取消分享),此时笔记分享成功。
这里写图片描述

2.4删除笔记:

点击相应笔记,在笔记标题右侧有“X”按钮,点击“X”按钮,会提示“是否删除此笔记?”,点击“是”,笔记进入“回收站”。
这里写图片描述

3.共享笔记查询功能

3.1查询共享笔记:

在搜索共享笔记栏中,输入想要搜索的共享笔记关键字,会在“笔记栏”查询出共享笔记中符合查询条件的所有笔记。
这里写图片描述

3.2收藏共享笔记:

选中想要收藏的笔记,会在内容栏出现笔记内容,点击内容栏右侧的“收藏”按钮,会弹出“选择收藏笔记本”对话框,选择相应的笔记本,并点击“确定”,笔记收藏成功,笔记收藏后为共享状态,并且可以在本地“编辑”和“保存”。
这里写图片描述

4.回收站

4.1恢复笔记:

点击“回收站”,会在笔记栏列出已经删除的 “笔记”,点击想要恢复的 “笔记”,点击标题右侧的“恢复”按钮,会弹出提示框,提示想要恢复到哪个“笔记本”,选择笔记本,点击回复,即可恢复。
这里写图片描述

4.2彻底删除笔记:

点击“回收站”,会在笔记栏列出已经删除的 “笔记”,点击想要彻底删除的 “笔记”,点击标题右侧的“垃圾箱”按钮,会弹出提示框,提示确定要彻底删除笔记吗,点击是,笔记彻底删除。
这里写图片描述


http://chatgpt.dhexx.cn/article/015eI9my.shtml

相关文章

高软作业1:云笔记软件调研

写在前面&#xff1a; 选择云笔记作为这次调研对象&#xff0c;是因为看到一位同学作业里关于iOS场景下面的笔记软件对比。这一下子让我想起自己入坑过的各款云笔记应用&#xff0c;他们基本上都拥有云端存储和多端同步的功能&#xff0c;但同时又都存在着各自的优缺点。本来一…

华为云学习笔记(二)

物联网发展简史与概述 物联网大事件&#xff1a;NB-lot标准演进 NB-lot&#xff1a; 窄带物联网&#xff08;Narrow Band Internet of Things, NB-IoT&#xff09;成为万物互联网络的一个重要分支。NB-IoT构建于蜂窝网络&#xff0c;只消耗大约180kHz的带宽&#xff0c;可直接…

阿里云笔记2.0

【达摩院特别版趣味视觉AI训练营】 智能视觉开放平台> 目的&#xff1a;致力于更专业、全面、易用的视觉AI能力 图片4通道和3通道的对比成效 人体分割技术&#xff0c;适应复杂背景 即使人物处于复杂背景环境&#xff0c;依然可以将人体准确地从背景中分割出来。 阿里云…

SG90舵机的驱动

很多资料说SG90舵机是靠PWM控制的&#xff0c;其实不是&#xff0c;亲测该舵机是靠高电平的时间控制的&#xff0c;只是对周期有要求&#xff0c;需要是20ms以内&#xff0c;没错20ms的周期时间不是固定周期&#xff0c;而是最大周期。我尝试了3-20ms都可以控制。 高电平的时间…

STM32控制SG90舵机与超声波HC_SR04测距模块

目录 前言 1、项目简介 项目相关内容 2、模块 1、系统定时器SysTick 2、舵机模块SG90 3、 超声波模块 HC-SR04 4、Main.c 5、总结 前言 这篇文章主要是对自己学习STM32做的一个总结&#xff0c;利用超声波模块加舵机模块进行的小项目&#xff0c;为了方便知识的回顾&…

STM32F103单片机控制SG90舵机

前言 在智能衣柜系统中&#xff0c;试用SG90旋转0-180&#xff0c;模拟衣柜的开关门&#xff0c;舵机正转开门&#xff0c;180-0反转模拟一个关门的现象。 一&#xff0c;SG90舵机 1.1SG90链接&#xff1a; 【淘宝】https://m.tb.cn/h.UjfPasG?tk10CNdeeB4Il CZ0001 「SG9…

Arduino与SG90舵机握手

Arduino教程传送门&#x1f9ed;&#x1f3d4;&#x1f30b;&#x1f6e4;&#x1f3de;&#x1f3dc; Arduino与SG90舵机握手 1.0 简介2.0 实验材料3.0 实验步骤3.1 根据原理图搭建电路3.2 新建sketch&#xff0c;拷贝如下代码并进行保存编译上传3.3 实验现象 4.0 总结 1.0 简…

C51单片机定时器2实现SG90舵机控制

谈起舵机最初的了解应用于航模&#xff0c;偶然的机会在网上看到有牛人使用多个舵机做人形机器人的关节&#xff0c;感觉这小东西很有趣&#xff0c;蒙发了买来学习学习的想法&#xff0c;这已经是多年前的事了&#xff0c;后来由于某些原因&#xff0c;这个想法直到今年才落地…

智能垃圾桶(七)——SG90舵机的介绍与使用(树莓派pico实现)

文章目录 一、SG90舵机的引脚介绍二、与pico引脚的对接三、舵机的使用原理四、Thonny程序五、效果展示一、SG90舵机的引脚介绍 舵机上会引出三根线:分别是GND(棕色线)、VCC(红色线)和SIG(黄色线),就是地线、电源线(5V)和信号线。千万不能接错! 二、与pico引脚的对接…

FPGA实现360°SG90舵机

SG90 SG90舵机需要注意区分90、180和360&#xff0c;今天要用的舵机是360的。 舵机是通过输入信号来控制转动的&#xff0c;360舵机不同于180舵机&#xff0c;它只有顺时针旋转、逆时针选择和停止&#xff0c;无法通过特定的信号来达到转动的角度。所以需要通过时间和转动速度…

PWM开发SG90

文章目录 2. PWM开发SG90 2.1 简介 2.3 控制舵机 2.4 遇见潇潇遇见你&#xff0c;不负代码不负卿 前言 2. PWM开发SG90 2.1 简介 PWM &#xff0c;英文名 Pulse Width Modulation &#xff0c;是脉冲宽度调制缩写&#xff0c;它是通过对一系列脉冲的宽度进 行调制&#xff0…

学习笔记12-SG90舵机

目录 一、简介接线 二、原理3、代码段3.1、sg90.c3.2、main.c 一、简介 舵机是一种位置&#xff08;角度&#xff09;伺服的驱动器&#xff0c;适用于需要角度不断变化并可以保持的控制系统&#xff0c;可以根据控制信号来输出指定的角度&#xff08;常见的有0-90、0-180、0-3…

PWM驱动sg90电机

关于PWM驱动sg90电机&#xff0c;不管是180还是360舵机都满足左侧的条件关系。 PWM周期为20ms&#xff0c;频率为50Hz 重装载值arr 1999 预分频值psc 7199 stm32f103主频72MHz TIM3_Int_Init(1999,7199);//Tout (arr1)(psc1)/TCLK;72000000/2000/720050PWM周期 (主频 / […

51单片机控制sg90舵机

2.1 简介 PWM&#xff0c;英文名Pulse Width Modulation&#xff0c;是脉冲宽度调制缩写&#xff0c;它是通过对一系列脉冲的宽度进 行调制&#xff0c;等效出所需要的波形&#xff08;包含形状以及幅值&#xff09;&#xff0c;对模拟信号电平进行数字编码&#xff0c;也就是说…

SG90舵机使用介绍

舵机控制 型号&#xff1a;SG90 接线 黄线&#xff1a;信号线 红线&#xff1a;电源线 棕线&#xff1a;地线 PWM周期 需要通过信号线往舵机输入PWM波&#xff0c;才能驱动舵机转动 PWM波的频率不能太高&#xff0c;大约50HZ&#xff0c;即周期1/频率1/500.02s&#xff…

51单片机sg90舵机

51单片机按键控制舵机旋转 一、舵机工作原理 1、这里介绍的sg90的可旋转角度为 0~180 2、sg90有三条线&#xff0c;橙色&#xff08;PWM&#xff09;红色&#xff08;5V&#xff09;棕色&#xff08;GND&#xff09; 3、PMW的范围为0.5ms2.5ms&#xff0c;相应的旋转角度为…

PWM开发SG90舵机

1. 简介 PWM,全称&#xff1a;Pulse Width Modulation,脉冲宽度调制缩写&#xff0c;它是通过宽度对一系列脉冲的宽度进行调制&#xff0c;等效出所需要的波形&#xff08;包含形状以及幅值&#xff09;&#xff0c;对模拟信号电平进行数字编码&#xff0c;也就是说通过调节占空…

控制SG90舵机

1. 什么是舵机 如下图所示&#xff0c;最便宜的舵机sg90&#xff0c;常用三根或者四根接线&#xff0c;黄色为PWM信号控制 用处&#xff1a;垃圾桶项目开盖用、智能小车的全比例转向、摄像头云台、机械臂等 常见的有0-90、0-180、0-360 VCC:接电压端 GND:接地端 PWM信号&#…

STM32控制SG90舵机

简介 通过使用STM32控制SG90舵机进行转动 PWM输出&#xff1a;PC6 定时器&#xff1a;TM3&#xff0c;通道1 接线如下&#xff1a; 控制原理及PWM配置 舵机的控制一般需要一个20ms的时基脉冲&#xff0c;该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分 PWM周…

【mcuclub】舵机-SG90

一、实物图&#xff08;SG90&#xff09; 二、原理图 编号名称功能1GND电源地&#xff08;棕色线&#xff09;2VCC电源正&#xff08;红色线&#xff09;3I/O信号线&#xff08;黄色线&#xff09; 三、简介 舵机&#xff08;英文叫Servo&#xff09;&#xff0c;是伺服电机的…