Didiタクシーや美団クラウドソーシングのような、こんなプロジェクトをやりたいです
実際には、市内配達です。新しいテイクアウトの注文があると、リアルタイムで注文の近くの配達スタッフにプッシュされ、配達スタッフは注文を受け取ってから注文を配達します。
とても単純なことのように思えますが、私にとってはweb开发
どこから始めればよいのかわかりません。最初に考えたのは:
APP
与服务器WebSocket
直连,实时将地理位置经纬度上传给服务器,服务器使用内存数据库将位置保存下来(redis/mongodb
)を配達員の携帯電話に送信し、一定周期で継続的に新規注文を検出し、新規注文の近くに配達員がいるかどうかを常に計算し、配達員がいる場合は対応する配達員にプッシュします。
アイデアは非常にシンプルですが、いくつか問題があります:
2: リアルタイム通信、マルチプロセス、マルチスレッド、同時実行性1:
配達員はどのようにして位置を取得し、リアルタイムでサーバーに送信しますか? 配達員は常に自転車で走り回っています。
ajax
一样了,我想用WebSocket
- サーバーは配達員の位置情報を保存するためにメモリデータを使用しますか?しかし、次回確認するときにどのように確認できますか?
これは大量のデータを生成しますか?
redis
支持地理位置索引
- ここでどのような知識が必要なのかはわかりませんが、次のテクノロジーがあるはずです。
内存数据库
nosql
、インメモリ データベース
3: キュー
、タイミング プログラム
、CLI
、バックグラウンド常駐サービス
4: 空間インデックス、空間計算、地理的位置インデックス計算nosql
,内存数据库
2: 实时通信,多进程,多线程,并发
3: 队列
,定时程序
,CLI
,后台常驻服务
4: 空间索引,空间计算,地理位置索引计算
5: Socket编程
,Socket通信
,Socket推送,H5 Socket
6: APP开发,但是我用web H5
的Socket
能不能行呢,配送人员不一定要用APP
吧,只要WebSocket
稳定就行了(再弱弱的问一句,ajax
5: ソケットプログラミング
、ソケット通信
、ソケットプッシュ、H5ソケット
web H5Socket
は機能しますか? WebSocket
が安定している限り、配達担当者は APP
を使用する必要はありません (もう一度、弱々しく質問します) 、ajax
は機能しますか?)経験豊富なマスターが私にアドバイスをくれて、諦めろとは言わないでください。でも、あなたが私に教えてくれれば、少なくとも私はそれらを一つずつ勉強します。知識が必要です。
補足写真(Hummingbirdクラウドソーシング/ダダ配信):
皆さんありがとう^_^
Didiタクシーや美団クラウドソーシングのような、こんなプロジェクトをやりたいです
実際には、市内配達です。新しいテイクアウトの注文があると、リアルタイムで注文の近くの配達スタッフにプッシュされ、配達スタッフは注文を受け取ってから注文を配達します。
web开发
とても単純なことのように思えますが、私にとっては
APP
与服务器WebSocket
直连,实时将地理位置经纬度上传给服务器,服务器使用内存数据库将位置保存下来(redis/mongodb
)を配達員の携帯電話に送信し、一定周期で継続的に新規注文を検出し、新規注文の近くに配達員がいるかどうかを常に計算し、配達員がいる場合は対応する配達員にプッシュします。
アイデアは非常にシンプルですが、いくつか問題があります:
配達員はどのようにして位置を取得し、リアルタイムでサーバーに送信しますか? 配達員は常に自転車で走り回っています。
ajax
一样了,我想用WebSocket
- サーバーは配達員の位置情報を保存するためにメモリデータを使用しますか?しかし、次回確認するときにどのように確認できますか?
これにより大量のデータが生成されますか?
redis
支持地理位置索引
ここでどのような知識が必要なのかはわかりませんが、次のテクノロジーがあるはずです。
1: nosql
、インメモリ データベース nosql
,内存数据库
2: 实时通信,多进程,多线程,并发
3: 队列
,定时程序
,CLI
,后台常驻服务
4: 空间索引,空间计算,地理位置索引计算
5: Socket编程
,Socket通信
,Socket推送,H5 Socket
6: APP开发,但是我用web H5
的Socket
能不能行呢,配送人员不一定要用APP
吧,只要WebSocket
稳定就行了(再弱弱的问一句,ajax
2: リアルタイム通信、マルチプロセス、マルチスレッド、同時実行性
キュー
、タイミング プログラム
、CLI
、バックグラウンド常駐サービス 4: 空間インデックス、空間計算、地理的位置インデックス計算
5:ソケットプログラミング
、ソケット通信
、ソケットプッシュ、H5ソケット
6: APP開発ですが、私はweb H5Socket
は機能しますか? WebSocket
が安定している限り、配達担当者は APP
を使用する必要はありません (もう一度、弱々しく質問します) 、ajax
は機能しますか?)
経験豊富なマスターが私にアドバイスをくれて、諦めろとは言わないでください。でも、あなたが私に教えてくれれば、少なくとも私はそれらを一つずつ勉強します。知識が必要です。
皆さんありがとう^_^
まず第一に、回答するようお誘いいただきありがとうございます。
この種のプロジェクトにはサーバーとクライアント
クライアント
ウェブサーバー
Web サーバーの言語は制限されていません。Web サーバーは複雑な計算を使用しないことに注意してください。Web サーバーはデータベース データを表示することのみを担当します。
メッセージキューや位置計算など、大量の計算を必要とし、バックグラウンドに配置する必要があるバックグラウンド プログラムが多数あります。
まず長い接続を確立します (長い接続が確立できる限り、どのようなネットワーク テクノロジでも、どのようなネットワーク フレームワークでもかまいません)。地理的位置 (地図 API に基づいて取得) を送信するようにクライアントに通知し、サーバーは注文を行った顧客の地理的位置を比較します (地図が API を提供している場合は自分で比較できます)。 API 比較を使用し)、最も近い人々のグループを選択して、注文を発送します (一般的なプログラミング ロジック)。
その場合、注文追跡機能は最初のフェーズで実装する必要はありません(つまり、担当者の軌跡データを保存する必要はありません)。注文追跡を実装するには、位置情報が必要です。数秒ごとに送信され (これはキャッシュすることも永続化することもできます。将来の分析に必要かどうかによって異なります。キャッシュには redis または mongodb など、必要に応じて使用できます)、サーバーは位置情報を更新します。
実際に使用するテクノロジーを選択できるようになりました。現在、位置情報と位置比較は基本的にマップの API を呼び出すことで取得されます。原理を知りたい場合は、プロジェクトの完了後に自分で調べることができます。
🎜ロジックはシンプルで、最初のフェーズで使用されるテクノロジーはそれほど複雑ではありません。フィルタリングにはビッグデータなどが使用されます。あまり複雑に考えるとオーバーデザインになるため、これはタブーです。 🎜