Monday, July 7, 2014

Dovecot Clustering

Dovecot Clustering & Replication


Clustering yapılabilmesi için en az 2 farklı dovecot instance gerekmektedir. Ayrıca iki farklı Clustering gerçekleştirilebilir bunlar NFS-tabanlı (File System Based) ve SSH-tabanlı.

Dsync :  (Dovecot e-posta senkronizasyon)

Neden dovecot senkronizasyon file sistem replikasyonun blok düzeyinde bir parçasıdır ?

  • Dsync file sistem bozukluk/çakışmalarını replike etmez.
  • 2 farklı instance olması herhangi bir veri kaybına neden olmaktan kurtatır. Eğer iki tarafta da değişiklik yaşanırsa data kaybı yaşanmadan merge edilir.

Replication Mail Plugin
Bu plugin basit bir uyarı pluginidir. Mail kutusundaki bütün değişiklikleri dinler yeni mail gelmesi, silinmesi, okunması gibi durumlarda Replication-Notify-Fifo ' ya değişikliğin hangi mail hesabında olduğunu ve önem seviyesini asenkron bir şekilde gönderir. Replication-Notify-Fifo replikasyon için önem arz eden değişikliklerin mail hesabı ve önem seviyesine göre tutulduğu stack'tir. Replicaton Mail Plugin senkron replikasyonda yapabilmektedir ancak IMAP protokolü için gözle görülür bir gecikmeyen sebep oluri LMTP için uygun olabilir.

Aggregator Process
Replication Mail Plugin'in çalıştığı yerde bir de Aggregator Process görev almaktadır. Yaptığı işlem Replication Mail Plugin'den gelen bildirimleri TCP bağlantısı üzerinden Replicator Process'e iletir. Replicator Process ise Dovecot Proxy Server üzerinde çalışır.Bu basit bir optimizasyon anlamına gelmektedir. Replication Mail Plugin ile Director Server arasında çok fazla sayıda TCP bağlantısı olmasından kurtarmaktadır.

Replicator
Bütün mail kullanıcıları için priority kuyrugu tutar ve herhangi bir değişiklikte sıralamayı günceller. Dsync Hızlı senkronizasyon ve Tam senkronizasyon olmak üzere iki tür senkronizasyon yapabilmektedir.

  • Hızlı Senkronizasyon : Daha az network trafiği ve daha az iş yükü. Normalde bütün değişiklikleri replike etmek için yeterlidir ancak güvenilir değildir.
  • Tam Senkronizasyon : Biraz daha yavaş işlem yapar ancak senkronizasyon tamamlandığını garanti eder.
Bütün kullanıcılar ilk olarak "none" priority ile kuyrukta yer alır. Her bir replikasyon zamanı tutulur (last_*_sync timestamp). Replicator Process istenirse belirli periyotlarla dump oluşturabilir.
Replicator Process kuyruğun en başında yer alan kullanıcı(kullanıcılar) için replikasyon işlemine başladığı anda onların priority seviyesini "none" durumuna alır. Bu durum replikasyon sırasında herhangi bir değişiklik olduğunda değişiklik bildirimi kaybına neden olmadan veri kaybını önlemeyi sağlar. replication_max_conns parametresi ile aynı anda kaç tane replikasyon işlemi yapılacağı ayarlanabilir.

Dovecot instance'larından bir tanesi master görevini üstlenir ve replikasyon bilgilerini durumlarını tutar. Herhangi bir durumda master Dovecot hizmet veremez duruma gelirse yerine diğerlerinden bir tanesi master olarak geçer ve bilgilendirir. Replikasyon süresi artarsa belirlenen mail adresine bilgilendirme maili gönderilir.

Doveadm sync
Yukardaki özelliklerden bağımsızdır. Bu da bir mail kullanıcısını replike etmek için kullanılabilir. Tek problem replike edilecek yeri açıkça belirtmek gerekmektedir. mail_replica alanına set edilen kısım replike edilir. Birden fazla mail_replica, mail_replica2 gibi değerler kullanılabilir.

plugin {
   # host1 replicates to host2
   mail_replica = remote:vmail@host2.example.com
   # host2 replicates to host1
   #mail_replica = remote:vmail@host1.example.com
}

Network File System-based yapılarda mail_replica parametresi mail_location parametresi ile aynıdır.
Non-Network File System-based yapılarda ise Dovecot sunucuları birbileri ile SSH üzerinden haberleşirler.

Dsync uzun süre lock durumuna düşmeden senkronizasyon gerçekleştirebilmektedir. Mail kutusunda senkronizasyon sırasında herhangi bir değişiklik oldugunda, replikeler birbileri ile aynı olmayabilir ancak herhangi birşey kesintiye uğramaz. Dsync bu durumda log tutar ve uyarı verir. Bir başka replikasyon işleminde bu durum düzeltilir.




















Monday, May 28, 2012

ip den domain sorgulama

