當前位置:首頁 » 編程語言 » p2p與php

p2p與php

發布時間: 2023-01-07 16:19:25

『壹』 p2p和php本質區別是什麼.

php是一種語言,用來開發網站的,
p2p是一種協議,點對點的意思,用來決定網路之間是怎麼建立連接的,而迅雷用的是p2sp,算是p2p的一種吧 會更穩定快速些

『貳』 有支持p2p的php視頻播放器嗎

lz是指網頁視頻播放器?flash的,html5的,目前就這兩種吧!你還想支持p2p,你做夢!如果能實現,像那種用快播、網路影音播放視頻的網站就不用另外下快播或者網路影音的客戶端了。

『叄』 大型的PHP應用,通常使用什麼應用做消息隊列

一、消息隊列概述x0dx0a消息隊列中間件是分布式系統中重要的組件,主要解決應用耦合,非同步消息,流量削鋒等問題。實現高性能,高可用,可伸縮和最終一致性架構。是大型分布式系統不可缺少的中間件。x0dx0a目前在生產環境,使用較多的消息隊列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。x0dx0a二、消息隊列應用場景x0dx0a以下介紹消息隊列在實際應用中常用的使用場景。非同步處理,應用解耦,流量削鋒和消息通訊四個場景。x0dx0a2.1非同步處理x0dx0a場景說明:用戶注冊後,需要發注冊郵件和注冊簡訊。傳統的做法有兩種1.串列的方式;2.並行方式。x0dx0a(1)串列方式:將注冊信息寫入資料庫成功後,發送注冊郵件,再發送注冊簡訊。以上三個任務全部完成後,返回給客戶端。(架構KKQ:466097527,歡迎加入)x0dx0a(2)並行方式:將注冊信息寫入資料庫成功後,發送注冊郵件的同時,發送注冊簡訊。以上三個任務完成後,返回給客戶端。與串列的差別是,並行的方式可以提高處理的時間。x0dx0a假設三個業務節點每個使用50毫秒鍾,不考慮網路等其他開銷,則串列方式的時間是150毫秒,並行的時間可能是100毫秒。x0dx0a因為CPU在單位時間內處理的請求數是一定的,假設CPU1秒內吞吐量是100次。則串列方式1秒內CPU可處理的請求量是7次(1000/150)。並行方式處理的請求量是10次(1000/100)。x0dx0a小結:如以上案例描述,傳統的方式系統的性能(並發量,吞吐量,響應時間)會有瓶頸。如何解決這個問題呢?x0dx0a引入消息隊列,將不是必須的業務邏輯,非同步處理。改造後的架構如下:x0dx0a按照以上約定,用戶的響應時間相當於是注冊信息寫入資料庫的時間,也就是50毫秒。注冊郵件,發送簡訊寫入消息隊列後,直接返回,因此寫入消息隊列的速度很快,基本可以忽略,因此用戶的響應時間可能是50毫秒。因此架構改變後,系統的吞吐量提高到每秒20 QPS。比串列提高了3倍,比並行提高了兩倍。x0dx0a2.2應用解耦x0dx0a場景說明:用戶下單後,訂單系統需要通知庫存系統。傳統的做法是,訂單系統調用庫存系統的介面。如下圖:x0dx0a傳統模式的缺點:x0dx0a1) 假如庫存系統無法訪問,則訂單減庫存將失敗,從而導致訂單失敗;x0dx0a2) 訂單系統與庫存系統耦合;x0dx0a如何解決以上問題呢?引入應用消息隊列後的方案,如下圖:x0dx0a訂單系統:用戶下單後,訂單系統完成持久化處理,將消息寫入消息隊列,返回用戶訂單下單成功。x0dx0a庫存系統:訂閱下單的消息,採用拉/推的方式,獲取下單信息,庫存系統根據下單信息,進行庫存操作。x0dx0a假如:在下單時庫存系統不能正常使用。也不影響正常下單,因為下單後,訂單系統寫入消息隊列就不再關心其他的後續操作了。實現訂單系統與庫存系統的應用解耦。x0dx0a2.3流量削鋒x0dx0a流量削鋒也是消息隊列中的常用場景,一般在秒殺或團搶活動中使用廣泛。x0dx0a應用場景:秒殺活動,一般會因為流量過大,導致流量暴增,應用掛掉。為解決這個問題,一般需要在應用前端加入消息隊列。x0dx0a可以控制活動的人數;x0dx0a可以緩解短時間內高流量壓垮應用;x0dx0a用戶的請求,伺服器接收後,首先寫入消息隊列。假如消息隊列長度超過最大數量,則直接拋棄用戶請求或跳轉到錯誤頁面;x0dx0a秒殺業務根據消息隊列中的請求信息,再做後續處理。x0dx0a2.4日誌處理x0dx0a日誌處理是指將消息隊列用在日誌處理中,比如Kafka的應用,解決大量日誌傳輸的問題。架構簡化如下:x0dx0a日誌採集客戶端,負責日誌數據採集,定時寫受寫入Kafka隊列;x0dx0aKafka消息隊列,負責日誌數據的接收,存儲和轉發;x0dx0a日誌處理應用:訂閱並消費kafka隊列中的日誌數據;x0dx0a以下是新浪kafka日誌處理應用案例:x0dx0a(1)Kafka:接收用戶日誌的消息隊列。x0dx0a(2)Logstash:做日誌解析,統一成JSON輸出給Elasticsearch。x0dx0a(3)Elasticsearch:實時日誌分析服務的核心技術,一個schemaless,實時的數據存儲服務,通過index組織數據,兼具強大的搜索和統計功能。x0dx0a(4)Kibana:基於Elasticsearch的數據可視化組件,超強的數據可視化能力是眾多公司選擇ELK stack的重要原因。x0dx0a2.5消息通訊x0dx0a消息通訊是指,消息隊列一般都內置了高效的通信機制,因此也可以用在純的消息通訊。比如實現點對點消息隊列,或者聊天室等。x0dx0a點對點通訊:x0dx0a客戶端A和客戶端B使用同一隊列,進行消息通訊。x0dx0a聊天室通訊:x0dx0a客戶端A,客戶端B,客戶端N訂閱同一主題,進行消息發布和接收。實現類似聊天室效果。x0dx0a以上實際是消息隊列的兩種消息模式,點對點或發布訂閱模式。模型為示意圖,供參考。x0dx0a三、消息中間件示例x0dx0a3.1電商系統x0dx0a消息隊列採用高可用,可持久化的消息中間件。比如Active MQ,Rabbit MQ,Rocket Mq。(1)應用將主幹邏輯處理完成後,寫入消息隊列。消息發送是否成功可以開啟消息的確認模式。(消息隊列返回消息接收成功狀態後,應用再返回,這樣保障消息的完整性)x0dx0a(2)擴展流程(發簡訊,配送處理)訂閱隊列消息。採用推或拉的方式獲取消息並處理。x0dx0a(3)消息將應用解耦的同時,帶來了數據一致性問題,可以採用最終一致性方式解決。比如主數據寫入資料庫,擴展應用根據消息隊列,並結合資料庫方式實現基於消息隊列的後續處理。x0dx0a3.2日誌收集系統x0dx0a分為Zookeeper注冊中心,日誌收集客戶端,Kafka集群和Storm集群(OtherApp)四部分組成。x0dx0aZookeeper注冊中心,提出負載均衡和地址查找服務;x0dx0a日誌收集客戶端,用於採集應用系統的日誌,並將數據推送到kafka隊列;x0dx0a四、JMS消息服務x0dx0a講消息隊列就不得不提JMS 。JMS(java Message Service,Java消息服務)API是一個消息服務的標准/規范,允許應用程序組件基於JavaEE平台創建、發送、接收和讀取消息。它使分布式通信耦合度更低,消息服務更加可靠以及非同步性。x0dx0a在EJB架構中,有消息bean可以無縫的與JM消息服務集成。在J2EE架構模式中,有消息服務者模式,用於實現消息與應用直接的解耦。x0dx0a4.1消息模型x0dx0a在JMS標准中,有兩種消息模型P2P(Point to Point),Publish/Subscribe(Pub/Sub)。x0dx0a4.1.1 P2P模式x0dx0aP2P模式包含三個角色:消息隊列(Queue),發送者(Sender),接收者(Receiver)。每個消息都被發送到一個特定的隊列,接收者從隊列中獲取消息。隊列保留著消息,直到他們被消費或超時。x0dx0aP2P的特點x0dx0a每個消息只有一個消費者(Consumer)(即一旦被消費,消息就不再在消息隊列中)x0dx0a發送者和接收者之間在時間上沒有依賴性,也就是說當發送者發送了消息之後,不管接收者有沒有正在運行,它不會影響到消息被發送到隊列x0dx0a接收者在成功接收消息之後需向隊列應答成功x0dx0a如果希望發送的每個消息都會被成功處理的話,那麼需要P2P模式。(架構KKQ:466097527,歡迎加入)x0dx0a4.1.2 Pub/sub模式x0dx0a包含三個角色主題(Topic),發布者(Publisher),訂閱者(Subscriber) 。多個發布者將消息發送到Topic,系統將這些消息傳遞給多個訂閱者。x0dx0aPub/Sub的特點x0dx0a每個消息可以有多個消費者x0dx0a發布者和訂閱者之間有時間上的依賴性。針對某個主題(Topic)的訂閱者,它必須創建一個訂閱者之後,才能消費發布者的消息。x0dx0a為了消費消息,訂閱者必須保持運行的狀態。x0dx0a為了緩和這樣嚴格的時間相關性,JMS允許訂閱者創建一個可持久化的訂閱。這樣,即使訂閱者沒有被激活(運行),它也能接收到發布者的消息。x0dx0a如果希望發送的消息可以不被做任何處理、或者只被一個消息者處理、或者可以被多個消費者處理的話,那麼可以採用Pub/Sub模型。x0dx0a4.2消息消費x0dx0a在JMS中,消息的產生和消費都是非同步的。對於消費來說,JMS的消息者可以通過兩種方式來消費消息。x0dx0a(1)同步x0dx0a訂閱者或接收者通過receive方法來接收消息,receive方法在接收到消息之前(或超時之前)將一直阻塞;x0dx0a(2)非同步x0dx0a訂閱者或接收者可以注冊為一個消息監聽器。當消息到達之後,系統自動調用監聽器的onMessage方法。x0dx0aJNDI:Java命名和目錄介面,是一種標準的Java命名系統介面。可以在網路上查找和訪問服務。通過指定一個資源名稱,該名稱對應於資料庫或命名服務中的一個記錄,同時返回資源連接建立所必須的信息。x0dx0aJNDI在JMS中起到查找和訪問發送目標或消息來源的作用。(架構KKQ:466097527,歡迎加入)x0dx0a4.3JMS編程模型x0dx0a(1) ConnectionFactoryx0dx0a創建Connection對象的工廠,針對兩種不同的jms消息模型,分別有QueueConnectionFactory和TopicConnectionFactory兩種。可以通過JNDI來查找ConnectionFactory對象。x0dx0a(2) Destinationx0dx0aDestination的意思是消息生產者的消息發送目標或者說消息消費者的消息來源。對於消息生產者來說,它的Destination是某個隊列(Queue)或某個主題(Topic);對於消息消費者來說,它的Destination也是某個隊列或主題(即消息來源)。x0dx0a所以,Destination實際上就是兩種類型的對象:Queue、Topic可以通過JNDI來查找Destination。x0dx0a(3) Connectionx0dx0aConnection表示在客戶端和JMS系統之間建立的鏈接(對TCP/IP socket的包裝)。Connection可以產生一個或多個Session。跟ConnectionFactory一樣,Connection也有兩種類型:QueueConnection和TopicConnection。x0dx0a(4) Sessionx0dx0aSession是操作消息的介面。可以通過session創建生產者、消費者、消息等。Session提供了事務的功能。當需要使用session發送/接收多個消息時,可以將這些發送/接收動作放到一個事務中。同樣,也分QueueSession和TopicSession。x0dx0a(5) 消息的生產者x0dx0a消息生產者由Session創建,並用於將消息發送到Destination。同樣,消息生產者分兩種類型:QueueSender和TopicPublisher。可以調用消息生產者的方法(send或publish方法)發送消息。x0dx0a(6) 消息消費者x0dx0a消息消費者由Session創建,用於接收被發送到Destination的消息。兩種類型:QueueReceiver和TopicSubscriber。可分別通過session的createReceiver(Queue)或createSubscriber(Topic)來創建。當然,也可以session的creatDurableSubscriber方法來創建持久化的訂閱者。x0dx0a(7) MessageListenerx0dx0a消息監聽器。如果注冊了消息監聽器,一旦消息到達,將自動調用監聽器的onMessage方法。EJB中的MDB(Message-Driven Bean)就是一種MessageListener。x0dx0a深入學習JMS對掌握JAVA架構,EJB架構有很好的幫助,消息中間件也是大型分布式系統必須的組件。本次分享主要做全局性介紹,具體的深入需要大家學習,實踐,總結,領會。x0dx0a五、常用消息隊列x0dx0a一般商用的容器,比如WebLogic,JBoss,都支持JMS標准,開發上很方便。但免費的比如Tomcat,Jetty等則需要使用第三方的消息中間件。本部分內容介紹常用的消息中間件(Active MQ,Rabbit MQ,Zero MQ,Kafka)以及他們的特點。x0dx0a5.1 ActiveMQx0dx0aActiveMQ 是Apache出品,最流行的,能力強勁的開源消息匯流排。ActiveMQ 是一個完全支持JMS1.1和J2EE 1.4規范的 JMS Provider實現,盡管JMS規范出台已經是很久的事情了,但是JMS在當今的J2EE應用中間仍然扮演著特殊的地位。x0dx0aActiveMQ特性如下:x0dx0a⒈ 多種語言和協議編寫客戶端。語言: Java,C,C++,C#,Ruby,Perl,Python,PHP。應用協議: OpenWire,Stomp REST,WS Notification,XMPP,AMQPx0dx0a⒉ 完全支持JMS1.1和J2EE 1.4規范 (持久化,XA消息,事務)x0dx0a⒊ 對spring的支持,ActiveMQ可以很容易內嵌到使用Spring的系統裡面去,而且也支持Spring2.0的特性x0dx0a⒋ 通過了常見J2EE伺服器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的測試,其中通過JCA 1.5 resource adaptors的配置,可以讓ActiveMQ可以自動的部署到任何兼容J2EE 1.4 商業伺服器上x0dx0a⒌ 支持多種傳送協議:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTAx0dx0a⒍ 支持通過JDBC和journal提供高速的消息持久化x0dx0a⒎ 從設計上保證了高性能的集群,客戶端-伺服器,點對點x0dx0a⒏ 支持Ajaxx0dx0a⒐ 支持與Axis的整合x0dx0a⒑ 可以很容易得調用內嵌JMS provider,進行測試x0dx0a5.2 RabbitMQx0dx0aRabbitMQ是流行的開源消息隊列系統,用erlang語言開發。RabbitMQ是AMQP(高級消息隊列協議)的標准實現。支持多種客戶端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX,持久化。用於在分布式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面表現不俗。x0dx0a幾個重要概念:x0dx0aBroker:簡單來說就是消息隊列伺服器實體。x0dx0aExchange:消息交換機,它指定消息按什麼規則,路由到哪個隊列。x0dx0aQueue:消息隊列載體,每個消息都會被投入到一個或多個隊列。x0dx0aBinding:綁定,它的作用就是把exchange和queue按照路由規則綁定起來。x0dx0aRouting Key:路由關鍵字,exchange根據這個關鍵字進行消息投遞。x0dx0avhost:虛擬主機,一個broker里可以開設多個vhost,用作不同用戶的許可權分離。x0dx0aprocer:消息生產者,就是投遞消息的程序。x0dx0aconsumer:消息消費者,就是接受消息的程序。x0dx0achannel:消息通道,在客戶端的每個連接里,可建立多個channel,每個channel代表一個會話任務。x0dx0a消息隊列的使用過程,如下:x0dx0a(1)客戶端連接到消息隊列伺服器,打開一個channel。x0dx0a(2)客戶端聲明一個exchange,並設置相關屬性。x0dx0a(3)客戶端聲明一個queue,並設置相關屬性。x0dx0a(4)客戶端使用routing key,在exchange和queue之間建立好綁定關系。x0dx0a(5)客戶端投遞消息到exchange。x0dx0aexchange接收到消息後,就根據消息的key和已經設置的binding,進行消息路由,將消息投遞到一個或多個隊列里。x0dx0a5.3 ZeroMQx0dx0a號稱史上最快的消息隊列,它實際類似於Socket的一系列介面,他跟Socket的區別是:普通的socket是端到端的(1:1的關系),而ZMQ卻是可以N:M 的關系,人們對BSD套接字的了解較多的是點對點的連接,點對點連接需要顯式地建立連接、銷毀連接、選擇協議(TCP/UDP)和處理錯誤等,而ZMQ屏蔽了這些細節,讓你的網路編程更為簡單。ZMQ用於node與node間的通信,node可以是主機或者是進程。x0dx0a引用官方的說法: 「ZMQ(以下ZeroMQ簡稱ZMQ)是一個簡單好用的傳輸層,像框架一樣的一個socket library,他使得Socket編程更加簡單、簡潔和性能更高。是一個消息處理隊列庫,可在多個線程、內核和主機盒之間彈性伸縮。ZMQ的明確目標是「成為標准網路協議棧的一部分,之後進入Linux內核」。現在還未看到它們的成功。但是,它無疑是極具前景的、並且是人們更加需要的「傳統」BSD套接字之上的一 層封裝。ZMQ讓編寫高性能網路應用程序極為簡單和有趣。」x0dx0a特點是:x0dx0a高性能,非持久化;x0dx0a跨平台:支持Linux、Windows、OS X等。x0dx0a多語言支持; C、C++、Java、.NET、Python等30多種開發語言。x0dx0a可單獨部署或集成到應用中使用;x0dx0a可作為Socket通信庫使用。x0dx0a與RabbitMQ相比,ZMQ並不像是一個傳統意義上的消息隊列伺服器,事實上,它也根本不是一個伺服器,更像一個底層的網路通訊庫,在Socket API之上做了一層封裝,將網路通訊、進程通訊和線程通訊抽象為統一的API介面。支持「Request-Reply 「,」Publisher-Subscriber「,」Parallel Pipeline」三種基本模型和擴展模型。x0dx0aZeroMQ高性能設計要點:x0dx0a1、無鎖的隊列模型x0dx0a對於跨線程間的交互(用戶端和session)之間的數據交換通道pipe,採用無鎖的隊列演算法CAS;在pipe兩端注冊有非同步事件,在讀或者寫消息到pipe的時,會自動觸發讀寫事件。x0dx0a2、批量處理的演算法x0dx0a對於傳統的消息處理,每個消息在發送和接收的時候,都需要系統的調用,這樣對於大量的消息,系統的開銷比較大,zeroMQ對於批量的消息,進行了適應性的優化,可以批量的接收和發送消息。x0dx0a3、多核下的線程綁定,無須CPU切換x0dx0a區別於傳統的多線程並發模式,信號量或者臨界區, zeroMQ充分利用多核的優勢,每個核綁定運行一個工作者線程,避免多線程之間的CPU切換開銷。x0dx0a5.4 Kafkax0dx0aKafka是一種高吞吐量的分布式發布訂閱消息系統,它可以處理消費者規模的網站中的所有動作流數據。 這種動作(網頁瀏覽,搜索和其他用戶的行動)是在現代網路上的許多社會功能的一個關鍵因素。 這些數據通常是由於吞吐量的要求而通過處理日誌和日誌聚合來解決。 對於像Hadoop的一樣的日誌數據和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。Kafka的目的是通過Hadoop的並行載入機制來統一線上和離線的消息處理,也是為了通過集群機來提供實時的消費。x0dx0aKafka是一種高吞吐量的分布式發布訂閱消息系統,有如下特性:x0dx0a通過O(1)的磁碟數據結構提供消息的持久化,這種結構對於即使數以TB的消息存儲也能夠保持長時間的穩定性能。(文件追加的方式寫入數據,過期的數據定期刪除)x0dx0a高吞吐量:即使是非常普通的硬體Kafka也可以支持每秒數百萬的消息。x0dx0a支持通過Kafka伺服器和消費機集群來分區消息。x0dx0a支持Hadoop並行數據載入。x0dx0aKafka相關概念x0dx0aBrokerx0dx0aKafka集群包含一個或多個伺服器,這種伺服器被稱為broker[5]x0dx0aTopicx0dx0a每條發布到Kafka集群的消息都有一個類別,這個類別被稱為Topic。(物理上不同Topic的消息分開存儲,邏輯上一個Topic的消息雖然保存於一個或多個broker上但用戶只需指定消息的Topic即可生產或消費數據而不必關心數據存於何處)x0dx0aPartitionx0dx0aParition是物理上的概念,每個Topic包含一個或多個Partition.x0dx0aProcerx0dx0a負責發布消息到Kafka brokerx0dx0aConsumerx0dx0a消息消費者,向Kafka broker讀取消息的客戶端。x0dx0aConsumer Groupx0dx0a每個Consumer屬於一個特定的Consumer Group(可為每個Consumer指定group name,若不指定group name則屬於默認的group)。x0dx0a一般應用在大數據日誌處理或對實時性(少量延遲),可靠性(少量丟數據)要求稍低的場景使用。

