一次由于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 ...