2007년 10월 30일 화요일

Robot Fair in Osaka Japan 2006

2007년 10월 12일 금요일

Flex3 Beta 개발자 가이드

Flex 3 Beta 1 Developer's Guide

This part describes how to develop applications using Flex.

About Flex Documentation
Developing Applications in MXML
MXML Syntax
Using ActionScript
Using Events
Using Flex Visual Components
Using Data Providers and Collections
Sizing and Positioning Components
Using Controls
Using Text Controls
Using Menu-Based Controls
Using Data-Driven Controls
Introducing Containers
Using the Application Container
Using Layout Containers
Using Navigator Containers
Using Behaviors
Using Styles and Themes
Using Fonts
Using Item Renderers and Item Editors
Working with Item Editors
Using ToolTips
Using the Cursor Manager
Localizing Flex Applications
Dynamically Repeating Controls and Containers
Using View States
Using Transitions
Using Drag and Drop
Embedding Assets
Creating Modular Applications
Using the History Manager
Printing
Communicating with the Wrapper
Using Shared Objects
Creating Accessible Applications
Representing Data
Binding Data
Storing Data
Validating Data
Formatting Data
Introduction to Charts
Chart Types
Formatting Charts
Using Events and Effects in Charts

Flex3 데모 어플리케이션

Flex3 볼링셔츠 만들기 데모

image

클릭하면 새창 링크..

2007년 10월 11일 목요일

웹서버 부하분산처리 phpschool 검색

웹서버 부하분산처리를 위해 자료를 찾아 봄.
소프트웨어 적으로 해결 하려다가 L4 스위치로 간다고 하는데 소프트웨어적으로 해결할 방법을 모색해 봐야 겠다.

아래는 phpschool.com 에서 찾은 질문 및 답변

웹서버 부하분산처리는 어떻게 하시나요?

글쓴이 샴푸 날 짜 06-02-16 17:11 조 회 393

저희는 서버를 두대 운영하고 있습니다.
하나는 WEB서버 하나는 DB 서버 이렇게요.
하지만 최근 이벤트를 하면서 특정시간대에 사람이 엄청많이 와서 웹서버에 부하가 걸려 서버가 버벅되는 사태가 발생하곤 했습니다.(DB 서버의 상태는 아주 좋았고요.)
그래서 부하분산처리로 생각한것이 라운드로빈과 NFS 를 이용한 방법 이었는데요.
서버두대를 아래와 같이 세팅했습니다.
A서버 : WEB 만 탑재 (NFS 서버역할과 web서비스역할)
B서버 : WEB 서버 추가가동, DB 탑재 (NFS 클라이언트역할과 web서비스, DB서버역할수행)
위와 같이 세팅해서 웹서버의 부하를 분산시켰지요.(B서버는 웹과 DB 의 부하를 모두 받는데 기존에도 DB쪽 부하는 생각보다 적어서 괜찮은듯 하였습니다.)
하지만 NFS 의 문제점을 지적하시는분도 많았고 효과적인 방법이 아닐꺼라는 생각에 다른 방법을 강구하고 있습니다.
서버를 여러대 병렬식으로 연결가능하면서 NFS 처럼 한군데만 수정하면 다른곳도 동시에 수정된것이 반영되는 그런 방식의 부하분산처리 방식은 없을까요?
RSYNC 방식은 실시간이 아닌 Cron으로 1~2분마다 동기화를 많이 하고 있고 또한 원하지 않는 파일까지 동기화가 될까봐 다른 방법을 생각하고 있습니다.
선배님들은 어떤 방법을 사용하세요?
어떤 분은 그냥 L4 라고 만 쓰시는데 L4스위치를 사용하면 그냥 모든것이 해결되나요?
(L4스위치에 대한 내용은 좀더 찾아봐야 겠지만...)
네이버나 야후같은곳은 어떤방법을 사용할까?
선배님들의 조언을 부탁드립니다.

칼솜
  06-02-16 17:47 