『肆』 誰知道p2p信貸系統源碼有哪幾種語言呢能詳細介紹下嗎

介紹下目前幾款主流的網貸系統源碼開發語言:
1. Java語言。java技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於個人PC、數據中心、游戲控制台、科學超級計算機、行動電話和互聯網等,優勢非常明顯。也是目前網貸系統製作最佳開發語言。
2. .NET語言。.NET可生成伸縮性和穩定性更好的應用程序,並提供更好的安全保護。鑒於安全性也是網貸源碼開發中會考慮使用的一種語言。
3. PHP語言。PHP語言也是目前用的非常多的一款開發語言,語法吸收了C語言、Java和Perl的特點,易於學習,使用廣泛,主要適用於Web開發領域。優勢非常明顯,支持幾乎所有流行的資料庫以及操作系統;最重要的是PHP可以用C、C++進行程序的擴展等等。如果考慮程序移植的話就比較麻煩了。以上內容摘自迪蒙網貸系統網路,希望對你有幫助。

『伍』 P2P、P2C 、O2O 、B2C、B2B和C2C名詞解釋

含義 :個人對個人。比如P2P借貸,是指一種將小額資金聚集起來,借貸給有資金需求人群的一種民間小額借貸模式。

模式:

第一種是純線上模式,是純粹的P2P,在這種平台模式上純粹進行信息匹配,幫助資金借貸雙方更好的進行資金匹配,但缺點明顯,這種線上模式並不參與擔保;

