.com. Kurumsal Java. Özcan Acar 2009. com

Benzer belgeler
.com. Özcan Acar 2009 Kurumsal Java.com

Özcan Acar 2010 Kurumsal Java Akademisi.com

İçindekiler. Okuma lisansı info acar, için verilmiştir. Çoğaltılması ve dağıtılması yasaktır.

Kitapta UML diyagramları kullanılarak, tasarım şablonları görsel olarak açıklanmıştır. İçerik aşağıdaki bölümlerden oluşmaktadır:

Bir Sistemin Tasarlanış Hikayesi KurumsalJava.com

Spring Ekosisteminde Kurumsal Yazılım Geliştirme. Kenan Sevindik Harezmi Bilişim Çözümleri A.Ş.

.com. Özcan Acar 2009 Kurumsal Java.com

Java Programlama Giriş

İÇİNDEKİLER. YAZARLAR HAKKINDA... v. RESİMLER LİSTESİ...xv. 1.1.Bulut Bilişim Kavramının Analizi...1 BÖLÜM 1: TEMELLER...1

HTML isteklerini anlayarak HTML sonucu üreten ve yaygın olarak kullanılan temel Servlet sınıfı HttpServlet tir.

Java EE 5 Teknolojileri Jboss Seam

Tasarım Desenleri ve Java Web Servisleri ile Çok Katmanlı Bir Sistem Tasarımı

Business Delegate Tasarım Şablonu KurumsalJava.com

ÖZGÜR YAZILIMLAR İLE J2EE


Tekir (Ön Muhasebe Yazılımı)

YZM311 YAZILIM YAPIMI BÖLÜM 4 TASARIM KALIPLARI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

Üst Düzey Programlama

Facade (Cephe) Tasarım Şablonu KurumsalJava.com

Spring Framework Eğitimi

Client Server Database

JBoss Seam. Melih Sakarya

WebSphere Application Server extended Deployment

Intercepting Filter Tasarım Şablonu KurumsalJava.com

1 Milyon Kullanıcıya Nasıl Hizmet Veriyoruz? CloudLMS Teknik Alt Yapı ve Mimarimiz

PostgreSQL ve JBoss ile Java Kurumsal Çözümler. Nicolai Tufar

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

ENSTİTÜMÜZDE DIŞ İNCELEME UZMANI GÖREVLENDİRİLMESİNE İLİŞKİN DUYURU

İçindekiler. Okuma lisansı info acar, için verilmiştir. Çoğaltılması ve dağıtılması yasaktır

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

JBoss Seam Next Generation Integration Framework

TCMB Deneyim Raporu. Kurumsal Java Uygulama Platformu. Sacit Uluırmak. Türkiye Cumhuriyet Merkez Bankası Sistem Araştırma ve Planlama Müdürlüğü

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

Hüseyin ÇIRAL

Kursad MANGALOGLU Sales Specialist Power Systems Systems & Technology Group IBM Turkey

Lotus Türkiye Kullanıcı Grubu, Quickr ile Sanal Ortamda! Serdar Başeğmez Projeler Koordinatörü Developi Bilgi Sistemleri

GittiGidiyor ve Açık Kaynak Kodlu Yazılımlar

YZM 2108 Yazılım Mimarisi ve Tasarımı

T.C. AKDENİZ ÜNİVERSİTESİ Uzaktan Eğitim Uygulama ve Araştırma Merkezi (AKUZEM) DİJİTAL PAZARLAMA VE SOSYAL MEDYA YÖNETİCİLİĞİ SERTİFİKA PROGRAMI

.com. Kurumsal Java. Özcan Acar com

EMRE CAMADAN. E-Posta: Cep: KİŞİSEL BİLGİLER. Doğum Tarihi: 28 Haziran 1989 Sürücü Belgesi: B Sınıfı / 2008 EĞİTİM

18. Esri Kullanıcıları Konferansı 7-8 Ekim 2013 ODTÜ, Ankara Teknik Atölye. ArcGIS for Mobile. Kürşad Demirer

Üst Düzey Programlama

JAVA API v2.0 Belge sürümü: 2.0.2

Basit bir web uygulaması

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

MAAŞ ANALİZ ANKETİ Teknoloji. Specialists in technology recruitment Technology

