পিয়ার দ্বারা ডকার সোর্ম ডাটাবেস সংযোগটি পুনরায় সেট করুন


12

আমি ডকার সোকার সাথে একটি স্প্রিং বুট অ্যাপ্লিকেশন চালাচ্ছি এবং আমি ডেটাবেসের জন্য পোস্টগ্র্যাস ব্যবহার করি। আমি যখন উভয়কেই ডকার পরিষেবা হিসাবে চালনা করি, তখন লগ হিসাবে যেমন ডাটাবেস সংযোগটি ধারাবাহিকভাবে এবং এলোমেলোভাবে ব্যর্থ হয় (আপনি টাইমস্ট্যাম্পে দেখতে পারেন):

2017-10-26T 17:14:15 .200415747Z অ্যাপ-db.1.1ayo6h8ro1og@scw-c2964a | লগ: ক্লায়েন্টের কাছ থেকে ডেটা পেতে পারেনি: পিয়ারের মাধ্যমে সংযোগটি পুনরায় সেট করা হয়েছে

2017-10-26T 17:43:36 .481718562Z অ্যাপ-db.1.1ayo6h8ro1og@scw-c2964a | লগ: ক্লায়েন্টের কাছ থেকে ডেটা পেতে পারেনি: পিয়ারের মাধ্যমে সংযোগটি পুনরায় সেট করা হয়েছে

2017-10-26T 17:43:56 .954152654Z অ্যাপ-db.1.1ayo6h8ro1og@scw-c2964a | লগ: ক্লায়েন্টের কাছ থেকে ডেটা পেতে পারেনি: পিয়ারের মাধ্যমে সংযোগটি পুনরায় সেট করা হয়েছে

2017-10-26T 17:44:17 .434171472Z অ্যাপ-db.1.1ayo6h8ro1og@scw-c2964a | লগ: ক্লায়েন্টের কাছ থেকে ডেটা পেতে পারেনি: পিয়ারের মাধ্যমে সংযোগটি পুনরায় সেট করা হয়েছে

2017-10-26T 17:49:04 .154174253Z অ্যাপ-db.1.1ayo6h8ro1og@scw-c2964a | লগ: ক্লায়েন্টের কাছ থেকে ডেটা পেতে পারেনি: পিয়ারের মাধ্যমে সংযোগটি পুনরায় সেট করা হয়েছে

আমি এর কারণ বুঝতে পারি না বা আবিষ্কার করতে পারি না। আমি কোন ধারণা প্রশংসা করব।

সম্পাদনা:

আমরা বুঝতে পেরেছিলাম, অ্যাপ্লিকেশনটি পরীক্ষা করার সময় এটি ত্রুটিটিও ছুড়ে ফেলে:

এসকিউএলটি ট্রান্সিয়েন্ট সংযোগের ধারণা: হিকারিপুল -১ - সংযোগ পাওয়া যায় না, অনুরোধটি 937517ms পরে সময়সীমা শেষ

ধন্যবাদ।

উত্তর:


10

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

sudo sysctl -w \
net.ipv4.tcp_keepalive_time=600 \
net.ipv4.tcp_keepalive_intvl=60 \
net.ipv4.tcp_keepalive_probes=3

পাশাপাশি, আমি নিম্নলিখিত টমক্যাট সংযোগ পুলের বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করেছি:

tomcat:
  max-active: 10
  initial-size: 5
  max-idle: 8
  min-idle: 5
  test-on-borrow: true
  test-while-idle: true
  test-on-return: false
  test-on-connect: true
  validation-query: SELECT 1
  validation-interval: 30000
  max-wait: 30000
  min-evictable-idle-time-millis: 60000
  time-between-eviction-runs-millis: 5000
  remove-abandoned: true
  remove-abandoned-timeout: 60

সমাধানটি এই ব্লগপোস্ট থেকে এসেছে: ইলাস্টিকগুলিতে নোডেনোটাভায়াবল এক্সেসমেন্টের সাথে ডিলিং


আমি যত তাড়াতাড়ি সম্ভব এটি চেষ্টা করব। আপনার সাহায্যের জন্য ধন্যবাদ!
এলিফকান maাকমাক

হাই, আমি সমাধানটি চেষ্টা করেছিলাম এবং আমি কেবল প্রথম অংশটি প্রয়োগ করেছি। গতকাল থেকে এটি হয়েছে এবং ব্যর্থ হয়নি। আমি অনুমান করি এটি কার্যকর হয় :) অনেক অনেক ধন্যবাদ!
এলিফকান maাকমাক

কার্নেল 4.13 বা তারপরে চলমান ধারকরা আর tcp_keepalive_timeহোস্টের কাছ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হবে না (উত্স: सक्স.স.ডোকার.আর্টিকেল / আইপিভিস- কানেকশন- টাইমআউটআসু ), সুতরাং এই পন্থাটি আর নতুন ধারকগুলির সাথে কাজ করবে না। যাইহোক, ডকার 19.03 হিসাবে একটি sysctlবিকল্প রয়েছে যা পরিষেবাগুলিতে সরবরাহ করা যেতে পারে (যেমন একটি রচনা ফাইলের মধ্যে)। এটি হোস্টের সাথে গোলযোগ না করে সরাসরি পাত্রে সরাসরি উপরের পতাকাগুলি সেট করতে ব্যবহার করা যেতে পারে। docs.docker.com/compose/compose-file/#sysctls
আভেজিদাঃ

2

নিষ্ক্রিয় সংযোগ বন্ধ করার আরও একটি উপায় রয়েছে। সমস্যাটি ডিফল্ট স্বর্ম পরিষেবা আবিষ্কারের সাথে সম্পর্কিত যা 15 মিনিটের পরে নিষ্ক্রিয় সংযোগটি বন্ধ করে দেয়।
সুস্পষ্টভাবে উল্লেখ করা dnsrr শেষ পয়েন্ট মোড সমস্যার সমাধান করে, যেমন:

version: '3.3'

services:
  foo-service:
    image: example/foo-service:latest
    hostname: foo-service
    networks:
      - foo_network
    deploy:
      endpoint_mode: dnsrr
      # ...

networks:
  foo_network:
    external: true
    driver: overlay
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.