第二種是債權轉讓模式,平台本身先行放貸,再將債權放到平台進行轉讓,很明顯能讓企業提高融資端的工作效率,但容易出現資金池,不能讓資金充分發揮效益。

含義 :線上線下相結合。即把線下商務機會與互聯網結合在一起,讓互聯網成為線下交易的前台。說白了就是線上攬客,線下服務。

運營模式:

(1)Online to Offline是線上交易到線下消費體驗

(2)Offline to Online是線下營銷到線上交易

(3)Offline to Online to Offline是線下營銷到線上交易再到線下消費體驗

(4)Online to Offline to Online是線上交易或營銷到線下消費體驗再到線上消費體驗

eg. 保險直購O2O,蘇寧易購O2O,大眾點評O2O等

特點 :推廣效果可查,每筆交易可跟蹤。

優勢: 把網上和線下的優勢完美結合,讓消費者在享受線上優惠價格的同時,又可以享受線下貼身服務。同時,O2O模式還可實現不同商家的聯盟。

含義 :商對客。即企業通過互聯網為消費者提供一個新型的購物環境——網上商店,直接面向消費者銷售產品和服務。這種形式的電子商務一般以網路零售業為主,主要藉助於互聯網開展在線銷售活動。

B2C電子商務網站組成:

(1)為顧客提供在線購物場所的商場網站;

