背景

项目开发时,调用第三方服务集群,集群有多台机器,当机器之间没有主从之分时,需要应用层自己做负载均衡以保证各机器之间的流量均衡。

负载调度算法介绍

分布式系统中,常用负载调度算法有轮询、加权轮询、哈希、随机、加权随机、最小连接数。

Read more »

通俗来讲,Wireshark 是一个免费的抓包工具(分组嗅探器),它可以显示协议栈不同层级封装的消息内容,Wireshark 有盘大的用户群体,它可在Windows,Mac和Linux / Unix计算机上运行。

Read more »

C/C++ 中的#include一样,PHP 提供 require 和 include 等方法允许将一个外部 PHP 文件引入到当前文件中,include与require没有本质上的区别,唯一的不同在于错误级别,当文件无法被正常加载时include会抛出warning警告,而require则会抛出error错误。

Read more »

1. RESTful 简介

REST (Representational State Transfer) 翻作「表层状态转换」,是 Roy Thomas Fielding 在他的博士论文中提出的一种 API 设计风格。

表现层状态转换是根基于超文本传输协议(HTTP)之上而确定的一组约束和属性,是一种设计提供万维网络服务的软件构建风格。匹配或兼容于这种架构风格(简称为 REST 或 RESTful)的网络服务,允许客户端发出以统一资源标识符访问和操作网络资源的请求,而与预先定义好的无状态操作集一致化。因此表现层状态转换提供了在互联网络的计算系统之间,彼此资源可交互使用的协作性质(interoperability)。
—— wikipedia

Read more »

【定义 1】 链表有环:如果链表的尾节点指向了链接中间的某个节点,则该链表有环。

「问题」: 判断一个链表是否有环,如果有请找出环的开始节点。

Read more »

参考《大话数据结构》,如下定义树:

树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一颗非空树中:
有且仅有一个特定的称为根(root)的结点;
当n>1时,其余结点可分为m(m>0)个互补交互的有限集T1、T2…Tm,其中每一个集合本身又是一棵树,并称为根的子树(SubTree)。

在工作中,树被广泛使用,最常见的就是数据库中的 B+ 树,除此之外,网站中的菜单也常常是用树来表达其中的层次关系的(hierarchical),本文重点讲解基于菜单树这种应用常见下树在数据库中的存储方式。

Read more »

Datatables是一款jquery表格插件。它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能。

Datatables 灵活易用,具有如下特性:

  • 自动分页
  • 即时搜索
  • 多种排序规则,可自定义任意列排序,也可以多列排序
  • 可对分页样式、搜索框等自定义 CSS
  • 国际化,支持多种语言

……

Read more »

命名空间抽样模型

编程的本质是抽象,命名空间是一种编程抽象模型,它表示了一个标识符的可见范围。生活中我们会经常遇到两个人完全重名的情况,但是他们是不会被混淆的,因为他们来自不同的家庭,如果两人都来自同一个家庭,那么哥哥叫“小明”,弟弟绝对就不会再起名为“小明”了,我们可以认为每一个家庭都是一个命名空间。这种抽象模型在计算机中也被广泛应用,如计算机操作系统中同一个目录下是不允许有两个相同文件名的文件的,但不同的目录下确可以有文件名相同的文件。如

Read more »

Docker 是一种新的虚拟化技术,随着技术的不断革新 Docker 越来越受开发者的青睐,Docker 给开发带来了诸多方便,如提供如本地开发环境、单元测试环境、构建环境;Docker 还常用语弹性云服务和组件微服务。本文主要介绍 Docker 的基本使用,更多进阶内容我们将在下一节介绍。

Read more »
0%