My Rabbitmq notes
# 1. MQ
# 1.1 MQ 的相关概念
什么是 MQ
MQ (message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常见的上下游 “逻辑解耦 + 物理解耦” 的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不用依赖其他服务。
为什么要用 MQ
流量消峰
举个例子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰绰有余,正常时段我们下单一秒后就能返回结果。但是在高峰期,如果有两万次下单操作系统是处理不了的,只能限制订单超过一万后不允许用户下单。使用消息队列做缓冲,我们可以取消这个限制,把一秒内下的订单分散成一段时间来处理,这时有些用户可能在下单十几秒后才能收到下单成功的操作,但是比不能下单的体验要好。
应用解耦
以电商应用为例,应用中有订单系统、库存系统、支付系统。用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障,都会造成下单操作异常。当转变成基 ...
Linux commands
# 命令行的艺术
前言
基础
日常使用
文件及数据处理
系统调试
单行脚本
冷门但有用
仅限 OS X 系统
仅限 Windows 系统
更多资源
免责声明
熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。
这篇文章是许多作者和译者共同的成果。
这里的部分内容
首次
出现
于 Quora,
但已经迁移到了 Github,并由众多高手做出了许多改进。
如果你在本文中发现了错误或者存在可以改善的地方,请贡献你的一份力量。
# 前言
涵盖范围:
这篇文章不仅能帮助刚接触命令行的新手,而且对具有经验的人也大有裨益。本文致力于做到覆盖面广(涉及所有重要的内容),具体(给出具体的最常用的例子),以及简洁(避免冗余的内容,或是可以在其他地方轻松查到的细枝末节)。在特定应用场景下,本文的内容属于基本功或者能帮助您节约大量的时间 ...
Redis Notes 尚硅谷
# Redis
# NoSQL
NoSQL (NoSQL = Not Only SQL),意即 “不仅仅是 SQL”,泛指非关系型的数据库
关系型数据库和非关系型数据库的定义可看我之前的文章
关系型数据库和非关系型数据库的详细分析
NoSQL 特点
1. 非关系型数据库,不依赖业务逻辑数据库存储,以简单 key-value 存储。因此大大的增加了数据库的扩展能力
2. 不遵循 SQL 标准
3. 不支持 ACID
适用于
高并发读写
海量数据读写
数据可扩展
不适用于
事务存储
复杂数据库
NoSQL 优点
1. 缓存数据库,完全在内存中,速度快,数据结构简单
2. 减少 io 操作,数据库和表拆分,虽然破坏业务逻辑,即外加一个缓存数据库,提高数据库速度,也可以用专门的存储方式,以及针对不同的数据结构存储
# 其他数据库
数据库
功能
Memcache
NoSql 数据库 / 数据都在内存中,一般不持久化 ///key-value 模式,支持类型单一 /// 一般是作为缓存数据库辅助持久化的数据库
Redis
几乎覆盖了 Memcached 的绝大 ...
Linux easy notes
# Linux 入门笔记
# 1 Linux 家族
大体上来讲,Linux 分为两个生态体系,红帽和 debian。商业版本以 Redhat 为代表,开源社区版本则以 debian 为代表。
【红帽家族 】
redhat :红帽自家服务器
centos :基于红帽重新封装的去掉版权信息的免费版本
fedora :基于红帽社区支持的桌面版,里面的包是红帽的实验版本,相对较新
包的管理方式:yum --> rpm
【debian 家族】
debian :debian 自家纯净系统,一般来说 Debian 作为适合于服务器的操作系统,它比 Ubuntu 要稳定得多。
Ubuntu : 在 debian 系统上封装了许多工具,Ubuntu 有着漂亮的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,但这也决定了它最佳的应用领域 是桌面操作系统而非服务器操作系统。
Kali : Kali Linux 前身是 BackTrack(基于 ubuntu),是一个基于 Debian 的 Linux 发行版,包含很多安全和取证方面的相关工具。
包的管理方式: apt --> ...
Linux notes
# Linux
Linux
前言
一、常用操作以及概念
快捷键
求助
关机
PATH
sudo
包管理工具
发行版
VIM 三个模式
GNU
开源协议
二、磁盘
磁盘接口
磁盘的文件名
三、分区
分区表
开机检测程序
四、文件系统
分区与文件系统
组成
文件读取
磁盘碎片
block
inode
目录
日志
挂载
目录配置
五、文件
文件属性
文件与目录的基本操作
修改权限
默认权限
目录的权限
链接
获取文件内容
指令与文件搜索
六、压缩与打包
压缩文件名
压缩指令
打包
七、Bash
特性
变量操作
指令搜索顺序
数据流重定向
八、管道指令
提取指令
排序指令
双向输出重定向
字符转换指令
分区指令
九、正则表达式
grep
printf
awk
十、进程管理
查看进程
进程状态
SIGCHLD
wait()
waitpid()
孤儿进程
僵尸进程
参考资料
# 前言
为了便于理解,本文从常用操作和概念开始讲起。虽然已经尽量做到简化,但是涉及到的内容还是有点多。在面试中,Linux 知识点相对于网络和操作 ...
Frontend interview questions
# HTML
# HTML 语义化
HTML 语义化就是让页面内容结构化,它有如下优点
1、易于用户阅读,样式丢失的时候能让页面呈现清晰的结构。
2、有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权重。
3、方便其他设备解析,如盲人阅读器根据语义渲染网页
4、有利于开发和维护,语义化更具可读性,代码更好维护,与CSS3关系更和谐
如:
<header>代表头部
<nav>代表超链接区域
<main>定义文档主要内容
<article>可以表示文章、博客等内容
<aside>通常表示侧边栏或嵌入内容
<footer>代表尾部
# HTML5 新标签
有<header>、<footer>、<aside>、<nav>、<video>、<audio>、<canvas>等...
# CSS
# 盒子模型
盒模型分为标准盒模型和怪异盒模型 (IE 模型)
box-sizing:content-box // ...
Easy frontend summary
# Web 模块
# html 基本结构
html 标签是由 <> 包围的关键词。
html 标签通常成对出现,分为标签开头和标签结尾。
有部分标签是没有结束标签的,为单标签,单标签必须使用 / 结尾。
页面所有的内容,都在 html 标签中。
html 标签分为三部分:标签名称,标签内容,标签属性。
html 标签具有语义化,可通过标签名能够判断出该标签的内容,语义化的作用是网页结构层次更清晰,更容易被搜索引擎收录,更容易让屏幕阅读器读出网页内容。
标签的内容是在一对标签内部的内容。
标签的内容可以是其他标签。
# 标签属性
class 属性:用于定义元素的类名
id 属性:用于指定元素的唯一 id ,该属性的值在整个 html 文档中具有唯一性
style 属性:用于指定元素的行内样式,使用该属性后将会覆盖任何全局的样式设定
title 属性:用于指定元素的额外信息
accesskey 属性:用于指定激活元素的快捷键
tabindex 属性:用于指定元素在 tab 键下的次序
dir 属性:用于指定元素中内容的文本方向,属性只有 l ...
My Javascript DOM, BOM, storage etc notes
# Javascript DOM and BOM
[TOC]
# 1. Web API
# Web APIs 与 JS 基础关联性
# js 的组成
JS 基础阶段:
我们学习的是 ECMAscript 标准规定的基本语法
要求同学们掌握 Js 基础语法
只学习基本语法,做不了常用的网页交互效果
目的是为了 Js 后面的课程打基础、做铺垫
Web APIs 阶段:
web APIs 是 w3c 组织的标准
web APIs 我们主要学习 DoM 和 BOM
web APIs 是我们 Js 所独有的部分
我们主要学习页面交互功能
需要使用 Js 基础的课程内容做基础
Js 基础学习 ECMAscript 基础语法为后面作铺垫,web APIs 是 Js 的应用,大量使用 Js 基础语法做交互效果
# API 和 Web API
# API
API (Application Programming Interface, 应用程序编程接口) 是一些预先定义的函数,目的是__提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理 ...
Frontend ByteDance Algorithm and Data Structure(javascript)
# 缘起
现在大厂面试中,算法题几乎为必考项,且近几年频现 LeetCode 真题,此篇为拿到字节、腾讯、京东 Offer 的笔者本人在准备面试过程中亲自刷过以及遇到过高频算法题。文章内容会分模块整理,对于笔者在面试过程中遇到的真题,会给予着重 【🔥】标出。
同时,可以毫不客气的说,如果你准备时间有限,又想追求算法题准备效率最大化,那么你只需要按照大纲把下面的题目刷完,并把代码烂熟于心,就几乎可以应对 90% 的面试算法考题了。
整理这篇内容的目的一个是笔者在之前准备面试时的一点积累,而它确实也帮助笔者在面试算法题中过关斩将,同时呢,也希望能够在金三银四给予拼搏的你,一点点帮助就好!💪
文末有福利 :)😈
本篇内容包括如下模块:
高频算法题系列:链表
【🔥】【有真题】高频算法题系列:字符串
【🔥】【有真题】高频算法题系列:数组问题
高频算法题系列:二叉树
【🔥】高频算法题系列:排序算法
【🔥】高频算法题系列:二分查找
【🔥】高频算法题系列:动态规划
高频算法题系列:BFS
【🔥】高频算法题系列:栈
【🔥】高频算法题系列:DFS
【🔥】高频算法题系列:回溯算法
...
SSM combine
# 0、简介
# 1. 功能需求:简单的 CRUD
分页 - 使用开源组件 PageHelper
数据校验
Jquery 前端校验 + JSR303 后端校验
ajax 进行前后端数据交互
Rest 风格的 URL ; 使用 HTTP 协议请求方法的动词,来表示对资源的操作 [ GET (查询)、 POST (新增)、 PUT (修改)、 DELETE (删除)]
# 2. 技术点
基础框架 - ssm
数据库 - MySQL
前端框架 - BootStrap 快速搭建简介美观的界面
项目的依赖管理 - Maven
分页 - pagehelper
逆向工程 - MyBatis Generator (之前未学过)
# 3. 环境搭建
创建一个 Maven 工程
引入项目依赖的 jar 包
Spring
SpringMVC
SpringJDBC
Aspect – 面向切面
<!-- spring -->
<!-- 切入点表达式 -->
<dependency>
<groupId> ...