Merhabalar, ip den domain sorgulama ve domain ip si sorgulama yapmak için yapmanız gereken şey çok basit.

Başlat -> çalıştır -> cmd

Açılan komutsatırına nslookup yazmanız varsayılan sunucu (DNS) adresinizi ekrana basacaktır.



Herhangi bir siteye ait ip adres(ler)i sorgulamak için ise 
nslookup www.google.com.tr gibi bir komut yazmanız yeterlidir.

İp'den domain adı sorgulamak için ise 
nslookup xxx.xxx.xxx.xxx gibi istediginiz ip yi sorgulayabilirsiniz.




Belki lazım olur diye paylaşmak istedim teşekkürler :)

Friday, May 25, 2012

Apache Tomcat Server Kurulumu


Öncelikle Eclipse Ide for JAVA EE developers olanı indiriyoruz (Bu adresten işletim sisteminize uygun olanı indirebilirsiniz).Herhangi bir kurulum yapmamıza gerek yok direkt olarak eclipse.exe ye tıkladığımızda derleyicimiz çalışacaktır.
Şimdi ise Apache Tomcat'i indiriyoruz (Buradan indirebilirsiniz yan taraftaki download bolümün-nden ide'nize ve jdk nıza uygun tomcat versiyonunuza tıklayın.

Java Web sunucuları


     Web sunucuları arasında en çok kullanılanı (%55-%60 arasında), birçoğunuzun da tanıdığı ve open source bir yazılım olan Apache. Uygulama sunucuları arasında da bu ekolü izleyen ve en popüler open source olanı JBoss. Daha sonraki iki tanesi ise, bu pazarda en büyük payı elinde bulunduran BEA WebLogic ve onu uzak ara takip eden IBM WebSphere. Ben, son iki uygulama sunucusu ticari projelerde daha çok kullanılıyor.

Tomcat
Tomcat , Servlet barındırıcı ( container ) ve  Java sunucu sayfası (Java Server Page ) uygulama programıdır . 

Java teknolojileri, JSP, Hibernate, ORM


Java EE (Java Enterprise Edition, eski adıyla J2EE), özellikle büyük çaplı projelerin ihtiyaçları için geliştirilmiş Java teknolojilerinin bütünün oluşturduğu çerçevenin ve standardın ismidir. Java EE servislerini sunan yazılımlara Uygulama sunucusu denir. Java EE’yi oluşturan teknolojilerin bir kısmı aşağıda sıralanmıştır:
  • EJB (Enterprise Java Beans – İşe yönelik yeniden kullanılabilir Java elemanları)
  • JAAS (Java Authentication and Authorisation Service – Java kimlik denetimi ve yetkileme servisi
  • JCA (Java Connector Architecture – Java bağlayıcı mimarisi)
  • JCE (Java Crypto Extensions – Java şifreleme uzantıları)
  • JDBC(Java Database Connectivity – Java veritabanı bağlanabilirliği)
  • JNDI (Java Naming and Directory Services – Java isimlendirme ve adresleme servisleri)
  • JMS (Java Message Service – Java Mesaj Servisi)
  • JSP (Java Server Pages – Java sunucu sayfaları)
  • JTA (Java Transaction API – Java işlem ‘uygulama programlayıcı arayüzü’)
Ben kendi yazılarımda JSP,Java Servlet ve EJB'ye değineceğm.
İlk olarak JSP ile başlayalım,

"merhaba blog" :)

Uzunca koşuşturmalardan sonra blog'uma birşeyler yazmaya vakit bulabildim sonunda :) Hatta köklüce bi değişim, yenileme bile oldu diyebilirim :)

Yeni blog'umda ağırlıklı olarak Java'ya yer vermeyi düşünüyorum. Java ile ilgili bütün bilinmesi gerekenler, teknolojiler, hangi alanlarda neden daha çok kullanılır ve bunun gibi konular üzerinde sık sık durmaya çalışacağım..

Thursday, May 10, 2012

JSP Nedir


Java Server Pages Nedir?
Web sayfalarında Java dilini kullanarak dinamik web sayfaları oluşturmamızı sağlayan bir Java teknolojisidir. Jsp (Java Server Page) Html dili içine yazılır ve özel taglar kullanarak ” <%  . . . . . .  %> ” yazılır.
JSP,  Servlet uzantısıdır. Html içerisine yazdığımız JSP kodları sunucuda Servlet’e çevirilir. JSP’ler Java Beans’ler le çalışır ve daha rahat bir geliştirme imkanı sunar.
Eğer Java biliyorsanız Html içerisine zorlanmadan JSP kodlayabilirsiniz.
JSP Platform bağımsızdır. Java desteği olan her yerde rahatlıkla çalışabilir.
Başka bir güzel yanı ise Java Class’ları ile birlikte çalışabilmektedir.

How can we use svg file as a icon of v-btn (vuetify button) ?

<template>   <v-btn>     <CustomIcon />     Click me   </v-btn> </template> <script> // Import your SVG ...