(2)負責為客戶所購商品進行配送的配送系統;

(3)負責顧客身份的確認及貨款結算的銀行及認證系統。

代表網站:

天貓——為人服務做平台

京東——自主經營賣產品

凡客——自產自銷做品牌

含義 :商對商。即企業對企業的電子商務模式。B2B(也有寫成BTB)是指企業對企業之間的營銷關系,它將企業內部網,通過B2B網站與客戶緊密結合起來,通過網路的快速反應,為客戶提供更好的服務,從而促進企業的業務發展(Business Development)。近年來B2B發展勢頭迅猛,趨於成熟。

組成要素:

(1)買賣:B2B網站平台為消費者提供質優價廉的商品,吸引消費者購買的同時促使更多商家的入駐。

(2)合作:與物流公司建立合作關系,為消費者的購買行為提供最終保障,這是B2B平台硬性條件之一。

(3)服務:物流主要是為消費者提供購買服務,從而實現再一次的交易。

代表網站:

(1)阿里巴巴

阿里巴巴是國內也是全球最大的B2B電子商務網站。是中小企業首選的B2B平台,主要提供「誠信通」服務,但由於所有用戶基本上都是「誠信通」客戶。

(2)中國製造網

中國製造網是B2B電子商務行業網站後起之秀,干凈的網站風格,實用的網站類容,深受用戶喜愛。

(3)中國供應商

中國供應商是由中國互聯網新聞中心主辦的B2B貿易平台。提供多種樣式的廣告服務,但網站以免費普通會員居多,好好運營商鋪,效果還可以。

含義 :個人與個人之間的電子商務。比如一個消費者有一台電腦,通過網路進行交易,把它出售給另外一個消費者,此種交易類型就稱為C2C電子商務。

代表網站:

(1)淘寶網

(2)易趣網

(3)拍拍網

含義 :商品和顧客,產品從生產企業直接送到消費者手中,中間沒有任何的交易環節。是繼B2B、B2C、C2C之後的又一個電子商務新概念。在國內叫做:生活服務平台。

P2C把老百姓日常生活當中的一切密切相關的服務信息,如房產、餐飲、交友、家政服務、票務、健康、醫療、保健等聚合在平台上,實現服務業的電子商務化。

衍生:

(1)personal(個人) to Company(公司)

(2)platform(平台) to CreditAssignment(債權轉讓)

該理論是國內首個P2C互聯網金融服務,對債權轉讓企業進行資質審核、實地考察,篩選出具有投資價值的優質債權項目在平台上向投資者公開;並提供在線投資的交易平台,實時為投資者生成具有法律效力的債權轉讓及服務協議;監督企業的項目經營,管理評估風險,確保投資者資金安全。

B2B有三寶:企業、中介、溝通好

B2C有三寶:品牌、渠道、銷售好

C2C有三寶:你開、我買、支付寶

O2O有三寶:線上、線下、一起搞

LBS有三寶:簽到、優惠、位置找

NFC有三寶:近場、支付、安全好

SEO有三寶:內容、外鏈、權重屌

EDM有三寶:內容、受眾、分析好

CPA有三寶:行動、轉化、站長惱

CPS有三寶:傭金、銷量、效果好

CPC有三寶:點擊、引導、作弊少

CPM有三寶:展示、千人、不可靠

PHP有三寶:開放、高效、成本少

B2B(經濟組織對經濟組織)

B2C(經濟組織對消費者)

B2B2C(企業對企業對消費者)

C2B(T)(消費者集合競價-團購)

C2C(消費者對消費者)

B2F(企業對家庭)

O2O(網上與網下相結合)

SaaS(軟體服務)

PaaS(平台服務)

IaaS(基礎服務)

M-B(移動電子商務)

B2G(政府采購)

G2B(政府拋售)

B2M(面向市場營銷的電子商務企業)

M2C(生產廠商對消費者)

SoLoMo(社交+本地化+移動)

ABC(代理商-商家-消費者)

BAB(企業-聯盟-企業)

P2C(生活服務平台)

P2P(點對點、渠道對渠道)

SNS-EC(社會化網路電子商務)

B2S(分享式商務,或體驗式商務)

http://news.mbalib.com/story/88506

http://www.ceconline.com/sales_marketing/ma/8800074438/01/

『陸』 p2p系統java的好還是php的好

看你擁有什麼吧,如果是錢,長期的目光,那就是java,如果是白手起家,php開源。

『柒』 大型的PHP應用,通常使用什麼應用做消息隊列