Büyüyen IT Altyapılarında Basitlik ve Verimliliğin Önemi

PAKET TRANSFER SİSTEMİ

Veri Yönetiminde Son Nokta. Sedat Zencirci, Teknoloji Satış Danışmanlığı Direktörü, Orta Asya ve Türkiye

DERECESİ: ARANAN ŞARTLAR: İLAN TARİHİ:

KÖYSEL AKINCI B İ L G İ S A Y A R M Ü H E N D İ S İ

İÇERİK. Amaç. Kapsam. Süreç. Teknik Mimari. Faydalar

SİGORTACILIKTA PERFORMANS: WEBLOGIC COHERENCE, EXADATA

Spring Framework Eğitimi

Lise Batıkent Lisesi

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

CAN TECİM HEDEF DENEYİM. Tecrübe bütün öğretmenlerin en iyisidir. Publilus Syrus

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

EMRE CAMADAN KİŞİSEL BİLGİLER EĞİTİM. E-Posta: Cep:

Spring Application Framework Harezmi Bilişim Çözümleri

Decorator Tasarım Şablonu

Workcube dünyasında kariyeriniz nasıl ilerler?

ANET YAZILIM LOG YÖNETİMİ. Karşılaştırma Tablosu ANET YAZILIM

Sistem Gereksinimleri Opera v5

Suite 8 on Oracle 11gR2 Donanım İsterleri Kullanıcı (interface'ler dahil) Kullanıcı (interface'ler dahil)

solid; BORDER-LEFT: #1F9FFF 0px solid; BORDER-RIGHT: #1F9FFF 0px solid; BORDER-TOP: #1F9FFF 0px solid; COLOR: #1F9FFF; FONT-FAMILY: Trebuschet MS;

Nagios XI Günümüzün talep gören kurumsal gereksinimleri için en güçlü BT altyapısı gözetim ve uyarı çözümüdür.

Veritabanı İşlemleri

Enterprise Power Platformu. F. Korhan ALTAN Teknik Satış Uzmanı Power Sistemler Systems & Technology Group IBM Turkiye

Gönderilen uygulama incelendiğinde, belirtilen gerekliliklerin bir kısmının karşılandığı görülmüştür.

Design Patterns (Tasarım Kalıpları)

1-20 Kullanıcı. 2*Xeon 2.4 GHZ 4 GB 2*146 GB 15k (Raid 1) c: 30 GB, d: Kullanıcı Kullanıcı Kullanıcı.

Zekeriya Beşiroğlu TURKISH ORACLE USER GROUP. Oracle Cloud G nin GİDİŞİ. C nin GELİŞİ. Bilginc IT Academy /Oracle University Istanbul

FİRMA ÖZGEÇMİŞİ ÖRNEK PROJELER - REFERANSLAR

Bilgi Teknolojisi Altyapısı. Tarihi Gelişim. Tarihi Gelişim. Bulut Servis Sağlayıcı. Bulut Bilişim

BİLGİ TEKNOLOJİSİ ALTYAPISI. Mustafa Çetinkaya

FortiGate (Terminal Server) Terminal Sunucu Üzerinden Gelen Kullanıcılar

ile Uygulama Geliştirme Teknikleri


EMC Forum Yazılım Temelli Veri Depolama Moro Hekim Sistem Mühendisi

Atılım Üniversitesi Bilgi & Đletişim Teknolojileri Müdürlüğü Sistem Yönetim Uzmanı Görev Tanımı

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

ANADOLU ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI DOKTORA YETERLİK SINAVI OCAK 2017

Kurumumuz Hizmet Sunumu Genel Müdürlüğünde çalıştırılmak üzere 9 sözleşmeli bilişim uzmanı alınacaktır.

E-Pazaryeri yazılımı ile sınırsız mağazalar oluşturabilir ve sınırsız ürün sa şı yaparak komisyon ve reklam geliri elde edebilirsin. C2C 6.

SİSTEM İHTİYAÇLARI (Tiger Enterprise / Tiger 3 Enterprise)

2016/1 PERSONEL ALIMINDA AVUKAT, MÜHENDİS, MİMAR, TEKNİKER, GİŞE VE BÜRO GÖREVLİSİ, DAĞITICI POZİSYONLARI İÇİN SÖZLÜ SINAV KONU BAŞLIKLARI

