TungSing's Blog

用心记录一切!


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 相册

  • 搜索

常见限流算法

发表于 2020-01-19 | 分类于 jave , algorithm , 限流

前言

工作中遇到了限制请求数的场景,学习和记录一下解决办法。

总结

在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流
缓存:缓存的目的是提升系统访问速度和增大系统处理容量
降级:降级是当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行
限流:限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理

限流

常见的限流算法有计数器、令牌桶和漏桶算法

阅读全文 »

volitile 关键字

发表于 2019-05-26 | 更新于 2019-05-27 | 分类于 java

常用方法

volatile:解决的是变量在多线程之间的可见性
synchronized: 解决的是多线程之间访问资源的同步性

volatile轻量级的线性间通信

自己实现本地缓存

发表于 2019-05-17 | 更新于 2019-05-18 | 分类于 cache , jave , algorithm

前言

在扩展框架中的缓存组件相关功能时浏览了本地缓存的实现,其核心是LUR算法,记录下LUR的相关内容加深记忆和理解

环境

  • windows 10
  • jdk7

LUR

LRU全称是Least Recently Used,即最近最久未使用的意思。 LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。

阅读全文 »

golang 学习

发表于 2019-05-11 | 更新于 2019-05-18 | 分类于 golang , go

前言

为了看懂某站的源代码,就学了一下golang,记录一下学习过程慢慢积累

学习记录

代码记录在github上面,下面列举一下文件夹的内容,以防忘记

阅读全文 »

golang import 理解

发表于 2019-04-25 | 更新于 2019-05-18 | 分类于 golang , go

包的理解

Golang中有package的概念。在go源码文件的第一行就是先声明包名:

1
package xxx

这里的包名相当于一个标签,不是字符串。和所在文件夹没有关系,比如:上述源码在GOPATH/golang-learning/chapter06/文件夹下,它的包名就是xxx

阅读全文 »

golang 项目组织

发表于 2019-04-25 | 更新于 2019-05-12 | 分类于 golang , go

前言

项目目录结构如何组织,一般语言都是没有规定。但Go语言这方面做了规定,这样可以保持一致性

环境变量

  1. GOROOT就是Go被安装的地方
  2. GOPATH指向你的工作区,这就是如何让Go找到你的代码
  3. 其他环境变量,一般情况不需要设置,要查看所有Go环境变量,请输入:go env
    1
    2
    3
    4
    5
    6
    7
    8
    9
    C:\Users\tungS>go env
    set GOARCH=amd64
    set GOBIN=
    set GOCACHE=C:\Users\tungS\AppData\Local\go-build
    set GOEXE=.exe
    set GOFLAGS=
    set GOHOSTARCH=amd64
    set GOHOSTOS=windows
    .....
阅读全文 »

golang IDE 选择

发表于 2019-04-25 | 分类于 golang , go

前言

IDE有事半功倍效果,所以选择一个,但IDE对原理理解有影响

选择

据说JetBrains家的IDE比较好用所以直接选择GoLand

golang 环境搭建

发表于 2019-04-21 | 更新于 2019-05-11 | 分类于 golang

前言

开始学习golang

环境说明

centos7

环境搭建

  1. go官网下载安装包
1
# wget https://dl.google.com/go/go1.12.4.linux-amd64.tar.gz
阅读全文 »

DataUtils工具类优化

发表于 2019-03-22

前言

之前就看资料说SimpleDateFormat是线程不安全的,正好框架里面有自己的DataUtils类,正好优化并学习一下

环境

jdk1.7

阅读全文 »

Redhat7.5 安装 使用 GitLab

发表于 2019-02-28 | 更新于 2019-05-18

版本选择

如果想安装指定版本,需要在下面的网站中下载指定版本。

  1. GitLab资源库
  2. GitLab资源库社区版
  3. GitLab资源库企业版
阅读全文 »
12…4

tungSing

多读书多看报
40 日志
11 分类
54 标签
RSS
GitHub Twitter
© 2017 – 2020 tungSing