서버는 돈만 많으면 해결됩니다. ㅡㅡ;
1. 메인서버
2. Failure 서버
3. 분산서버들...
main에서 접속요청을 받아서 분산서버로 돌리면 됩니다. (요때 L4 스위치)
failure 서버는 글자 그대로 main 서버가 다운되면 등장해야할 대타입니다.
소프트웨어적으로 로드밸런싱을 처음에 많이들 시도하시던데요..
결국은 L4로 가더군요 ㅡㅡ;
저도 몇번 말아먹은면 감이 올것같네요 ^^
나중에 중고 컴퓨터 몇대 구해서 가지고 놀 예정입니다 ㅡㅡ;

서버는 돈만 많으면 해결됩니다. ㅡㅡ; 1. 메인서버 2. Failure 서버 3. 분산서버들... main에서 접속요청을 받아서 분산서버로 돌리면 됩니다. (요때 L4 스위치) failure 서버는 글자 그대로 main 서버가 다운되면 등장해야할 대타입니다. 소프트웨어적으로 로드밸런싱을 처음에 많이들 시도하시던데요.. 결국은 L4로 가더군요 ㅡㅡ; 저도 몇번 말아먹은면 감이 올것같네요 ^^ 나중에 중고 컴퓨터 몇대 구해서 가지고 놀 예정입니다 ㅡㅡ;

샴푸
  06-02-16 18:08 

넵 답변감사합니다.^^
그런데 L4 는 부하분산만 담당하고 각 분산서버들의 데이터 동기화는 별개인것 같더라구요.
모든 서버들의 데이터 동기화는 어떤 방법이 있을까요? 방법론적으로 봐서는 NFS 처럼 한서버의 자료를 다른 서버들도 자동으로 받아갈수 있으면 좋을텐데..^^
다른 선배님들도 의견좀 주셔서 도와주세요.

넵 답변감사합니다.^^ 그런데 L4 는 부하분산만 담당하고 각 분산서버들의 데이터 동기화는 별개인것 같더라구요. 모든 서버들의 데이터 동기화는 어떤 방법이 있을까요? 방법론적으로 봐서는 NFS 처럼 한서버의 자료를 다른 서버들도 자동으로 받아갈수 있으면 좋을텐데..^^ 다른 선배님들도 의견좀 주셔서 도와주세요.

샴푸
  06-02-16 23:15 

가장 궁금한것은 부하분산서버들간의 데이터 동기화방법이죠..
동기화 시키지 않는다면 어떤식으로 데이터를 저장하는지...등등..^^

가장 궁금한것은 부하분산서버들간의 데이터 동기화방법이죠.. 동기화 시키지 않는다면 어떤식으로 데이터를 저장하는지...등등..^^

칼솜
  06-02-16 23:25 

처음부터 시작하려면 힘들죠 ㅡㅡ;
기술이전을 좀 받으셔야겠네요..
성공하시기 바랍니다.

처음부터 시작하려면 힘들죠 ㅡㅡ; 기술이전을 좀 받으셔야겠네요.. 성공하시기 바랍니다.

삽질중..
  06-02-20 21:48 

일단 부하가 걸리는 제일 큰이유를 알야야죠...
돈많으면 다 해결이 되겠지만...
oops.org 에 가보시면 팁이 많이 있습니다.

NFS(Network File System) 서버

NFS는 Network File System의 약어로썬마이크로 시스템즈에서 개발한 네트웍상에서 파일시스템을 공유하도록 설계된 파일시스템의 한종류이다.


다른 호스트에 있는 파일시스템의 일부를 자신의 디렉토리인것처럼 사용할수 있도록 해주는 것이 NFS(Network File System)이다.


즉 네트웍상에 디스크를 한서버에 집중관리하고 나머지 시스템들은 그것을 공유하여 사용할 수 있게 해주는 것이다. 하지만 보안상의 문제로 인해 NFS서버의 사용을 점점 제한해 가는 추세이다.


NFS설정은 파일시스템을 share하는 서버의 설정과 서버의 파일시스템을 마운트해가는 클라이언트 설정으로 나누어 볼수 있다.


우분투 NFS(네트워크 파일 시스템) 한글 문서

도메인 하나로 여러 서버 사용하기

