一次由于MTU设置不当导致的网络访问超时

 

现象 Server A 调用本机的接口,能正常返回。调用Server B的接口,总是超时。被调用接口是能正常执行的,而且有执行日志记录。 Server C 调用Server B的接口也能正常返回。 分析 根据以上,基本可以排除是Server B接口服务的问题导致超时。很有可能 Server A 与 Server B之间的网络有问题。抓包分析如下: Server A 调 ...

团队管理杂谈

 

团队管理的重要性 有句话说得好,兵熊熊一个,将熊熊一窝。这句话,充分说明了团队管理者对于一个团队的重要性。好的 leader 可以提高团队的战斗力,带领大家攻城略地。 团队管理者三板斧 作为团队 leader 有三件事很重要。这三件事分别是,规划、招聘、赋能。 规划 凡事谋则立不谋则废。作为团队的老大,心中得有一 ...

如何获取 MySQL innodb 的 B+tree 的高度

 

如何获取 MySQL innodb 的 B+tree 的高度 前言 MySQL 的 innodb 引擎之所以使用 B+tree 来存储索引,就是想尽量减少数据查询时磁盘 IO 次数。树的高度直接影响了查询的性能。一般树的高度在 3~4 层较为适宜。数据库分表的目的也是为了控制树的高度。那么如何获取树的高度呢?下面使用一个示例来说明如何获取树的高度。 ...

spring aop 使用 cglib 引起的空指针 NullPointerException

 

spring aop 使用 cglib 引起的空指针 NullPointerException 问题 产生空指针的代码如下: HibernateDaoSupport.java 代码如下: public abstract class HibernateDaoSupport extends DaoSupport { private HibernateTemplate hibernateTemplate; public final void setSessionFactory(SessionFactory sessionF ...

Java 进程异常退出问题排查

 

Java 进程异常退出问题排查 现象 收到报警邮件,提示 tn_25 上的服务不可用了。登录到 tn_25 服务器,发现 Java 进程已经不在了。 追查 在 /var/log/messages 文件中找到了以下信息: Sep 28 14:09:38 localhost kernel: Out of memory: Kill process 133003 (java) score 232 or sacrifice child Sep 28 14:09:38 l ...

位运算技巧整理

 

位运算技巧整理 基础 异或^ 两个操作数的位中,相同则结果为0,不同则结果为1。 与& 两个数都转为二进制,然后从高位开始比较,如果两个数都为1则为1,否则为0。 或| 两个数都转为二进制,然后从高位开始比较,两个数只要有一个为1则为1,否则就为0。 非~ 如果位为0,结果是1,如果位为1,结果是0. 对数组异或操 ...

PHP7扩展开发之依赖其他扩展

 

前言 有的时候,我们的扩展要依赖其他扩展。比如,我们PHP的mysqli扩展就依赖mysqlnd扩展。这中情况下,我们怎么使用其他扩展呢?这个就是本文讲述的内容。 我们新建立一个扩展,名字叫 demo_dep , 依赖之前的say扩展。 在demo_dep扩展中,我们实现demo_say方法。这个方法调用say扩展的say方法。 代码 基础代码 确保s ...

PHP7扩展开发之使用静态库

前言 在本文,我们将建立一个简单的lib静态库,并在扩展中进行封装调用。 代码 基础代码 这个扩展,我们将在say扩展上增加show_site_ar()。say扩展相关代码大家请看这篇博文。PHP7扩展开发之hello word 文中已经详细介绍了如何创建一个扩展和提供了源码下载。 代码实现 建立lib库 增加hello.h文件。代码如下: #ifn ...

PHP7扩展开发之函数方式使用lib库

 

前言 首先说下什么是lib库。lib库就是一个提供特定功能的一个文件。可以把它看成是PHP的一个文件,这个文件提供一些函数方法。只是这个lib库是用c或者c++写的。 使用lib库的场景。一些软件已经提供了lib库,我们就没必要再重复实现一次。如,原先的mysql扩展,就是使用mysql官方的lib库进行的封装。 在本文,我们将建立 ...

PHP7扩展开发之对象方式使用lib库

 

前言 上一篇文章,我们使用的是函数方式调用lib库。这篇文章我们将使用对象的方式调用lib库。调用代码如下: <?php $hello = new hello(); $result = $hello->get(); var_dump($result); ?> 我们将在扩展中实现hello类。hello类中将依赖lib库。 代码 基础代码 这个扩展,我们将在say扩展上增加相关代码。s ...

PHP7扩展开发之函数调用

 

前言 在这篇文章中我们将演示如何在扩展中调用函数,和调用对象的方法。代码示例如下: <?php class demo { public function get_site_name ($prefix) { return $prefix."信海龙的沙发\n"; } } function get_site_url ($prefix) { return $prefix."www.bo56.com\n"; } function call_fun ...