বেঞ্চমার্কিংয়ের উদ্দেশ্যে এক বা একাধিক দূরবর্তী সার্ভারে কীভাবে টিসিপি ট্র্যাফিকের নকল করবেন?


30

পরিকাঠামো: ডেটাসেন্টার, ওএস-এ সার্ভারস - ডেবিয়ান স্কিজ, ওয়েবসার্ভার - অ্যাপাচি ২.২.১6


অবস্থা:

লাইভ সার্ভারটি প্রতিদিন আমাদের কসোথার্স দ্বারা ব্যবহৃত হয়, যা সামঞ্জস্য এবং উন্নতিগুলি পরীক্ষা করা অসম্ভব করে তোলে। তাই আমরা লাইভ সার্ভারের ইনবাউন্ড এইচটিটিপি ট্র্যাফিকটিকে রিয়েলটাইমের এক বা একাধিক রিমোট সার্ভারে নকল করতে চাই। ট্র্যাফিক স্থানীয় ওয়েবসারভারে (এই ক্ষেত্রে অ্যাপাচি) এবং দূরবর্তী সার্ভারগুলিতে যেতে হবে। এর মাধ্যমে আমরা কনফিগারেশনগুলি সামঞ্জস্য করতে পারি এবং বর্তমান লাইভ-সার্ভারের সাথে বেঞ্চমার্কিং এবং তুলনার জন্য দূরবর্তী সার্ভারে বিভিন্ন / আপডেট হওয়া কোড ব্যবহার করতে পারি। বর্তমানে ওয়েবসারভার প্রায় শুনছে। ক্লায়েন্ট স্ট্রাকচারের কারণে 80 এবং 443 এর পাশাপাশি 60 টি অতিরিক্ত পোর্ট।


প্রশ্ন: এক বা একাধিক রিমোট সার্ভারের এই সদৃশটি কীভাবে কার্যকর করা যেতে পারে?