Consulting & Internet Services. BiZ, TASARIM, WEB YAZILIM & YENiLiKÇi internet ÇÖZÜMLERi üretiyoruz. - info@doublesolution.

Temel Bilgi Teknolojileri I

CELAL BAYAR ÜNİVERSİTESİ KÜTÜPHANE VERİTABANLARINA ÜNİVERSİTE DIŞINDAN ERİŞİM

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

Oracle 12c Flex Cluster - Flex ASM

1.Mailbox Server Role:

Logsign Hotspot. Güvenli, izlenebilir, hızlı ve. bağlantısı için ihtiyacınız olan herşey Logsign Hotspot da!

EGE Üniversitesi Network (Ağ) Altyapısı

Bulut Bilişim ile Altyapı Maliyetlerinizi Düşürün

T.C. SAĞLIK BAKANLIĞI SAĞLIK BİLGİ SİSTEMLERİ GENEL MÜDÜRLÜĞÜ SÖZLEŞMELİ BİLİŞİM UZMANI ALIM İLANI

Transkript:

. urumsal J

Java ile Yüksek Performanslı Web Platformları Özcan Acar acar@unitedinter.net http://www.ozcanacar. http://www.kurumsalj urumsal

Özcan Acar Hakkında public class OezcanAcar { public static void main(string[] args) { Acar oezcan = new Acar(); oezcan.setbirthday("18.07.1974"); oezcan.setbirthplace("izmir"); oezcan.setjob("bilgisayar Mühendisi"); oezcan.setpassion("java EE"); } } urumsal

Özcan Acar Hakkında urumsal

Java Tasarım Şablonları ve Yazılım Mimarileri Tasarım şablonu nedir? Interface / Abstract sınıf nedir? Oluşturucu Tasarım Şablonları Factory, Abstract Factory, Builder, Prototype, Singleton Yapısal Tasarım Şablonları Adapter, Bridge, Facade, Decorator, Composite, Flyweight, Proxy Davranışsal Tasarım Şablonları Command, Memento, Strategy, Iterator, State, Observer, Visitor urumsal

Extreme Programming Çevik süreç nedir? Çevik manifesto Extreme Programming nedir? XP değerleri ve prensipleri Çevik proje planlaması Çevik süreçlerde iletişim Çevik tasarım Sürekli entegrasyon Test güdümlü yazılım Yazılım metrikleri urumsal

Sunumun İçeriği Web performans tanımlaması Server tarafı performans optimizasyonu Client tarafı performans optimizasyonu BizimAlem. Yüksek performans örneği Performans problem çözümü urumsal

Web Performans Tanımlaması Performans, bir web aplikasyonun tanımlanan zaman biriminde ve yeterli oranda kullanıcı isteğini cevaplayan davranış biçimidir. urumsal

Performans WEB YÜSE PERFORMANS SERVER CLIENT Loadbalancing Browser Caching, Etag Caching Content Gzip JDBC Optimization Fewer Http Requests Connection Pooling Extrernal Javascript & CSS Profiling OS Optimization urumsal

BizimAlem. Hakkında 600.000 kayıtlı üye, Günlük ortalama yeni kayıt olan üye adedi 1000-1500, 40 a yakın sunucu, switch, loadbalancer, firewall sistemleri, Tamemen J2EE (Java 1.5) ve Open Source tabanlı, Tüm sunucular Linux işletim sistemiyle çalışıyor, Günlük ziyaretçi sayısı 45.000 50.000 civarında, Günlük sayfa gösterim adedi 1.1 milyon civarında. urumsal

BizimAlem. Hakkında Forum, Sanal hesap, Blog, VIP üyelik, Okey, Tavla, Batak, Bilardo gibi multiplayer oyunlar, E-Card, Youtube vari video modülü, Mesaj merkezi, Gruplar, Haberler, Yönetim paneli (Dashboard), Anketler, Sanal hediyeler, Sütun, Shop, Arkadaş listesi, Favori üye listesi, Limitsiz fotograf albümleri, Takvim, urumsal