도메인 하나로 분산 서버를 사용하는 방법에는 아래 세가지 정도가 있다.

1. DNS 라운드로빈

2. 클러스터링

3. 로드밸런싱


1. DNS 라운드로빈 관련 글

DNS 라운드 로빈 과 서브넷 우선순위(Subnet Prioritization)는 무엇인가?

출처 : http://blog.naver.com/831jsh/60017984753

A . DNS 리소스 레코드의 가장 보편적인 형태는 A(host, Address의 약자)로 특정한 호스트 이름의 IP주소를 제공하는 레코드이다. 어떤 특정한 상황에서는 여러개의 IP 주소들이 하나의 이름을 가리킬 수도 있다. 예를 들면, 다음과 같이 3개의 서버가 www.ntfaq.co.kr 웹 사이트를 가리킨다면 DNS 서버에는 다음과 같은 3개의 A 레코드가 저장되어 있을 것이다.


www.ntfaq.co.kr IN A 200.200.20.200
www.ntfaq.co.kr IN A 200.200.30.200
www.ntfaq.co.kr IN A 200.200.40.200


클라이언트가 이 호스트의 이름풀이를 DNS 서버에 요청하게 되면 DNS 서버는 3개의 값을 모두 리턴하게 된다. 모든 클라이언트들에게 맨 첫번째 주소 레코드를 항상 보내기 때문에 3 레코드를 교대로 반환하게 하게 하기 위해 DNS 서버는 라운드 로빈 방식의 알고리즘을 이용하게 된다. 이데 대한 자세한 사항은 RFC 1794에 자세하게 기술되어 있다. 클라이언트들의 각각의 요청에 대해 DNS 서버는 모든 호스트들의 부하를 균등하게 유지하기 위해 주소 값들을 교대로 반환해 주게 된다. 예를 들어 첫번째 클라이언트가 DNS 서버에 이름풀이를 요청하게 되면 서버는 다음과 같이 응답한다.


200.200.20.2000 200.200.30.200 200.200.40.200
그 다음 번에는 서버는 다음과 같이 응답한다.
200.200.30.200 200.200.40.200 200.200.20.200
그 다음 번에는 서버는 다음과 같이 응답한다.
200.200.40.200 200.200.20.200 200.200.30.200


만약 응답하는 주소를 포함하고 있는 서브넷에 클라이언트가 직접 연결되어 있다면, 클라이언트는 응답 시간및 네트워크 트래픽을 줄이기 위해 그 주소로 응답한 호스트와 직접 통신을 하게 된다. 서브넷 우선순위(Subnet prioritization)는 클라이언트가 동일한 서브넷에 위차한 호스트를 인식하여 로컬 호스트의 주소를 리턴하는 기능을 가지고 있다.( 마이크로 소프트는 Windows NT SP4 이후 버전에서부터 이 기능을 제공한다.) 클라이언트가 서브넷 우선순위를 사용할 때 클라이언트 풀이자(resolver)는 주소 레코드 기록을 수신하고 직접 연결된 서브넷의 순선대로 정렬하게 된다.


따라서 클라이언트가 200.200.30.100(200.200.30.200 호스트가 위치한 서브넷) 주소를 가지고 있으면 DNS 서버는 다음의 주소값을 반환하게 된다.


200.200.20.2000 200.200.30.200 200.200.40.200


로컬 DNS resolver가 서브넷 우선순위를 사용할 때에는 응답값을 로컬 서브넷 우선순위를 통해 재정렬한 값을 이용하게 된다. 다음과 같이 될 것이다.


200.200.30.200 200.200.40.200 200.200.20.200


결과적으로 로컬 DNS resolver의 서비스 우선순위는 resolver된 주소가 로컬 서브넷에 있을 때에만 서브넷 우선순위를 통해 값이 변경된다. 이러한 접근 방식은 네트워크의 트래픽 감소와 빠른 응답(아무래도 로컬 서브넷이면 100M일것이다)이라는 장점을 가질 수 있지만, 로드 밸런싱이 무력화된다는 단점도 가지고 있다.