আমরা ইতিমধ্যে চেষ্টা করেছি:

  • অগ্নোস্টার ডুপ্লিকেটর - এর জন্য প্রতি বন্দর প্রতি একটি উন্মুক্ত অধিবেশন প্রয়োজন যা প্রযোজ্য নয়। ( https://github.com/agnoster/ ডুপ্লিকেটর )
  • kklis প্রক্সি - কেবল দূরবর্তী সার্ভারে ট্র্যাফিক ফরোয়ার্ড করে, তবে এটি Lcoal ওয়েবসার্ভারে দেয় না। ( https://github.com/kklis/proxy )
  • আইপেটেবলস - ডিএনএটি কেবল ট্র্যাফিককে ফরোয়ার্ড করে তবে এটি স্থানীয় ওয়েব সার্ভারে দেয় না
  • iptables - TEE কেবলমাত্র স্থানীয় নেটওয়ার্কে সার্ভারগুলিতে নকল করে -> ডেটাসেন্টারের কাঠামোর কারণে সার্ভারগুলি একই নেটওয়ার্কে অবস্থিত না
  • স্ট্যাকওভারফ্লোতে "প্রক্সি সহ ডুপ্লিকেট টিসিপি ট্র্যাফিক" প্রশ্নের জন্য প্রদত্ত প্রস্তাবিত বিকল্পগুলি ( /programming/7247668/dictate-tcp-traffic-with-a-proxy ) ব্যর্থ ছিল। উল্লিখিত হিসাবে, TEE স্থানীয় নেটওয়ার্কের বাইরে দূরবর্তী সার্ভারগুলির সাথে কাজ করে না। teeproxy আর উপলভ্য নয় ( https://github.com/chrislusf/tee-proxy ) এবং আমরা এটি অন্য কোথাও খুঁজে পাইনি।
  • আমরা একটি দ্বিতীয় আইপি ঠিকানা যুক্ত করেছি (যা একই নেটওয়ার্কে রয়েছে) এবং এটিকে0: 0 এ নির্ধারিত করা হয়েছে (প্রাথমিক আইপি ঠিকানাটি ইথ0-তে নির্ধারিত হয়)। এই নতুন আইপি বা ভার্চুয়াল ইন্টারফেস ইথ0: 0 এর সাথে আইপটিবল টিআইই ফাংশন বা রুটের সংমিশ্রণে কোনও সাফল্য নেই
  • "ডেবিয়ান স্কিজে ডুপ্লিকেট ইনকামিং টিসিপি ট্র্যাফিক " (দেবিয়ান স্কুইজে ডুপ্লিকেট ইনকামিং টিসিপি ট্র্যাফিক ) প্রদানের জন্য প্রস্তাবিত বিকল্পগুলি ব্যর্থ হয়েছিল। বিড়াল | এনসি সেশনস (বিড়াল / টিএমপি / প্রোডাইপ | এনসি 127.0.0.1 12345 এবং বিড়াল / টিএমপি / টেস্টপাইপ | এনসি 127.0.0.1 23456) কোনও অনুরোধের পরে বা কোনও বিজ্ঞপ্তি বা লগ ছাড়াই কোনও ক্লায়েন্টের সাথে সংযুক্ত হওয়ার পরে বাধাগ্রস্ত হয়। কিপালাইভ এই পরিস্থিতিতে পরিবর্তন করেনি। টিসিপি প্যাকেজগুলি রিমোট সিস্টেমে স্থানান্তরিত হয়নি।
  • স্যাকটের বিভিন্ন বিকল্পের সাথে অতিরিক্ত চেষ্টা (HowTo: http://www.cyberciti.biz/faq/linux-unix-tcp-port-forwarding/ , /programming/9024227/ নকল- ইনপুট- ইউনিক্স-স্ট্রিমি-টু-মাল্টিপল-টিসিপি-ক্লায়েন্টস-সজ্যাট ) এবং অনুরূপ সরঞ্জামগুলি ব্যর্থ হয়েছিল, কারণ প্রদত্ত টিআইই ফাংশনটি কেবল এফএস-এ লিখবে।
  • অবশ্যই, এই "সমস্যা" বা সেটআপটি গুগল করা এবং অনুসন্ধান করাও ব্যর্থ হয়েছিল।

আমরা এখানে বিকল্পগুলির বাইরে চলেছি।

আইপিটিবেলস ব্যবহার করার সময় টিআইই ফাংশনের "স্থানীয় নেটওয়ার্কে সার্ভার" প্রয়োগের অক্ষম করার কোনও পদ্ধতি আছে কি?

আইপিটিবেলস বা রুটগুলির বিভিন্ন ব্যবহার দ্বারা আমাদের লক্ষ্য অর্জন করা যেতে পারে?

আপনি কি এই উদ্দেশ্যে একটি আলাদা সরঞ্জাম জানেন যা পরীক্ষা করা হয়েছে এবং এই নির্দিষ্ট পরিস্থিতিতে কাজ করে?

টি-প্রক্সি (যা আমাদের প্রয়োজনীয়তা পুরোপুরি ফিট করে, আফাইক) এর জন্য আলাদা উত্স আছে কি?


আপনার উত্তরের জন্য অগ্রিম ধন্যবাদ.

----------

সম্পাদনা: 05.02.2014

এখানে অজগর লিপিটি রয়েছে, যা আমাদের এটির মতো কাজ করবে:

import socket  
import SimpleHTTPServer  
import SocketServer  
import sys, thread, time  

def main(config, errorlog):
    sys.stderr = file(errorlog, 'a')

    for settings in parse(config):
        thread.start_new_thread(server, settings)

    while True:
        time.sleep(60)

def parse(configline):
    settings = list()
    for line in file(configline):
        parts = line.split()
        settings.append((int(parts[0]), int(parts[1]), parts[2], int(parts[3])))
    return settings

def server(*settings):
    try:
        dock_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

        dock_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

        dock_socket.bind(('', settings[0]))

        dock_socket.listen(5)

        while True:
            client_socket = dock_socket.accept()[0]

            client_data = client_socket.recv(1024)
            sys.stderr.write("[OK] Data received:\n %s \n" % client_data)

            print "Forward data to local port: %s" % (settings[1])
            local_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            local_socket.connect(('', settings[1]))
            local_socket.sendall(client_data)

            print "Get response from local socket"
            client_response = local_socket.recv(1024)
            local_socket.close()

            print "Send response to client"
            client_socket.sendall(client_response)
            print "Close client socket"
            client_socket.close()

            print "Forward data to remote server: %s:%s" % (settings[2],settings[3])
            remote_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            remote_socket.connect((settings[2], settings[3]))
            remote_socket.sendall(client_data)       

            print "Close remote sockets"
            remote_socket.close()
    except:
        print "[ERROR]: ",
        print sys.exc_info()
        raise

if __name__ == '__main__':
    main('multiforwarder.config', 'error.log')

এই স্ক্রিপ্টটি ব্যবহার করার জন্য মন্তব্যসমূহ:
এই স্ক্রিপ্টটি বেশ কয়েকটি কনফিগার করা স্থানীয় পোর্ট অন্য স্থানীয় এবং একটি দূরবর্তী সকেট সার্ভারের কাছে ফরোয়ার্ড করে।

কনফিগারেশন:
কনফিগারেশন ফাইলটিতে পোর্ট-ফরোয়ার্ড কনফিগ লাইনগুলি অন্তর্ভুক্ত করুন:

ত্রুটি বার্তাগুলি ফাইল 'error.log' এ সংরক্ষণ করা হয়।

স্ক্রিপ্টটি কনফিগারেশনের ফাইলগুলির পরামিতিগুলি বিভক্ত করেছে:
প্রতিটি কনফিগার-রেখা স্পেস
0 দিয়ে বিভক্ত করুন : স্থানীয় শুনতে পোর্টটি
1: লোকাল পোর্টটি ফরোয়ার্ডে
2: গন্তব্য সার্ভারের দূরবর্তী আইপি অ্যাড্রেস
3: গন্তব্য সার্ভারের রিমোট পোর্ট
এবং রিটার্ন সেটিংস


ট্র্যাফিক সব কি এইচটিটিপি?
দীর্ঘ 15

হ্যাঁ, সমস্ত ট্র্যাফিক এইচটিটিপি।
সিস

1
BTW। teeproxy এখানে উপলব্ধ: github.com/chrislusf/teeproxy
টম্বার্ট

1
আরেকটি সম্ভাবনা: github.com/ebowman/splitter স্কালা / নেট ভিত্তিক।
ধনী কে।

উত্তর:


11

এটা অসম্ভব. টিসিপি হ'ল স্টেটফুল প্রোটোকল। ব্যবহারকারীর শেষ কম্পিউটার সংযোগের প্রতিটি পদক্ষেপে জড়িত এবং এটির সাথে যোগাযোগের চেষ্টা করার জন্য এটি দুটি পৃথক সার্ভারের উত্তর দেয় না। আপনি যা করতে পারেন তা হ'ল ওয়েব সার্ভার বা কিছু প্রক্সিতে সমস্ত HTTP অনুরোধ সংগ্রহ করা এবং সেগুলি পুনরায় খেলুন। তবে এটি কোনও লাইভ সার্ভারের সঠিক সম্মতি বা ট্রাফিক শর্ত দেয় না।


টিসিপি সদৃশ করা অসম্ভব - আমি এটির সাথে একমত হই। 7 স্তর ট্র্যাফিকের নকল করা নয়। আপনি ক্লায়েন্টের কাছ থেকে অনুরোধগুলি ক্যাপচার করতে পারেন এবং অন্যান্য সার্ভারগুলিতে এগুলি খেলতে পারেন। টিসিপি সেশন প্লেব্যাক প্রতি সাধারণ 1 অনুরোধটি খুব সহজ হওয়া উচিত। অবিচ্ছিন্ন সংযোগগুলির জন্য আপনি কীভাবে ক্লায়েন্টের অতিরিক্ত অনুরোধগুলি সময় দেবেন সে হিসাবে কিছু চিন্তাভাবনা প্রয়োজন।
ইভান অ্যান্ডারসন

@ কাজিমিরাস আলিউলিস: এটি দুটি পৃথক সার্ভারের সাথে যোগাযোগের প্রয়োজন হয় না। ক্লায়েন্ট প্রাথমিক সার্ভার = লাইভ সার্ভারের সাথে যোগাযোগ করছে। লাইভ সার্ভার ক্লায়েন্টের অনুরোধগুলি প্রক্রিয়া করছে এবং ক্লায়েন্টকে উত্তর দিচ্ছে। প্রক্রিয়াকরণ এবং ক্লায়েন্টকে উত্তর দেওয়ার পাশাপাশি প্রাথমিক সার্ভারটি দ্বিতীয় সার্ভার = পরীক্ষার সার্ভারে অনুরোধগুলি নকল করে। প্রাথমিক সার্ভারের দ্বিতীয় সার্ভার থেকে দেওয়া প্রতিক্রিয়াগুলি প্রাথমিক সার্ভারে বাতিল / উপেক্ষা করা হবে এবং ক্লায়েন্টের কাছে ফরোয়ার্ড করা হবে না।
Sice 8

@ ইভান অ্যান্ডারসন: এইচটিটিপি স্তরে নকলটিও আমাদের প্রথম ধারণা ছিল, তবে উদাহরণস্বরূপ অ্যাপাচি প্রক্সি বা অনুরূপ সরঞ্জাম বা মডিউলগুলি স্থানীয়ভাবে অনুরোধগুলি প্রক্রিয়া করতে দেয় না এবং এটি কোনও দূরবর্তী হোস্টে সদৃশ হয়। আপনার যদি অন্য কোনও ধারণা থাকে তবে দয়া করে পরামর্শ দিন! :) আমরা তাত্ক্ষণিক তুলনা ফলাফল পেতে রেকর্ডিং এবং পুনরায় খেলতে ডুপ্লিকেশন পছন্দ।
Sise

1
@ সিজ: আপনি নিজের HTTP প্রক্সি লেখার চেষ্টা করতে পারেন, যা ট্রাফিকটিকে দুটি সার্ভারে পাস করে। পাইথন ট্যুইস্টেড ফ্রেমওয়ার্ক twistedmatrix.com এর সাথে করা খুব সহজ হওয়া উচিত ।
কাজিমিরাস আলিউলিস

@ কাজিমিরাস আলিউলিস: এটি অবশ্যই বিকল্প! আমি এর কথা কখনও শুনিনি। তবে এটি পরীক্ষা করে দেখায় যে এটি আমাদের উদ্দেশ্য অনুসারে পুরোপুরি ফিট হবে। আমরা অজগরটিকে আগে বিবেচনা করি নি, তবে বর্তমানে আমরা সাধারণ পাইথনের সাথে বাঁকানো কাঠামো এবং সম্ভাবনাগুলিও দেখছি। আমরা সফল হলে ফিরে রিপোর্ট করব!
সায়

20

আপনি যা বর্ণনা করছেন তা থেকে জিওআর আপনার প্রয়োজন অনুসারে ফিট করে। https://github.com/buger/gor/ "এইচটিটিপি ট্র্যাফিক রিয়েল-টাইমে রিপ্লে production ?


2
আমি ঠিক এটিই খুঁজছিলাম, অনেক অনেক ধন্যবাদ, আপনি আমাকে ঠিক এই লেখাটি সংরক্ষণ করেছেন, গো! :-)
chmac

nginx এর আয়না মডিউল রয়েছে। nginx.org/en/docs/http/ngx_http_mirror_module.html
জিমি এমজি লিম

7

ট্রাইপিকে নকল করতে টিপ্রোক্সি ব্যবহার করা যেতে পারে। ব্যবহার সত্যিই সহজ:

./teeproxy -l :80 -a localhost:9000 -b localhost:9001
  • a উত্পাদন সার্ভার
  • b পরীক্ষার সার্ভার

আপনি যখন roundrobinনিজের ওয়েবসার্ভারের আগে এইচএপ্রক্সি (সহ ) রাখেন আপনি নিজের ট্র্যাফিকের 50% সহজেই পরীক্ষার সাইটে পুনর্নির্দেশ করতে পারেন:

         /------------------> production
HAproxy /                 ^
        \                /
         \---- teeproxy -.....> test (responses ignored)

4

টিসিপি, একটি রাষ্ট্রীয় প্রোটোকল হওয়ায়, অন্য কোনও হোস্টে কেবল প্যাকেটগুলির অনুলিপিগুলি ব্লাস্ট করার পক্ষে উপযুক্ত নয়, যেমন @ কাজিমিরাস আলিউলিস উল্লেখ করেছেন।

টিসিপি সমাপ্তির স্তরে প্যাকেটগুলি তুলে নেওয়া এবং এটিকে একটি নতুন টিসিপি স্ট্রিম হিসাবে রিলে যুক্তিসঙ্গত। ডুপ্লিকেটর টুল কেমন লাগে আপনাদের লিঙ্ক আপনার সেরা বাজি পছন্দ করি। এটি টিসিপি প্রক্সি হিসাবে কাজ করে, টিসিপি স্টেট মেশিনকে সঠিকভাবে পরিচালনা করার অনুমতি দেয়। আপনার পরীক্ষা মেশিনের প্রতিক্রিয়াগুলি কেবল বাতিল করা হবে। আপনি ঠিক কী চান এটির জন্য এটি বিলটি ফিট করে বলে মনে হচ্ছে।

আপনি কেন সদৃশ সরঞ্জামটি অগ্রহণযোগ্য হিসাবে লিখে রেখেছেন তা আমার কাছে অস্পষ্ট। আপনাকে কেবলমাত্র একাধিক উদাহরণ চালাতে হবে যেহেতু এটি কেবলমাত্র একটি পোর্টে শোনা যায় তবে সম্ভবত, আপনি সেই ভিন্ন শ্রোতার পোর্টগুলির প্রত্যেকটিকে ব্যাক-এন্ড সিস্টেমে বিভিন্ন বন্দরে রিলে করতে চান। যদি তা না হয় তবে আপনি সমস্ত শ্রবণ পোর্টগুলিকে ডুপ্লিকেটর সরঞ্জামের একক শ্রুতি কপির দিকে পরিচালিত করতে iptables DNAT ব্যবহার করতে পারেন।

আপনি যে অ্যাপ্লিকেশনগুলি পরীক্ষা করছেন তা ময়লা সহজ না হলে আমি আশা করি যে সময় এবং অভ্যন্তরীণ প্রয়োগের অবস্থার সাথে সম্পর্কিত এই পরীক্ষার পদ্ধতিতে আপনার সমস্যা হতে চলেছে। আপনি যা করতে চান তা ছদ্মবেশী সহজ শোনায় - আমি আশা করি আপনি প্রচুর এজ মামলা পাবেন।


হ্যাঁ, আপনি সম্পূর্ণরূপে ঠিক বলেছেন, একাধিক বন্দরের পরিস্থিতি বাদে অগ্নোস্টার ডুপ্লিকেটর সরঞ্জামটি আমাদের প্রয়োজনীয়তার সাথে খাপ খায়। এছাড়াও পরীক্ষার মেশিনের প্রতিক্রিয়াগুলি বাতিল করে দেওয়া পূর্ণ is বাস্তব / লাইভ পরিস্থিতি যথাসম্ভব যথাযথভাবে অনুকরণের আমাদের লক্ষ্য অর্জনের জন্য আমরা লাইভ সার্ভারের সমস্ত পোর্টকে পরীক্ষার মেশিনের একটি একক বন্দরে বান্ডেল করতে পারি না। বিভিন্ন গ্রাহকদের ক্লায়েন্ট ডিভাইসগুলি বিভক্ত করতে বিভিন্ন বন্দর ব্যবহার করা হয়। এর মাধ্যমে, আমাদের এই সদৃশ সরঞ্জামটির 60-70 সেশনগুলি খুলতে হবে। আপনি কল্পনা করতে পারেন এটি খুব ব্যবহারিক নয়।
Sise

@ সিস - কম্পিউটাররা ক্লান্তিকর কাজগুলি করতে ভাল। আমি মনে করি আপনি নিজের অ্যাপাচি কনফিগারেশন পার্স করার জন্য একটি স্ক্রিপ্ট লিখতে পারেন এবং ডুপ্লিকেটর সরঞ্জামটির 60 - 70 টি দৌড়ানোর জন্য প্রয়োজনীয় কমান্ড লাইনগুলি থুতুতে পারেন। আমি অনুমান করতে পারি না যে সদৃশ সরঞ্জামটি খুব সংস্থানযুক্ত তবে এটি যদি আপনি হয়ে থাকেন তবে আপনি সেগুলি 60 - 70 টি অন্য মেশিনে চালাতে পারেন এবং সেখানকার ট্র্যাফিকটি পাওয়ার জন্য কিছু নেটওয়ার্ক ট্রিক্রি করতে পারেন। আমার কাছে, কমপক্ষে, এটি সম্পূর্ণ ব্যবহারিক এবং এটি হ্যান্ডেল করার জন্য একটি সহজ সরল উপায় বলে মনে হচ্ছে।
ইভান অ্যান্ডারসন

1

আমি অনুরূপ কিছু করার চেষ্টা করছি তবে যাইহোক, আপনি যদি কেবল কোনও সার্ভারের বোঝার সীমাবদ্ধ করার চেষ্টা করছেন তবে আমি লোড-টেস্টিং ফ্রেমওয়ার্কের মতো কিছু দেখতে চাই। আমি অতীতে লোকাল.আইও ব্যবহার করেছি এবং এটি একটি সার্ভারে লোড অনুকরণের জন্য খুব ভাল কাজ করেছে। এটি আপনাকে বিপুল সংখ্যক ক্লায়েন্টকে সিমুলেট করার অনুমতি দেয় এবং অন্য সার্ভারে ট্র্যাফিক ফরোয়ার্ড করার বেদনাদায়ক প্রক্রিয়াটি ছাড়াই আপনাকে সার্ভারের কনফিগারেশন দিয়ে খেলতে দেয়।


0

যতক্ষণ না "আমরা লাইভ সার্ভারের ইনবাউন্ড এইচটিটিপি ট্র্যাফিকটিকে রিয়েলটাইমের এক বা একাধিক রিমোট সার্ভারের অনুলিপি করতে চাই", উপরে উল্লিখিত একটি উপায় নেই যা এটি সংযুক্ত থাকা স্যুইচটিতে একটি আয়না পোর্টটি কনফিগার করছে।

সিসকো ক্যাটালিস্ট স্যুইচগুলির ক্ষেত্রে এটিকে স্প্যান (আরও তথ্য এখানে ) বলা হয়। সিসকো পরিবেশে আপনি এমনকি অন্য একটি সুইচটিতে মিররড পোর্ট রাখতে পারেন।

তবে এর উদ্দেশ্য ট্র্যাফিক-বিশ্লেষণের জন্য তাই এটি এক-দিকনির্দেশক হবে - উপরের প্রথম অনুচ্ছেদে উদ্ধৃত পাঠ্যের কীওয়ার্ড: ইনবাউন্ড । আমি মনে করি না যে বন্দরটি কোনও ফিরতি ট্র্যাফিকের অনুমতি দেবে, এবং যদি এটি হয়ে থাকে তবে আপনি কীভাবে নকল ফেরতের ট্র্যাফিকের মোকাবেলা করবেন? এটি সম্ভবত আপনার নেটওয়ার্কের সাথে সর্বনাশ করবে।

সুতরাং ... কেবলমাত্র আপনার তালিকায় একটি সম্ভাবনা যুক্ত করতে চেয়েছিল, তবে সাবধানতার সাথে যে এটি সত্যই একমুখী ট্র্যাফিকের জন্য হবে। হতে পারে আপনি সেই আয়নার বন্দরে একটি হাব রাখতে পারেন এবং স্থানীয় ক্লায়েন্ট সিমুলেটর দ্বারা ডুপ্লিকেট সার্ভারের উত্তরগুলি হস্তান্তর করা যেতে পারে যা প্রারম্ভিক সেশনগুলি বেছে নেবে এবং প্রতিক্রিয়া জানাবে, তবে তারপরে আপনি নিজের সদৃশ সার্ভারে আগত ট্র্যাফিকের নকল করবেন ... সম্ভবত আপনি যা করবেন না চাই।


আমরা সে সম্পর্কে ভেবে দেখেছি, স্প্যান ব্যবহারের বিকল্পটি নিয়ে পড়েছি। সার্ভারগুলি তৃতীয় পক্ষের সরবরাহকারীর ডেটা সেন্টারে অবস্থিত হওয়ায়, হার্ডওয়্যার পরিবর্তনের ক্ষেত্রে আমাদের সম্ভাবনা সীমিত রয়েছে। আমি ইতিমধ্যে দ্বিতীয় সার্ভারে সরাসরি 2 টি সার্ভার সংযোগ করার জন্য অনুরোধ করেছি। এই 2 সার্ভারের জন্য স্থানীয় নেটওয়ার্কের সাথে মিলিত এই ক্রিয়াটি আমাকে টিআইই দিয়ে আইপিটিবেলস ব্যবহারের অনুমতি দেবে। তবে এই বিকল্পের জন্য যেতে আমাদের সার্ভারগুলির বহিরাগত আইপিগুলি পরিবর্তন করতে হবে যা একটি নোগো কারণ ক্লায়েন্ট ডিভাইসগুলি সেট আইপিতে সংযোগ করার জন্য কনফিগার করা হয়েছে।
Sise

0

আমি নোড.জেএস এর সাথে অনুরূপ উদ্দেশ্যে বিপরীত প্রক্সি / লোড ব্যালেন্সারও লিখেছি (এটি কেবল মজাদার জন্য, মুহূর্তে প্রযোজনা প্রস্তুত নয়)।

https://github.com/losnir/ampel

এটি অত্যন্ত মতামতযুক্ত এবং বর্তমানে সমর্থন করে:

  • GET রাউন্ড-রবিন নির্বাচন ব্যবহার (1: 1)
  • POSTঅনুরোধ বিভাজন ব্যবহার। "মাস্টার" এবং "ছায়া" সম্পর্কে কোনও ধারণা নেই - প্রথম ব্যাকএন্ড যা প্রতিক্রিয়া জানায় তা হ'ল ক্লায়েন্টের অনুরোধটি পরিবেশন করা হবে এবং তারপরে অন্যান্য সমস্ত প্রতিক্রিয়া বাতিল হয়ে যাবে।

যদি কারও কাছে এটি দরকারী মনে হয় তবে আমি আরও নমনীয় হওয়ার জন্য এটি উন্নত করতে পারি।


নোড.জেএস একটি অ্যাপ্লিকেশনটির জন্য ভাষার একটি খুব অদ্ভুত পছন্দ যা খুব উচ্চতর পারফরম্যান্সের প্রয়োজন require আমি নিশ্চিত না যে এটি কখনই উত্পাদন প্রস্তুত থাকবে।
মাইকেল হ্যাম্পটন

তুমি একদম সঠিক. এটি উচ্চ পারফরম্যান্ট হওয়ার জন্য বোঝানো হয়নি - কেবল সহজে লেখা (আমার পক্ষে)। আমি এটি প্রয়োজনীয় বোঝার উপর নির্ভর করে বলে মনে করি। যদিও আমি নিম্ন প্রান্তের মেশিনে (2 কোর) এক হাজারেআরপিএসের চেয়ে কিছুটা বেশি অর্জন করতে সক্ষম হয়েছি।
লসনিরি

0

আমার সংস্থার অনুরূপ প্রয়োজনীয়তা ছিল, একটি প্যাকেট ক্লোন করে অন্য হোস্টকে প্রেরণ করা (আমরা বাজারের ডেটা সিমুলেটর চালাই এবং একটি অস্থায়ী সমাধানের প্রয়োজন যা মার্কেটের ডেটা টিসিপি ফিড শোনার জন্য, প্রতিটি প্যাকেটকে ইনজেক্ট করার পাশাপাশি প্রতিটি প্যাকেটের ক্লোনকে অন্য সিমুলেটারে প্রেরণ করা হত) সার্ভার)

এই বাইনারিটি খুব ভালভাবে চলে, এটি টিসিপি ডুপ্লিকেটরের একটি সংস্করণ তবে জাস্ক্রিপ্টের পরিবর্তে গোলংয়ে লিখিত, সুতরাং এটির পথটি দ্রুততর এবং বিজ্ঞাপন হিসাবে কাজ করে,

https://github.com/mkevac/goduplicator


-1

একটি চীনা কোম্পানির লোক দ্বারা তৈরি একটি সরঞ্জাম রয়েছে এবং আপনার এটির প্রয়োজন হতে পারে: https://github.com/session-replay-tools/tcpcopy


2
হাই এবং সার্ভারফোল্টে আপনাকে স্বাগতম। আপনি আরও বিস্তারিত উত্তর দিতে পারেন দয়া করে? প্রোগ্রামটি ঠিক কী করে? এটা কি সি ... তে লেখা আছে?
bgtvfr
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.