PHP RAL參數詳解
在使用PHP RAL進行分布式接口調用的時候,RAL參數的設置是非常關鍵的一步。而在實際的開發中,我們也經常會遇到RAL參數設置不正確,導致接口調用失敗的情況。因此,本文將詳細介紹php ral的參數設置,希望能幫助到廣大開發者。
1. RAL參數設置的基本概念
RAL參數是設置在config文件中的,用來控制分布式程序的一些運行屬性、行為和目的等。
在RAL里面,參數又分為默認參數和客戶端參數。默認參數在RAL服務端和客戶端都生效,而客戶端參數僅對客戶端生效。
2. RAL參數設置的示例
下面以一個簡單的RPC請求為例,展示RAL參數怎樣設置。
(1)在config文件中設置默認參數和客戶端參數
我們通過一個config.php文件來設置缺省的參數和$php_ral_config_path數組里的parameters.php文件來設置客戶端自定義的覆蓋參數。
(2)在業務代碼中調用接口
// 調用 $client = ral('my_service'); $result = $client->get('user info', array('id' =>'123456'));
上面這段代碼中,我們通過ral('my_service')來獲取service的實例對象,然后調用get方法來獲取'user info'。
3. RAL參數詳解
通過上面的兩個例子,我們可以看到php ral的參數設置有哪些項。下面就逐一的來詳細講解下。
(1)server_addr
如果我們的業務代碼需要調用一些遠程的服務,則必須設置server_addr參數。在設置時,我們可以使用分號分隔符鏈接多個遠程服務器地址。
(2)service
RPC調用需要指定服務名字,而這個服務名字是由服務的提供者和使用者共同命名的。我們可以在config.php文件中設定service的名字。
(3)protocol
在RPC調用時,我們需要指定使用哪一種協議。如nami等。
(4)timeout
網絡IO的超時時間。
(5)request_timeout
RPC請求的超時時間。
(6)charset
RPC數據的字符編碼。
(7)compress_type
數據壓縮方式。
(8)retry
RPC請求的重試次數。
(9)is_async
是否異步調用。
(10)is_long
是否長連接。
(11)balancer
負載均衡算法。
在使用PHP RAL進行分布式接口調用的時候,RAL參數的設置是非常關鍵的一步。而在實際的開發中,我們也經常會遇到RAL參數設置不正確,導致接口調用失敗的情況。因此,本文將詳細介紹php ral的參數設置,希望能幫助到廣大開發者。
1. RAL參數設置的基本概念
RAL參數是設置在config文件中的,用來控制分布式程序的一些運行屬性、行為和目的等。
在RAL里面,參數又分為默認參數和客戶端參數。默認參數在RAL服務端和客戶端都生效,而客戶端參數僅對客戶端生效。
2. RAL參數設置的示例
下面以一個簡單的RPC請求為例,展示RAL參數怎樣設置。
(1)在config文件中設置默認參數和客戶端參數
# config.php return array( 'my_service' => array( 'server_addr' => '192.168.56.101:8080', 'service' => 'MyService', 'protocol' => 'nami', 'timeout' => '2000', # 默認超時時間 'request_timeout' => '2000', # 請求超時時間 'charset' => 'utf-8', 'compress_type' => 'snappy', # 壓縮算法 'retry' => 2, # 失敗重試次數 'is_async' => false, # 同步調用 'is_long' => false, # 短連接 'balancer' => array( 'type' => 'random', # 負載均衡算法 'option' => array( 'connect_timeout' => 50, # 連接超時時間 'recv_timeout' => 100, # 接收超時時間 ), ), ), ); <br> // 客戶端 parameters.php 示例 return array( 'my_service' => array( 'timeout' => '5000', # 超時時間, 客戶端調用優先 'retry' => 3, # 失敗重試次數, 客戶端調用優先 'request_timeout' => '10000', # 請求超時時間, 客戶端調用優先 'is_async' => false, # 同步調用, 客戶端調用優先 'is_long' => false, # 長連接, 客戶端調用優先 ), );
我們通過一個config.php文件來設置缺省的參數和$php_ral_config_path數組里的parameters.php文件來設置客戶端自定義的覆蓋參數。
(2)在業務代碼中調用接口
// 調用 $client = ral('my_service'); $result = $client->get('user info', array('id' =>'123456'));
上面這段代碼中,我們通過ral('my_service')來獲取service的實例對象,然后調用get方法來獲取'user info'。
3. RAL參數詳解
通過上面的兩個例子,我們可以看到php ral的參數設置有哪些項。下面就逐一的來詳細講解下。
(1)server_addr
如果我們的業務代碼需要調用一些遠程的服務,則必須設置server_addr參數。在設置時,我們可以使用分號分隔符鏈接多個遠程服務器地址。
(2)service
RPC調用需要指定服務名字,而這個服務名字是由服務的提供者和使用者共同命名的。我們可以在config.php文件中設定service的名字。
(3)protocol
在RPC調用時,我們需要指定使用哪一種協議。如nami等。
(4)timeout
網絡IO的超時時間。
(5)request_timeout
RPC請求的超時時間。
(6)charset
RPC數據的字符編碼。
(7)compress_type
數據壓縮方式。
(8)retry
RPC請求的重試次數。
(9)is_async
是否異步調用。
(10)is_long
是否長連接。
(11)balancer
負載均衡算法。
上一篇php rand 重復
下一篇php qq api