一、消息隊列概述
消息隊列中間件是分布式系統中重要的組件,主要解決應用耦合,非同步消息,流量削鋒等問題。實現高性能,高可用,可伸縮和最終一致性架構。是大型分布式系統不可缺少的中間件。
目前在生產環境,使用較多的消息隊列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。
二、消息隊列應用場景
以下介紹消息隊列在實際應用中常用的使用場景。非同步處理,應用解耦,流量削鋒和消息通訊四個場景。
2.1非同步處理
場景說明:用戶注冊後,需要發注冊郵件和注冊簡訊。傳統的做法有兩種1.串列的方式;2.並行方式。
(1)串列方式:將注冊信息寫入資料庫成功後,發送注冊郵件,再發送注冊簡訊。以上三個任務全部完成後,返回給客戶端。(架構KKQ:466097527,歡迎加入)
(2)並行方式:將注冊信息寫入資料庫成功後,發送注冊郵件的同時,發送注冊簡訊。以上三個任務完成後,返回給客戶端。與串列的差別是,並行的方式可以提高處理的時間。
假設三個業務節點每個使用50毫秒鍾,不考慮網路等其他開銷,則串列方式的時間是150毫秒,並行的時間可能是100毫秒。
因為CPU在單位時間內處理的請求數是一定的,假設CPU1秒內吞吐量是100次。則串列方式1秒內CPU可處理的請求量是7次(1000/150)。並行方式處理的請求量是10次(1000/100)。
小結:如以上案例描述,傳統的方式系統的性能(並發量,吞吐量,響應時間)會有瓶頸。如何解決這個問題呢?
引入消息隊列,將不是必須的業務邏輯,非同步處理。改造後的架構如下:
按照以上約定,用戶的響應時間相當於是注冊信息寫入資料庫的時間,也就是50毫秒。注冊郵件,發送簡訊寫入消息隊列後,直接返回,因此寫入消息隊列的速度很快,基本可以忽略,因此用戶的響應時間可能是50毫秒。因此架構改變後,系統的吞吐量提高到每秒20 QPS。比串列提高了3倍,比並行提高了兩倍。
2.2應用解耦
場景說明:用戶下單後,訂單系統需要通知庫存系統。傳統的做法是,訂單系統調用庫存系統的介面。如下圖:
傳統模式的缺點:
1) 假如庫存系統無法訪問,則訂單減庫存將失敗,從而導致訂單失敗;
2) 訂單系統與庫存系統耦合;
如何解決以上問題呢?引入應用消息隊列後的方案,如下圖:
訂單系統:用戶下單後,訂單系統完成持久化處理,將消息寫入消息隊列,返回用戶訂單下單成功。
庫存系統:訂閱下單的消息,採用拉/推的方式,獲取下單信息,庫存系統根據下單信息,進行庫存操作。
假如:在下單時庫存系統不能正常使用。也不影響正常下單,因為下單後,訂單系統寫入消息隊列就不再關心其他的後續操作了。實現訂單系統與庫存系統的應用解耦。
2.3流量削鋒
流量削鋒也是消息隊列中的常用場景,一般在秒殺或團搶活動中使用廣泛。
應用場景:秒殺活動,一般會因為流量過大,導致流量暴增,應用掛掉。為解決這個問題,一般需要在應用前端加入消息隊列。
可以控制活動的人數;
可以緩解短時間內高流量壓垮應用;
用戶的請求,伺服器接收後,首先寫入消息隊列。假如消息隊列長度超過最大數量,則直接拋棄用戶請求或跳轉到錯誤頁面;
秒殺業務根據消息隊列中的請求信息,再做後續處理。
2.4日誌處理
日誌處理是指將消息隊列用在日誌處理中,比如Kafka的應用,解決大量日誌傳輸的問題。架構簡化如下:
日誌採集客戶端,負責日誌數據採集,定時寫受寫入Kafka隊列;
Kafka消息隊列,負責日誌數據的接收,存儲和轉發;
日誌處理應用:訂閱並消費kafka隊列中的日誌數據;
以下是新浪kafka日誌處理應用案例:
(1)Kafka:接收用戶日誌的消息隊列。
(2)Logstash:做日誌解析,統一成JSON輸出給Elasticsearch。
(3)Elasticsearch:實時日誌分析服務的核心技術,一個schemaless,實時的數據存儲服務,通過index組織數據,兼具強大的搜索和統計功能。
(4)Kibana:基於Elasticsearch的數據可視化組件,超強的數據可視化能力是眾多公司選擇ELK stack的重要原因。
2.5消息通訊
消息通訊是指,消息隊列一般都內置了高效的通信機制,因此也可以用在純的消息通訊。比如實現點對點消息隊列,或者聊天室等。
點對點通訊:
客戶端A和客戶端B使用同一隊列,進行消息通訊。
聊天室通訊:
客戶端A,客戶端B,客戶端N訂閱同一主題,進行消息發布和接收。實現類似聊天室效果。
以上實際是消息隊列的兩種消息模式,點對點或發布訂閱模式。模型為示意圖,供參考。
三、消息中間件示例
3.1電商系統
消息隊列採用高可用,可持久化的消息中間件。比如Active MQ,Rabbit MQ,Rocket Mq。(1)應用將主幹邏輯處理完成後,寫入消息隊列。消息發送是否成功可以開啟消息的確認模式。(消息隊列返回消息接收成功狀態後,應用再返回,這樣保障消息的完整性)
(2)擴展流程(發簡訊,配送處理)訂閱隊列消息。採用推或拉的方式獲取消息並處理。
(3)消息將應用解耦的同時,帶來了數據一致性問題,可以採用最終一致性方式解決。比如主數據寫入資料庫,擴展應用根據消息隊列,並結合資料庫方式實現基於消息隊列的後續處理。
3.2日誌收集系統
分為Zookeeper注冊中心,日誌收集客戶端,Kafka集群和Storm集群(OtherApp)四部分組成。
Zookeeper注冊中心,提出負載均衡和地址查找服務;
日誌收集客戶端,用於採集應用系統的日誌,並將數據推送到kafka隊列;
四、JMS消息服務
講消息隊列就不得不提JMS 。JMS(Java Message Service,Java消息服務)API是一個消息服務的標准/規范,允許應用程序組件基於JavaEE平台創建、發送、接收和讀取消息。它使分布式通信耦合度更低,消息服務更加可靠以及非同步性。
在EJB架構中,有消息bean可以無縫的與JM消息服務集成。在J2EE架構模式中,有消息服務者模式,用於實現消息與應用直接的解耦。
4.1消息模型
在JMS標准中,有兩種消息模型P2P(Point to Point),Publish/Subscribe(Pub/Sub)。
4.1.1 P2P模式
P2P模式包含三個角色:消息隊列(Queue),發送者(Sender),接收者(Receiver)。每個消息都被發送到一個特定的隊列,接收者從隊列中獲取消息。隊列保留著消息,直到他們被消費或超時。
P2P的特點
每個消息只有一個消費者(Consumer)(即一旦被消費,消息就不再在消息隊列中)
發送者和接收者之間在時間上沒有依賴性,也就是說當發送者發送了消息之後,不管接收者有沒有正在運行,它不會影響到消息被發送到隊列
接收者在成功接收消息之後需向隊列應答成功
如果希望發送的每個消息都會被成功處理的話,那麼需要P2P模式。(架構KKQ:466097527,歡迎加入)
4.1.2 Pub/sub模式
包含三個角色主題(Topic),發布者(Publisher),訂閱者(Subscriber) 。多個發布者將消息發送到Topic,系統將這些消息傳遞給多個訂閱者。
Pub/Sub的特點
每個消息可以有多個消費者
發布者和訂閱者之間有時間上的依賴性。針對某個主題(Topic)的訂閱者,它必須創建一個訂閱者之後,才能消費發布者的消息。
為了消費消息,訂閱者必須保持運行的狀態。
為了緩和這樣嚴格的時間相關性,JMS允許訂閱者創建一個可持久化的訂閱。這樣,即使訂閱者沒有被激活(運行),它也能接收到發布者的消息。
如果希望發送的消息可以不被做任何處理、或者只被一個消息者處理、或者可以被多個消費者處理的話,那麼可以採用Pub/Sub模型。
4.2消息消費
在JMS中,消息的產生和消費都是非同步的。對於消費來說,JMS的消息者可以通過兩種方式來消費消息。
(1)同步
訂閱者或接收者通過receive方法來接收消息,receive方法在接收到消息之前(或超時之前)將一直阻塞;
(2)非同步
訂閱者或接收者可以注冊為一個消息監聽器。當消息到達之後,系統自動調用監聽器的onMessage方法。
JNDI:Java命名和目錄介面,是一種標準的Java命名系統介面。可以在網路上查找和訪問服務。通過指定一個資源名稱,該名稱對應於資料庫或命名服務中的一個記錄,同時返回資源連接建立所必須的信息。
JNDI在JMS中起到查找和訪問發送目標或消息來源的作用。(架構KKQ:466097527,歡迎加入)
4.3JMS編程模型
(1) ConnectionFactory
創建Connection對象的工廠,針對兩種不同的jms消息模型,分別有QueueConnectionFactory和TopicConnectionFactory兩種。可以通過JNDI來查找ConnectionFactory對象。
(2) Destination
Destination的意思是消息生產者的消息發送目標或者說消息消費者的消息來源。對於消息生產者來說,它的Destination是某個隊列(Queue)或某個主題(Topic);對於消息消費者來說,它的Destination也是某個隊列或主題(即消息來源)。
所以,Destination實際上就是兩種類型的對象:Queue、Topic可以通過JNDI來查找Destination。
(3) Connection
Connection表示在客戶端和JMS系統之間建立的鏈接(對TCP/IP socket的包裝)。Connection可以產生一個或多個Session。跟ConnectionFactory一樣,Connection也有兩種類型:QueueConnection和TopicConnection。
(4) Session
Session是操作消息的介面。可以通過session創建生產者、消費者、消息等。Session提供了事務的功能。當需要使用session發送/接收多個消息時,可以將這些發送/接收動作放到一個事務中。同樣,也分QueueSession和TopicSession。
(5) 消息的生產者
消息生產者由Session創建,並用於將消息發送到Destination。同樣,消息生產者分兩種類型:QueueSender和TopicPublisher。可以調用消息生產者的方法(send或publish方法)發送消息。
(6) 消息消費者
消息消費者由Session創建,用於接收被發送到Destination的消息。兩種類型:QueueReceiver和TopicSubscriber。可分別通過session的createReceiver(Queue)或createSubscriber(Topic)來創建。當然,也可以session的creatDurableSubscriber方法來創建持久化的訂閱者。
(7) MessageListener
消息監聽器。如果注冊了消息監聽器,一旦消息到達,將自動調用監聽器的onMessage方法。EJB中的MDB(Message-Driven Bean)就是一種MessageListener。
深入學習JMS對掌握JAVA架構,EJB架構有很好的幫助,消息中間件也是大型分布式系統必須的組件。本次分享主要做全局性介紹,具體的深入需要大家學習,實踐,總結,領會。
五、常用消息隊列
一般商用的容器,比如WebLogic,JBoss,都支持JMS標准,開發上很方便。但免費的比如Tomcat,Jetty等則需要使用第三方的消息中間件。本部分內容介紹常用的消息中間件(Active MQ,Rabbit MQ,Zero MQ,Kafka)以及他們的特點。
5.1 ActiveMQ
ActiveMQ 是Apache出品,最流行的,能力強勁的開源消息匯流排。ActiveMQ 是一個完全支持JMS1.1和J2EE 1.4規范的 JMS Provider實現,盡管JMS規范出台已經是很久的事情了,但是JMS在當今的J2EE應用中間仍然扮演著特殊的地位。
ActiveMQ特性如下:
⒈ 多種語言和協議編寫客戶端。語言: Java,C,C++,C#,Ruby,Perl,Python,PHP。應用協議: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
⒉ 完全支持JMS1.1和J2EE 1.4規范 (持久化,XA消息,事務)
⒊ 對spring的支持,ActiveMQ可以很容易內嵌到使用Spring的系統裡面去,而且也支持Spring2.0的特性
⒋ 通過了常見J2EE伺服器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的測試,其中通過JCA 1.5 resource adaptors的配置,可以讓ActiveMQ可以自動的部署到任何兼容J2EE 1.4 商業伺服器上
⒌ 支持多種傳送協議:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
⒍ 支持通過JDBC和journal提供高速的消息持久化
⒎ 從設計上保證了高性能的集群,客戶端-伺服器,點對點
⒏ 支持Ajax
⒐ 支持與Axis的整合
⒑ 可以很容易得調用內嵌JMS provider,進行測試
5.2 RabbitMQ
RabbitMQ是流行的開源消息隊列系統,用erlang語言開發。RabbitMQ是AMQP(高級消息隊列協議)的標准實現。支持多種客戶端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX,持久化。用於在分布式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面表現不俗。
幾個重要概念:
Broker:簡單來說就是消息隊列伺服器實體。
Exchange:消息交換機,它指定消息按什麼規則,路由到哪個隊列。
Queue:消息隊列載體,每個消息都會被投入到一個或多個隊列。
Binding:綁定,它的作用就是把exchange和queue按照路由規則綁定起來。
Routing Key:路由關鍵字,exchange根據這個關鍵字進行消息投遞。
vhost:虛擬主機,一個broker里可以開設多個vhost,用作不同用戶的許可權分離。
procer:消息生產者,就是投遞消息的程序。
consumer:消息消費者,就是接受消息的程序。
channel:消息通道,在客戶端的每個連接里,可建立多個channel,每個channel代表一個會話任務。
消息隊列的使用過程,如下:
(1)客戶端連接到消息隊列伺服器,打開一個channel。
(2)客戶端聲明一個exchange,並設置相關屬性。
(3)客戶端聲明一個queue,並設置相關屬性。
(4)客戶端使用routing key,在exchange和queue之間建立好綁定關系。
(5)客戶端投遞消息到exchange。
exchange接收到消息後,就根據消息的key和已經設置的binding,進行消息路由,將消息投遞到一個或多個隊列里。
5.3 ZeroMQ
號稱史上最快的消息隊列,它實際類似於Socket的一系列介面,他跟Socket的區別是:普通的socket是端到端的(1:1的關系),而ZMQ卻是可以N:M 的關系,人們對BSD套接字的了解較多的是點對點的連接,點對點連接需要顯式地建立連接、銷毀連接、選擇協議(TCP/UDP)和處理錯誤等,而ZMQ屏蔽了這些細節,讓你的網路編程更為簡單。ZMQ用於node與node間的通信,node可以是主機或者是進程。
引用官方的說法: 「ZMQ(以下ZeroMQ簡稱ZMQ)是一個簡單好用的傳輸層,像框架一樣的一個socket library,他使得Socket編程更加簡單、簡潔和性能更高。是一個消息處理隊列庫,可在多個線程、內核和主機盒之間彈性伸縮。ZMQ的明確目標是「成為標准網路協議棧的一部分,之後進入Linux內核」。現在還未看到它們的成功。但是,它無疑是極具前景的、並且是人們更加需要的「傳統」BSD套接字之上的一 層封裝。ZMQ讓編寫高性能網路應用程序極為簡單和有趣。」
特點是:
高性能,非持久化;
跨平台:支持Linux、Windows、OS X等。
多語言支持; C、C++、Java、.NET、Python等30多種開發語言。
可單獨部署或集成到應用中使用;
可作為Socket通信庫使用。
與RabbitMQ相比,ZMQ並不像是一個傳統意義上的消息隊列伺服器,事實上,它也根本不是一個伺服器,更像一個底層的網路通訊庫,在Socket API之上做了一層封裝,將網路通訊、進程通訊和線程通訊抽象為統一的API介面。支持「Request-Reply 「,」Publisher-Subscriber「,」Parallel Pipeline」三種基本模型和擴展模型。
ZeroMQ高性能設計要點:
1、無鎖的隊列模型
對於跨線程間的交互(用戶端和session)之間的數據交換通道pipe,採用無鎖的隊列演算法CAS;在pipe兩端注冊有非同步事件,在讀或者寫消息到pipe的時,會自動觸發讀寫事件。
2、批量處理的演算法
對於傳統的消息處理,每個消息在發送和接收的時候,都需要系統的調用,這樣對於大量的消息,系統的開銷比較大,zeroMQ對於批量的消息,進行了適應性的優化,可以批量的接收和發送消息。
3、多核下的線程綁定,無須CPU切換
區別於傳統的多線程並發模式,信號量或者臨界區, zeroMQ充分利用多核的優勢,每個核綁定運行一個工作者線程,避免多線程之間的CPU切換開銷。
5.4 Kafka
Kafka是一種高吞吐量的分布式發布訂閱消息系統,它可以處理消費者規模的網站中的所有動作流數據。 這種動作(網頁瀏覽,搜索和其他用戶的行動)是在現代網路上的許多社會功能的一個關鍵因素。 這些數據通常是由於吞吐量的要求而通過處理日誌和日誌聚合來解決。 對於像Hadoop的一樣的日誌數據和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。Kafka的目的是通過Hadoop的並行載入機制來統一線上和離線的消息處理,也是為了通過集群機來提供實時的消費。
Kafka是一種高吞吐量的分布式發布訂閱消息系統,有如下特性:
通過O(1)的磁碟數據結構提供消息的持久化,這種結構對於即使數以TB的消息存儲也能夠保持長時間的穩定性能。(文件追加的方式寫入數據,過期的數據定期刪除)
高吞吐量:即使是非常普通的硬體Kafka也可以支持每秒數百萬的消息。
支持通過Kafka伺服器和消費機集群來分區消息。
支持Hadoop並行數據載入。
Kafka相關概念
Broker
Kafka集群包含一個或多個伺服器,這種伺服器被稱為broker[5]
Topic
每條發布到Kafka集群的消息都有一個類別,這個類別被稱為Topic。(物理上不同Topic的消息分開存儲,邏輯上一個Topic的消息雖然保存於一個或多個broker上但用戶只需指定消息的Topic即可生產或消費數據而不必關心數據存於何處)
Partition
Parition是物理上的概念,每個Topic包含一個或多個Partition.
Procer
負責發布消息到Kafka broker
Consumer
消息消費者,向Kafka broker讀取消息的客戶端。
Consumer Group
每個Consumer屬於一個特定的Consumer Group(可為每個Consumer指定group name,若不指定group name則屬於默認的group)。
一般應用在大數據日誌處理或對實時性(少量延遲),可靠性(少量丟數據)要求稍低的場景使用。