BizimAlem. v.1.0 Mart 2001 Java 1.3 EJB 1.1 JBoss / Tomcat App Server Postres 6.x bilgibankası Suse Linux 6.x işletim sistemi Postfix email sunucu urumsal

İlk Sunucu urumsal

Internet Bağlantısı urumsal

Yazılım Mimarisi urumsal

BA v2.0 Gereksinimleri Bilgibankası için ayrı bir sunucu kullanılması gerekiyor. Bu bilgibankası için yapılan işlemlerin performansını artırır. Email gönderimi için ayrı bir sunucunun kullanılması gerekiyor. Bu şekilde sistemin diger bölümlerini etkilemeden email gönderimi performansı artırılabilir. JBoss yerine yeni bir application server kullanılması gerekiyor, çünkü EJB kullanılmadığına göre JBoss gibi bir EJB containere olan ihtiyaç ortadan kalkmıştır. Yeni application serveri olarak Caucho Resin 2 1.x serisini seçtim. Resin performansı yüksek olan bir Servlet / JSP containerdir, yani Tomcat gibi bir application server. Web aplikasyonu iki değişik Resin application server içinde paralel çalıştırabilirsem, gelen yükü bu iki server arasında paylaştırabilirim. Bu sebepten dolayı web aplikasyonu (v.2.0) için en az iki yeni sunucuya ihtiyacım var. Bu şekilde online olan üyelerin adedi 500 e kadar yükselebilir. Sunucu kapasitesi arttıkça, hizmet verilebilecek online üye adedi de artar. urumsal

BA v.2.0 Altyapı urumsal

BA v.2.0 Mimari urumsal

BA v.2.0 Logolar urumsal

BA v.2.0 Design urumsal

BA v.2.0 Ağ Güvenliği urumsal

BA v.2.0 Loadbalancing urumsal

Database Clustering urumsal

BA v.3.0 Üç atmanlı Mimari urumsal

Değişik Persistens Mekanizmaları urumsal

BA v3.0 Design urumsal

BA v3.0 Design urumsal

Caching Mekanizmaları Local Caching urumsal

Caching Mekanizmaları Global Tek Hafıza Caching urumsal

Caching Mekanizmaları Global Bölümsel (Partial) Caching urumsal

MemCached./memcached -d -m 2048 -l 192.168.1.10 -p 11211 urumsal

BA v.3.0 Caching urumsal

BA v.3.0 Server urumsal

BA v.3.0 Server urumsal

BA v.3.0 Server urumsal

BA Aktuel Teknik Altyapı urumsal

BA Storage Cluster urumsal

BA Storage Cluster urumsal

BA Storage Cluster urumsal

BA Google İstatistikleri urumsal

BA Google İstatistikleri urumsal

Ağ Yönetimi urumsal

Gzip Compression urumsal

Browser Cache urumsal

Performans Sorunlarının Çözülmesi Thread Dump Heap Dump Logging Connection Pooling Tuning Application Server Tuning Java VM Tuning Linux Tuning Code Profiling SQL Profiling urumsal

Thread Dump urumsal

Thread Dump "tcpconnection-8080-9662" daemon prio=1 tid=0x540315a8 nid=0x7c7c runnable [0x61af0000..0x61af0f30] at jnet.socketinputstream.socketread0(native Method) at jnet.socketinputstream.read(socketinputstream.java:129) at.caucho.vfs.socketstream.read(socketstream.java:159) at.caucho.vfs.readstream.readbuffer(readstream.java:790) at.caucho.vfs.readstream.fillbuffer(readstream.java:765) at.caucho.server.http.httprequest.readrequest(httprequest.java:360) at.caucho.server.http.httprequest.handlerequest(httprequest.java:193) at.caucho.server.http.httprequest.handleconnection(httprequest.java:171) at.caucho.server.tcpconnection.run(tcpconnection.java:139) at jlang.thread.run(thread.java:595) urumsal

