加载中
分布式ID的简单总结

简单总结一下流行的分布式id的实现方法 雪花算法 snowflake是twitter开源的分布式ID生成算法. 核心思想是:分布式ID固定是一个long型的数字,一个long型占8个字节,也就是64个bit,原始snowf...

分布式锁的简单总结

为什么需要分布式锁 直接作用是保证同一时刻同一代码不被重复执行, 更深一层目的其实是为了保证“功效性”和“正确性”. 功效性(Efficiency) 即节省计算机资源, 减少不必要的重复执行. 如果只...

快速搭建一个https服务器

公司一直都有专业运维, 作为开发一般不碰证书这些东西, 所以自己想搭建一个测试服务器练练手. 准备 在阿里云上购买一台有外网IP(39.99.167.165)的ECS服务器, 然后在万网上买一个域名(wwxxyy...

2019/12/03 15:36
151
Redis、ZooKeeper、MySql的复制模式

Redis redis.conf配置文件里面关于复制的描述: # 1) Redis replication is asynchronous, but you can configure a master to # stop accepting writes if it appears to be not connected w...

2019/11/21 17:31
98
记录: 一次RocketMQ的生产事故

事故描述: 系统刚部署完毕, 前端还没有流量进来, 就发现历史所有的MQ消息又重新被消费了一次. 事故原因: 重构代码时, 消费者的“组名”不小心被修改了, 相当于新增了一个消费组: DefaultMQPu...

2019/11/10 21:06
102
Redis下Lua脚本的复制模式

假设我们的Redis选择了主从架构, 和AOF持久化方式. 当我们执行一条写命令时, 该条命令会被发送到从服务器, 和追加到AOF文件中. 当我们执行的不是一条命令, 而是Lua脚本时, 默认情况下, 整个L...

2019/11/04 16:26
1.6K
SpringBoot排除自动装配某个class来解决jar包冲突

最近和某第三方平台技术对接时, 由于对方的 restful api 还不完善, 于是被迫选择了sdk方式. 果然, 在使用SpringBoot集成sdk时, 遇上了让人头疼的jar包冲突. 对方的核心jar包依赖了gson-2.2....

2019/08/30 21:55
194
NIO基于长度域的报文在Netty下的解码

1, 先复习一下粘包/拆包 1.1, 粘包/拆包的含义 TCP是个“流”协议, 并不了解上层业务数据的具体含义, 它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP...

2019/06/27 00:29
195
单实例redis分布式锁的简单实现

redis分布式锁的基本功能包括, 同一刻只能有一个人占有锁, 当锁被其他人占用时, 获取者可以等待他人释放锁, 此外锁本身必须能超时自动释放. 直接上java代码, 如下: package com.test; impor...

2019/06/18 16:58
67
记录: 内部支付中心系统的一个改造

由于公司人员变动, 接手了一个还没完善的内部支付中心系统, 所谓“支付中心”, 作用就是对外整合各种第三方支付, 对内给各个业务子系统提供统一支付调度. 结构如下: 对于支付系统, 少不了支付...

2019/06/06 18:38
64
转载: /etc/rc.d/init.d 目录的一点理解

一、Linux的引导过程   系统启动之后,在进入init.d之前,我们先来看看系统都做了什么工作。系统加电之后,首先进行的硬件自检,然后是bootload对系统的初始化,加载内核。 内核被加载到内...

2019/05/16 16:45
68
JWT使用总结

JWT官网 https://jwt.io 简单粗暴地说, jwt是一个由服务端创建但不存储, 带有效期和签名的结构化字符串. 关于jwt的应用, 基于目前的学习和使用情况, 做个总结. 1, 谈jwt, 为什么有人提redis...

JWt
2019/05/07 11:20
78
Vue-router中hash与history的区别

Vue为了构建 SPA, 需要引入前端路由系统Vue-Router。前端路由的核心,就在于 —— 改变视图的同时不会向后端发出请求。 为了达到这一目的,利用浏览器的特性, Vue-Router提供了以下两种路由模...

2019/01/08 19:06
184
记录: 一次Ngnix代理问题的排查

场景 网络访问关系图如下, PC浏览器需要访问到Tomcat的Web应用. 因为网络隔离, PC机所在的环境访问不了Nginx2, 所以加了一层Nginx1的网络代理. Ngnix1的简要配置如下: server{ listen 8888; ...

Redis通过Lua实现原子操作

工作中我们经常利用redis来实现限速, 比如限制一个手机号60秒最多发送3条短信. 伪代码如下: long count = incr('手机号') ; if count==1 expire('手机号',60) ; if count>3 return "发送频率...

Nginx平滑添加模块

Nginx已经编译安装并运行了一段时间, 然后某一天, 发现需要用到某个模块但当初没有编译, 这个时候怎么办呢? 卸载重新安装肯定可以的, 如果Nginx版本没有变更的话, 则有一个相对平滑的方法来添...

2018/12/16 13:19
109
记录: 工作中遇到的一些设计上的坑

如果一段不好的代码写在局部方法里, 只要测试通过,也是一段稳定的代码, 即使要重构,也不会牵一发动全身. 比较坑的是技术“设计”上出现了缺陷, 不仅造成开发的复杂化, 后期bug的排查和修复也...

2018/11/11 18:36
120
浅谈后台应用的本地缓存

当缓存数据不需分布式共享, 且数据规模不大时, 我们就可以考虑使用应用的本地缓存. 本地缓存的设计重点: 1, 过期删除策略 2, 缓存淘汰策略 过期删除策略 对于设置了过期时间的缓存,删除策略一...

2018/11/11 02:30
202
RocketMQ双Master集群搭建

机器准备 2台独立的linux主机, 内网IP分别为: 172.31.175.142/143 172.31.175.142 NameServer1、 Broker Master1 172.31.175.143 NameServer2、 Broker Master2 安装配置 安装 下载二进制版本...

2018/10/10 18:43
513
Shell执行前先检查系统是否有JDK

error_exit () { echo "ERROR: $1 !!" exit 1 } [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java [ ! -e "$JAVA_HOME/...

2018/10/10 14:12
41

没有更多内容

加载失败,请刷新页面

返回顶部
顶部