『捌』 請問有哪位技術大神懂PHP寫的P2P平台

這套系統是用什麼框架開發的?或者目錄結構是什麼樣的,既然是買的,賣家應該都有提供吧

『玖』 做p2p網貸用java好還是php好

中小企業融資系統,p2p網貸系統,p2p借貸系統
B2B/B2C/C2C/P2P相結合的多城市借款融資系統,功能最全的系統
ppobb系統軟體的開發 PPOBB公司

『拾』 什麼是P2P

有多種解釋,看具體運用在什麼語境里

P2P是peer-to-peer的縮寫,peer在英語里有"(地位、能力等)同等者"、"同事"和"夥伴"等意義。這樣一來,P2P也就可以理解為"夥伴對夥伴"的意思,或稱為對等聯網。目前人們認為其在加強網路上人的交流、文件交換、分布計算等方面大有前途。

��簡單的說,P2P直接將人們聯系起來,讓人們通過互聯網直接交互。P2P使得網路上的溝通變得容易、更直接共享和交互,真正地消除中間商。P2P就是人可以直接連接到其他用戶的計算機、交換文件,而不是像過去那樣連接到伺服器去瀏覽與下載。P2P另一個重要特點是改變互聯網現在的以大網站為中心的狀態、重返"非中心化",並把權力交還給用戶。 P2P看起來似乎很新,但是正如B2C、B2B是將現實世界中很平常的東西移植到互聯網上一樣,P2P並不是什麼新東西。在現實生活中我們每天都按照P2P模式面對面地或者通過電話交流和溝通。

