最短路径算法-Dijkstra算法

Dijkstra算法 迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。 Dijkstra算法关注的问题 在无向图 G=(V,E) 中,假设每条 … 继续阅读

高性能队列:Disruptor介绍以及使用场景 (一)

最近看了一些关于Disruptor的介绍,觉得这个新的消息队列非常厉害,单机性能就非常高。于是搜索并整理了一些资料,寻找往后可能使用的场景。 Disruptor 介绍 Disruptor 是LMX开源出来的java编写的一个并发消息处理器,在队列中一边生产者放入消息,另外一边消费者并行取出处理,其核心是根据现代CPU硬件缓存特点发明不同于通用LinkedList或Queue的新型数据结构RingB … 继续阅读

Redis协议

redis 通信协议 协议是通信计算机双方必须共同遵从的一组约定。 协议规定了:怎么样建立连接、怎么样互相识别等。 只有遵守这个约定,计算机之间才能相互通信交流。 对于 redis 而言,为了保证服务器与客户端的正常通信,也定义了自己的通信协议,客户端和服务器在接收解析数据时都需要遵循这个协议才能保证通信正常进行。 redis 请求协议的一般形式 *<参数数量> CR LF $< … 继续阅读

一个基于spring-cloud的全站构建案例

想法&实践 最近有把一个站点的构建过程记录下来的想法,于是把所需要的技术关键点全部都一一罗列出来,当做技术笔记。我在自己的私人代码库里面,做成了脚手架,方便自己。更重要的是,在这个梳理过程,让我对以前的一些系统设计有了新的体会。重新搭建的过程,其实是愉悦、流畅的。 技术栈 语言:java 框架:spring-cloud 组件:zuul,eureka,spring-cloud feign,s … 继续阅读

一个简单可用的Nginx负载均衡配置文件

记录一下,一个简单可用的Nginx负载均衡配置文件。 本地测试是可以用的。 本地环境: 开启了三个本地服务: 127.0.0.1:8082; 127.0.0.1:8083; 127.0.0.1:8084; 每个服务器,提供两个测试接口: 以127.0.0.1:8082服务为例: http://localhost:8082/ # index http://localhost:8082/user?us … 继续阅读

一个Restufl URI模式匹配以及替换Demo

使用场景 网关的路由编排,权限管理,URL白名单等场景下,都可能需要判断给定的URL是否符合匹配某个模式。 URI Template Patterns 模式匹配 Spring 提供了一个很好用的工具类:org.springframework.web.util.UriTemplate, Representation of a URI template that can be expanded wit … 继续阅读