YaPiBlog


You look look you one day day de

网关安全

网关安全 微服务整体架构图 相关功能组件 服务注册与发现:consul,etcd,zookeeper,eureka 配置中心:Spring Cloud Config,携程的阿波罗,duic OAuth2 OAuth(Open Authorization,开放授权)是为用户资源的授权定义了一个安全、开放及简单的标准,第三方无需知道用户的账号及密码,就可获取到用户的授权信息...

API安全

API安全 基础知识点 请求未被授权,则应该返回403状态码 请求验证需要认证,但未认证,则应返回401状态码。比如:没有携带认证信息,或者携带的信息错误 请求数过多,返回429 实现访问控制有两种方法 ACL: Access Control Lists 简单易用,实现容易,但不易管理。比如:linux的用户管理,需要对每个用户设置它能干什么,...

Go并发编程 - (四)同步、锁

锁 sync.Mutex 读写锁 sync.RWmutex 读写锁包含了四种基本方法 func(*RWMutex) Lock() func(*RWMutex) UnLock() func(*RWMutex) RLock() func(*RWMutex) RUnLock() 读锁并不影响其他的读,但是会阻塞对应的写锁。写解锁会试图唤醒所有因欲进行读锁定而被阻塞的go...

Go并发编程 - (三)Goroutine

示例 package main import ( "fmt" "time" ) func main() { name := []string{"Eric", "Harry", "Robert", "Jim"} for _, d := range name { go func() { fmt.Printf("Hello,%s!\n", d) }() } tim...

Go并发编程 - (二)Go线程模型实现

线程模型实现 goroutine是GO特有的应用程序线程。 有3个必知的核心元素,它们支撑起了这个模型的主要框架 M:machine的缩写。一个M代表一个内核线程,或称“工作线程” P:processor的缩写。一个P代表一个GO代码片段所必须的资源(或称上下文环境) G:goroutine的缩写。一个G代表一个Go代码片段。 简单来说,一个G的执行需要P和M的支持。一...

Go并发编程 - (一)并发编程基础

并发编程基础 所谓并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。 串行程序与并发程序 串行程序特指只能被顺序执行的指令列表,并发程序则是可以被并发执行的两个及以上的串行程序的综合体。并发程序允许其中的串行程序运行在一个或个可共享的CPU上,同时也允许每个串行程序都运行在专门为它服务的CPU上。前一种方式也被成为多元程序,由操作...

数据结构(十一)红黑树

2-3树 满足二分搜索树的基本性质,但是它不是一种二叉树,它有两种节点,节点可以存放一个元素或这两个元素,存放一个元素时有左右两个孩子,存在两个元素的节点有三个孩子 2-3树添加节点不会添加到一个null的位置,比如从头开始添加节点,添加c,而后添加b的时候不会成为c的孩子节点。而会成为c的左孩子,当继续添加d的时候还是会添加到b旁边,成为3个节点,然后,从b进行分裂,d,c成为他的子孩...

数据结构(十)AVL

二分搜索树的缺陷 根据添加入树的顺序不同,树可能会退化称为链表,所以需要有一定的机制去避免。 AVL树 (两个俄罗斯人的名字简写) 通常被认为是最早的自平衡的二叉树,二分搜索树的变种 AVL树中定义的平衡二叉树 对于任意一个节点,左子树和右子树的高度差不能超过1(可以左边比右边高,也可以右边比左边高), 平衡二叉树的高度和节点数量之间的关系也是O(logn)的 平衡因子: 左右子...

数据结构(九)并查集

并查集 并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中,其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在空间上过大,计算机无法承受;即使在空间上勉强通过,运行的时间复杂度也极高,根本就不可...

数据结构(八)Trie 字典树

什么是前缀树 Trie 多用来进行字符串匹配 多叉树 // 如果不仅仅是英文单词的话,还会加上特殊字符等 // 所以一般不会设置next为指定容量的结构 type Node struct { // 当前节点的值 s string // 是否代表了一个单词的结尾 isWord bool next []Node } 缺...