Logging bizimalem@web1:~/resin/log> tail -f bizimalem.log DEBUG -04-11 16:00:45,169 smart.munity.ui.videocontroller:3012-61: s:3:"ugc" DEBUG -04-11 16:00:45,169 smart.munity.ui.videocontroller:3023 - duration: 03:02 DEBUG -04-11 16:00:45,170 smart.munity.ui.videocontroller:3052 - duration: hawin_21 DEBUG -04-11 16:00:45,170 smart.munity.ui.videocontroller:3062 - duration: 1855 DEBUG -04-11 16:00:45,170 smart.munity.ui.videocontroller:3078 - getvideovo() exit DEBUG -04-11 16:00:45,173 smart.munity.ui.videocontroller:3633 - getpopulartags() DEBUG -04-11 16:00:45,215 smart.munity.ui.videocontroller:3766 - getpopulartags() exit DEBUG -04-11 16:00:45,216 smart.munity.ui.videocontroller:3201 - getgamecomments() DEBUG -04-11 16:00:45,267 smart.munity.ui.videocontroller:3387 - getgamecomments() exit DEBUG -04-11 16:01:49,760 smart.core.storage.mogilefsstorageimpl:88 - delete() DEBUG -04-11 16:01:49,761.guba.mogilefs.Backend:195 - mand: delete domain=prod&key=1894250 DEBUG -04-11 16:01:49,784.guba.mogilefs.Backend:241 - response: O DEBUG -04-11 16:01:49,784 smart.core.storage.mogilefsstorageimpl:101 - delete() exit DEBUG -04-11 16:01:49,785 smart.core.storage.mogilefsstorageimpl:88 - delete() DEBUG -04-11 16:01:49,785.guba.mogilefs.Backend:195 - mand: delete domain=prod&key=m_1894250 urumsal

Connection Pooling Tuning <resource-ref> <res-ref-name>jdbc/postgresdb60</res-ref-name> <res-type>javax.sql.datasource</res-type> <init-param driver-name="org.postgresql.driver"/> <init-param url="jdbc:postgresql://192.168.1.90/bizimalem"/> <init-param user="acar"/> <init-param password="acar"/> <init-param ping-table="munity_ping"/> <init-param ping-on-reuse="true"/> <init-param max-connections="100"/> <init-param max-idle-time="36000"/> <init-param max-active-time="36000"/> <init-param connection-wait-time="36000"/> <prepared-statement-cache-size>200</prepared-statement-cache-size> </resource-ref> urumsal

Application Server Tuning <thread-max>256</thread-max> <thread-min id='50'/> <thread-keepalive id='50'/> <accept-buffer-size id='512'/> <request-timeout id='15s'/> <listen id='500'/> <session-config> <session-max id=20000/> </session-config> urumsal

Java VM Tuning -J-server -J-Dsun.net.inetaddr.ttl=1 -J-Xmx1024m -J-Xms1024m -J-Xmn100m -J-XX:MaxPermSize=200m -J-XX:MaxNewSize=24m -J-XX:NewSize=24m -J-XX:SurvivorRatio=128 -J-XX:MaxTenuringThreshold=0 -J-XX:CMSInitiatingOccupancyFraction=60 urumsal

Heap Dump urumsal

SQL Profiling - IronTrackSQL urumsal

Code Profiling Eclipse Profiler urumsal

Linux Tuning ulimit -n 128000 ulimit -c unlimited ulimit -s 4096 echo 128000 > /proc/sys/fs/file-max echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts echo 0 > /proc/sys/net/ipv4/tcp_timestamps echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time echo "4096 87380 4194304" > /proc/sys/net/ipv4/tcp_rmem echo "4096 65536 4194304" > /proc/sys/net/ipv4/tcp_wmem echo 4096 > /proc/sys/net/core/netdev_max_backlog echo 1048576 > /proc/sys/net/core/wmem_default echo 1048576 > /proc/sys/net/core/wmem_max echo 1048576 > /proc/sys/net/core/rmem_default echo 1048576 > /proc/sys/net/core/rmem_max echo 30000 > /proc/sys/net/ipv4/tcp_max_syn_backlog echo 0 > /proc/sys/net/ipv4/conf/eth0/accept_source_route echo 0 > /proc/sys/net/ipv4/conf/eth0/accept_redirects urumsal

aynak: urumsalj urumsal

aynak: urumsalj BizimAlem. http://www.kurumsalj/download/18 urumsal

urumsaljavaakademisi. urumsal

Son İlginiz için teşekkür ederim. urumsal J