��即使從網路看,P2P也不是新概念,P2P是互聯網整體架構的基礎。互聯網最基本的協議TCP/IP並沒有客戶機和伺服器的概念,所有的設備都是通訊的平等的一端。在十年之前,所有的互聯網上的系統都同時具有伺服器和客戶機的功能。當然,後來發展的那些架構在TCP/IP之上的軟體的確採用了客戶機/伺服器的結構:瀏覽器和Web伺服器,郵件客戶端和郵件伺服器。但是,對於伺服器來說,它們之間仍然是對等聯網的。以email為例,互聯網上並沒有一個巨大的、唯一的郵件伺服器來處理所有的email,而是對等聯網的郵件伺服器相互協作把email傳送到相應的伺服器上去。另外用戶之間email則一直對等的聯絡渠道。

��事實上,網路上現有的許多服務可以歸入P2P的行列。即時訊息系統譬如ICQ、AOL Instant Messenger、Yahoo Pager、微軟的MSN Messenger以及國內的OICQ是最流行的P2P應用。它們允許用戶互相溝通和交換信息、交換文件。用戶之間的信息交流不是直接的,需要有位於中心的伺服器來協調。但這些系統並沒有諸如搜索這種對於大量信息共享非常重要的功能,這個特徵的缺乏可能正為什麼即時訊息出現很久但是並沒有能夠產生如Napster這樣的影響的原因之一。

下面試圖用三句話來揭示P2P的影響:

對等聯網:是只讀的網路的終結(Peer-to-peer is the end of the read-only Web)

對等聯網:使你重新參與互聯網(Peer-to-peer allows you to participate in the Internet again)

對等聯網:使網路遠離電視(Peer-to-peer steering the Internet away from TV)如上文所言,P2P不是一個新思想,從某些角度看它甚至是整個最初創建互聯網的最基本的思想。我們不妨花時間作一點回顧。

一、橫空出世---P2P 身為何物?

互聯網能夠發展至今,根本原因在於其布建的任何一根血脈都是為人與人之間的交流而設置的。而現在能夠引起互聯網震動的,無非也只有交流方式的變革本身。 如今,在基於網路的各種技術充斥於我們周圍之時,恐怕只有很少人不知道P2P的概念了,即便您沒有深入探究,但您每日在互聯網間進行的活動幾乎沒有不沾P2P技術的。一個簡單的例子,在你使用QQ盡情聊天之時,實際上就享受著P2P技術給你帶來的快感與興奮。P2P技術究竟意味著什麼呢?關於P2P技術的兩種解釋或許可以說明這個問題。

一種解釋是,P2P即peer-to-peer。而peer在英語里是「(地位、能力等)同等者」、「同事」和「夥伴」的意思。這樣一來,P2P也就可以理解為「夥伴對夥伴」的意思,或稱為對等聯網,我甚至覺得解釋成為person-to-person更好一些。反正交流也都是人的交流。

而另一種解釋是,P2P就是一種思想,有著改變整個互聯網基礎的潛能的思想。客觀講,單從技術角度而言,P2P並未激發出任何重大的創新,而更多的是改變了人們對網際網路的理解與認識。正是由於這個原因,IBM早就宣稱P2P不是一個技術概念,而是一個社會和經濟現象。

不管是技術還是思想,P2P是直接將人們聯系了起來,讓人們通過互聯網直接交流。它使得網路上的溝通變得更容易、更直接,真正地消除中間環節。這聽起來彷彿全新的概念,但其實並不是什麼新鮮事。我們每天見面,或者通過電話直接交流都是P2P最直接的例子。而這個時候你有沒有從電話的發展的歷史中隱約感覺到,P2P必將在互聯網時代有著突飛猛進的發展,因為他可以改變現在的Internet以大網站為中心的狀態、重返「非中心化」,並把權力交還給用戶,讓我們的語言影像以最直接的方式傳遞到對方身邊。它最符合互聯網路設計者的初衷,給了人們一個完全自主的超級網路資源庫。現在在業界,比較認同的P2P計算應用系統的目標主要有以下幾類:

1.信息、服務的共享與管理

2.協作

3.構建充當基層架構的互聯系統

二、生機勃勃--窺探P2P的發展歷程

如果說涉及此種特點便稱之為信息技術中的P2P的誕生,那麼它的歷史這可就遠了。P2P 本身的基本技術的存在時間和我們曾經熟悉的USENET、FidoNet 這兩種非常成功的分布式對等網路技術幾乎是一同的,甚至更長些。翻翻資料就可以知道,USENET 產生於 1979 年,FidoNet創建1984年,它們都是一個分散、分布的信息交換系統。在最初的 P2P 應用出現時,許多使用該技術的人們甚至不會使用計算機。然而正是這種孕育著思想的網路技術為P2P的出現搭建了溫床。

P2P正式步入發展的歷史可以追溯到1997年7月,那幾乎就是互聯網在中國起步的階段。在一段介紹此時P2P技術的時間表中這樣寫著:「Hotline Communications is founded, giving consumers software that lets them offer files for download from their own computers.」(1997年7月,Hotline Communications公司成立,並且研製了一種可以使其用戶從別人電腦中直接下載東西的軟體)

或許有人還記得,早在1998年,美國東北波士頓大學的一年級新生、18歲的肖恩?范寧為了能夠解決他的室友的一個問題——如何在網上找到音樂而編寫的一個簡單的程序,這個程序能夠搜索音樂文件並提供檢索,把所有的音樂文件地址存放在一個集中的伺服器中,這樣使用者就能夠方便地過濾上百的地址而找到自己需要的MP3文件。到了1999年,令他們沒有想到的是,這個叫做Napster的程序成為了人們爭相轉告的「殺手程序」——它令無數散布在互聯網上的音樂愛好者美夢成真,無數人在一夜之內開始使用Napster。在最高峰時Napster網路有8000萬的注冊用戶,這是一個讓其他所有網路望塵莫及的數字。這大概可以作為P2P軟體成功進入人們生活的一個標志。

時間表中這樣記錄著這一段歷史:

January 1999:

Shawn Fanning, 18, creates the Napster application and service while a freshman at Northeastern University.

(1999年1月,18歲的美國東北波士頓大學的一年級新生肖恩?范寧開始了Napster程序的服務)

May 1999:

Napster Inc. is founded.

(1999年5月,Napster公司宣告成立)

之所以我們注重開端,是因為這是一個非同意義上的起始,也正是從這天起,P2P開始了它曲折但極富生命力的發展。

