소켓으로 받은 데이터를 메시지 큐를 이용해서 보낸후 병렬적으로 처리하려고 합니다.

fenign의 이미지

현재 상황은 이렇습니다.
Unix이며 Solaris 8을 사용하고 있습니다.

기본적으로 소켓 통신을 하는 클라이언트(C)와 서버(S)가 있고
S는 C로부터 받은 데이터를 메시지 큐를 이용해서
이를 처리하는 함수로 보냅니다.
함수는 이를 처리하여 기존의 소켓을 끊고 자신이 다시 C가 되어 S에게 데이터를 전송하구요..
그리고 보낸 데이터에 대한 답변을 기다리고 보내고 하는 식으로 Flow가 진행됩니다.

위의 사항처럼 단일 메시지인 경우에는 잘 진행됩니다.

제가 하고싶은건...
클라이언트에서 서버로 동시에 여러개의 메시지를 보낼 경우에 이를 처리하게끔 upgrade하고 싶습니다.
예를 들어 클라이언트에서 서버로 2개의 메시지를 동시에 보내면...
서버는 이를 받아서 메시지 큐로 보냅니다.
그러면 이를 처리하는 함수가 1개의 메시지를 꺼내서 처리하고 클라이언트 입장으로 다시 서버에 접속하여
메시지를 보내고 응답 메시지를 기다리고 있습니다.
즉 현상태에서는 1개의 메시지가 처리중이고 메시지큐에 2번째 메시지가 대기중인 상태에 있구요...

하나의 메시지가 끝나지 않은 시점에서 다른것도 병렬적으로 처리하고 싶은데 이를 어떻게 구현하면 될까요...
게시판을 검색해도 질의어를 멀 넣어야 할지...
포괄적으로 검색하니 너무 방대한 자료에 힘이 드네요...
fork나 쓰레드를 사용한다면 메시지 큐를 어떻게 읽어와야 동시에 처리가 가능할지...
fork와 쓰레드를 공부하기엔 시간이 녹록치 않아
고수님들의 조언을 부탁드립니다.
주말에 수고하시는 분들 모두 화팅 하시구 존 주말 보내세요~

코퍼스의 이미지

클라이언트에서 서버를 향해 2개의 메세지를 보낸다 함은 더 정확히는 무슨 뜻이죠?
1) 두 개의 클라이언트 프로세스가 띄어져서 각각 1개의 메세지를 보낸다는 건가요?
2) 아니면 한 개의 클라이언트가 2개의 서로다른 컨텐츠 영역에 속하는 메세지를 각 영역별로 1개씩 보낸다는 건가요?

1)의 경우에는 이미 서버 프로세스는 각 채널별로 fork(혹은 스레드가) 생성되어 처리되니..시스템 영역에서 이미
병력 처리되고 잇는것이죠

2)의 경우라면 이미 그건 데이터 내용까지 까본다음에야 구별할 수 있다는 얘기이니.. 의미가 없는 논의이겠죠?
즉, 일반적인 tcp/ip 통신에서는 구별할 수 없는 내용이랍니다.

ls -al 'happy' | grep 'possible'

A few Good Man

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.