- 浏览: 498771 次
- 性别:
- 来自: 广州
最新评论
文章列表
共识算法
一致性协议
说到共识算法,大家首先想到的应该都是 Raft、Paxos、Zab 算法这类理解起来比较困难的强一致性算法。
但是还有一个弱一致性的共识算法比较好理解,Gossip 协议。
为了保证各个节点的数据的一致性,必然就涉及到数据的更新操作。
Gossip protocol 也叫 Epidemic Protocol (流行病协议)
Gossip 设计了两种可能的消息传播模式:反熵(Anti-Entropy)和传谣(Rumor-Mongering),
因为这个网站里面直接有非常仿真的动画模拟 gossip 协议的同步过程,一个动图胜过千言万语。
地址先放在这里,大家可 ...
RESTFul接口设计指南
- 博客分类:
- 技术规范
概述
REST 一词是由 Roy Fielding 博士于 2000 年在他的博士论文[ Architectural Styles and the Design of Network-based Software Architecture|https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm] 中提出的,实际指一种有助于创建和组织分布式系统的架构风格 ...
规范的目的是为了编写高质量的代码,让你的团队成员每天得心情都是愉悦的,大家在一起是快乐的。
一.编程规约
(一) 命名规范
项目命名
全部采用小写方式,以中线分隔。
正例:mall-management-system
反例:mall_management-system / mallManagementSystem
目录命名
全部采用小写方式, 以中划线分隔,有复数结构时,要采用复数命名法, 缩写不用复数。
正例: scripts / styles / components / images / utils / layouts / demo-styles / demo-scrip ...
名词定义
规范化:将数据的各种编码方式和表式转换成为一种单一的简单形式。
跨站点请求伪造:一个外部网站或应用程序强迫一个客户端制作一个非意愿的请求到另一个有活跃会话的客户端应用程序。当它们使用已知的、可 ...
MySQL开发规范
设计规范
1.【推荐】字段允许适当冗余,以提高查询性能,但必须考虑数据一致。冗余字段应遵循:
不是频繁修改的字段。
不是 varchar 超长字段,更不能是 text 字段。
正例: 商品类目名称使用频率高,字段长度短, ...
delete from cacherefresh where 1=1;
COMMIT;
//=====================================================
获取数据库所有表明的SQL
MYSQL
select table_name from information_schema.tables where table_schema='当前数据库';
select table_name from information_schema.tables where table_schema = (select database()) order by ...
ES数据同步方案
- 博客分类:
- 数据库
- elasticSearch使用
//===============================================================
ES数据同步方案
1.同步双写
数据写到mysql时,同时将数据写到ES,实现数据的双写。
优点:业务逻辑简单。
缺点:硬编码,业务强耦合,性能较差,代码的侵入性太强
2.异步双写(MQ方式)(程序到MQ,MQ再到MYSQL和ES)
改为写MQ,不直接写ES
优点:性能高(由于MQ的性能基本比mysql高出一个数量级);不存在丢数据问题
缺点:硬编码,业务强耦合,代码的侵入性太强,延时
3.异步双写(Worker方式)(定时任务)
让该程序按一定的时间周期扫描 ...
选举算法
常用的选举算法有比较简单的Bully算法和复杂而强大的Paxos算法。
Bully算法
每个节点有一个唯一ID,然后对集群中所有的节点ID进行排序,选取其中最小的ID所属的节点作为Master。
Bully算法的问题: 假设当前Master因为负 ...
ElasticSearch
基于Apache Lucene构建的开源搜索引擎;
采用Java编写,提供简单易用的 RESTFul API;(Post,put,get,delete)
轻松的横向扩展,可支持PB级的结构化或非结构化数据处理;
应用场景
海量数据分析引擎
站内搜索引擎
数据仓库
一线公司实际应用场景:
英国卫报-实时分析公众对文章的回应;
维基百科、Github-站内实时搜索
百度-实时日志监控平台
ElasticSearch基础概念
集群和节点:
索引:含有相同属性的文档集合;相当于mysql的Database
类型:索引可以定义一个或多个类型,文档必须属于一个类型;类似于m ...
大小写转换快捷键
ctr+shift+u
IDEA生成get/set方法
光标在类里面,按alt+insert
快速插入try或for或if模块的代码
ctrl+shift+T
idea 自动生成补全变量名 快捷键
CTRL+ALT+V
idea 更改变量名
ALT+/
iter
for (String arg : args) {
}
itco
for (Iterator iterator = collection.iterator(); iterator.hasNext(); ) {
Object next = iterator.next();
}
...
1.TEXT与BLOB的区别,二者之间的主要差别是BLOB能用来保存二进制数据,比如照片;而TEXT只能保存字符数据,比如一遍文章或日记。(OK)
2.表索引的前缀长度,前缀索引兼顾索引大小和查询速度
3.varchar(255)的原因,对于变长字段 ...
SQL存储过程例子和有用的SQL
- 博客分类:
- 数据库
delete from cacherefresh where 1=1;
COMMIT;
//=====================================================
获取数据库所有表明的SQL
MYSQL
select table_name from information_schema.tables where table_schema='当前数据库';
select table_name from information_schema.tables where table_schema = (select database()) order by ...
docker-machine ssh default
docker pull zookeeper
docker pull chenchuxin/dubbo-admin
docker images
docker run --name myZookeeper -p 32181:2181 -d zookeeper
docker run --name myZookeeper --restart always -e JVMFLAGS="-Xmx1024m" -p 2181:2181 zookeeper
docker run --name myZookeeper -p ...
docker run -d -p 13306:3306 --name mysql_master -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
mysql -uroot -p
GRANT ALL ON *.* TO 'root'@'%';
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_passwor ...