到了2000年,P2P技術的發展就得使用月甚至日來記載了。直到現在使用P2P技術的軟體比比皆是,人們也在不知不覺中感受到了P2P作為高科技發展載體的快樂。平常我們使用的QQ 、MSN就不提了,其他軟體更是鋪天蓋地,讓人目不暇接。簡單羅列一下,以饗讀者。

軟體名稱 簡介

eMule eMule 是以 eDonkey2000 網路為基礎的新型 P2P 文件分享工具。

OPENEXT 一款P2P軟體。通過它,Internet用戶之間可以直接建立點對點的連接。

迅雷Thunder 「光速般」的智能下載軟體——迅雷(thunder2.2.0)。迅雷它擁有比目前用戶常用的下載軟體快7—10倍的下載速度。

易載ezpeer 易載ezPeer簡體中文版,免費注冊使用!ezPeer 是一個革命性的P2P(點對點)文件共享軟體。

Kuro M3 Kuro-全球第一款全中文界面的火爆MP3超強抓歌軟體!

酷狗(KuGoo) 「KuGoo」是酷狗的簡稱,是基於中文平台專業的P2P音樂及文件傳輸軟體。通過KuGoo,用戶可以方便、快捷、安全地實現國內最大的音樂搜索查找。

APIA APIA 是一個正在發展中的 P2P 網路系統,如同目前熟知的 eDonkey、Gnutella 與 Kazaa 等軟體。

iMesh 能夠讓你設定分享文件的類型,音樂、影片或其他文件;也能夠讓你搜尋並且下載你想要的文件。

BearShare BearShare 是一個非常好的文件分享軟體,它讓你、你的朋友、在世界上的每一個人都可以分享文件。

三、珠聯璧合---P2P和BT

說到P2P,就不能不提BT,這個被人戲稱為「變態」的詞幾乎在大多數人感覺中與P2P成了對等的一組概念,而它也將P2P技術發展到了近乎完美的地步。實際上BitTorrent(中文全稱比特流,簡稱BT)原先是指是一個多點下載的P2P軟體。它不象FTP那樣只有一個發送源,BT有多個發送點,當你在下載時,同時也在上傳,使大家都處在同步傳送的狀態。應該說,BT是當今P2P最為成功的一個應用。

如果解釋一下的話,BT首先在上傳者端把一個文件分成了多個部分,客戶端甲在伺服器隨機下載了第N部分,客戶端乙在伺服器隨機下載了第M部分。這樣甲的BT就會根據情況到乙的電腦上去拿乙已經下載好的第M部分,乙的BT就會根據情況去到甲的電腦上去拿甲已經下載好的第N部分。

有一句話可以作為BT最為形象的解釋就是:「我為人人,人人為我」。而最初聽到此概念時,有人對我說,別用BT,會壞你的硬碟的!大概指的就是前一句。現在看來,沒有貢獻怎麼會有獲取?這大概最可以概括BT下載傳輸的精髓。工具軟體BTJoy,將這一技術以軟體的形式完美起來,這個誕生僅有一年的軟體已經迅速熱遍了整個網路——對於BT下載的愛好者來說,120G的硬碟都可以被迅速塞滿!我的同學在不長的時間里竟然用他的刻錄機完成了一百來部的電視劇的保存,拿他的話來說,可以開一個小店面了!

四、風生水起---P2P是盜版者最好的溫床?

在我們盡在說P2P的好時,也不得不想到,就如同歷史總是在曲折中前進,任何新事物的發展總不會是一帆風順的。我們來看下面的日程表:

1999 年 5 月,由范寧和帕克共同創辦的文件共享社區網站—Napster正式成立,他們面臨的麻煩就由此而起。

12 月 7 日,美國唱片業協會(RIAA)代表環宇音樂、索尼音樂、華納音樂、百代唱片、BMG等七大唱片公司以違反版權保護法為由把Napster公司推向法庭。他們稱Napster向網民提供MP3文件共享軟體侵犯了音樂版權,要求法院關閉該公司並賠償損失1億美元。

2000 年 4 月 13 日,重金屬樂隊Metallica起訴 Napster,稱其侵犯了自己的版權,並涉嫌詐騙。

6 月 12 日,美國唱片協會(RIAA)和美國音樂出版協會(NMPA)向加利福尼亞州北地區聯邦地方法院起訴Napster公司,請求法院禁止在社會上流通Napster公司的MP3文件交換軟體「Napster」。

7 月 11 日,參議院就圍繞Napster展開的訴訟召開聽證會,無果而終。一些議員敦促國會立法,以澄清Napster公司是否違反了知識產權法;而支持Napster一方的人卻認為國會不應該現在介入雙方的爭端,以免影響新技術的發展。

7 月 26 日,Patel同意美國RIAA的要求,作出初步判決,命令Napster立即停止服務。

2001 年 2 月 12 日,美國第九巡迴上訴庭作出決定,Napster必須終止其免費互聯網服務,並不再向音樂迷提供共享版權保護音樂的服務。

3 月 6 日,美國地區法官Marilyn Hall Patel做出判決, 責令Napster在五個工作日內刪除所有存在爭議的歌曲。

……

就在今天,就在此時,爭議仍然不絕於耳。國外有關於P2P技術的糾紛一發而不可收拾,這種全新的極富生命力的傳輸方式從一誕生就和音樂,和版權聯系在一起。為什麼會引起音樂製作商們這么大恐慌?顯然是其前所未有的傳輸速度挑起了他們的不安。在他們極力攔截還沒有來得及開始的時候,一首歌曲便以迅雷不及掩耳之勢傳遍了整個互聯網,而更加確切的說應該是全球,這顯然是傳統的盜版方式所不能比擬的。

五、風景這邊獨好—P2P在中國

同樣,在傳統的方法不能奏效的情況下,出版商們便只有從源頭上遏制了。不知道國外關於此的爭鬧還會繼續多久,然而在中國卻又是另一種風景。眾所周知,現階段中國的版權保護制度和國外還有實質上的差距,這實際上使P2P技術的運用在相當長的一段時間內可以規避版權問題的困擾。按照國內我們的理解,P2P軟體提供的只是一個資源共享平台,並不需要對其中傳播的內容負主要責任,只要適當地監督引導當然可以大膽運作。從這方面來說,國內的P2P軟體廠商處境要比國外的同行幸福很多,路已經有前人開好,又不必像國外的先行者如Napster一樣面臨官司的壓力。而我們面對現狀,一個形象的比喻是:你願意揮汗如雨在天橋淘碟,還是願意輕松候意在家享受寬頻視頻下載? 網路傳輸這種傳播方式遲早有一天會取代傳統的以磁帶、光碟為載體的影視音樂發行渠道,從而成為人們獲取影音資源的主要渠道,這似乎已經成了一個不爭的事實。看看國外已經進行了多少年的爭端,能不能給我們一些啟示。在中國這樣一個走進任何一家音像店,你都可以用低廉的價格獲取幾乎與正版沒有任何區別的音像製品的情況下,利用新技術的無窮魅力與優勢建立一個全新的發行渠道,打破以往那種發行模式才有可能避免切膚之痛。或許,國內的P2P行業有可能比國外的同行更有優勢率先實現成熟的商業模式

熱點內容
sql創建鏈接 發布:2025-07-08 00:08:38 瀏覽:398
ftp上傳中斷 發布:2025-07-08 00:08:37 瀏覽:641
linux雲計算課程 發布:2025-07-08 00:07:23 瀏覽:23
安卓網易雲怎麼發布歌曲 發布:2025-07-07 23:42:29 瀏覽:626
安卓內存讀取腳本 發布:2025-07-07 23:42:19 瀏覽:871
python27漢化 發布:2025-07-07 23:42:18 瀏覽:721
源碼鎖屏 發布:2025-07-07 23:26:52 瀏覽:943
手機版編程軟體 發布:2025-07-07 22:57:22 瀏覽:122
linux下執行sh腳本 發布:2025-07-07 22:49:00 瀏覽:127
雲盤怎麼存儲資料 發布:2025-07-07 22:49:00 瀏覽:915