나는 단지 아이디어를 찾고, 전문가의 의견을 듣고 싶을 뿐이지, 구체적인 계획을 세우는 데 도움을 청하는 것이 아니라, 연구의 방향을 제시하고 싶을 뿐이다. 저는 PHP/Java를 알고 있으며 Baidu에 비해 약간의 Python을 작성할 수 있습니다.
로컬 LAN에는 PHP 웹 사이트를 실행하는 서버가 있습니다. 이 서버는 심층 인트라넷에 있습니다(동적 공용 IP + 네트워크 관리는 포트 전달을 허용하지 않음). xx 클라우드의 컴퓨터실에 또 다른 서버가 있습니다. 독립적인 공인 IP를 가지고 있으며 PHP를 실행하여 WeChat과 연결합니다. 이제 WeChat에서 보낸 정보를 xx 클라우드 호스트를 통해 LAN에 있는 서버로 전달할 수 있는 기능을 만들고 싶습니다. xx 클라우드 호스트는 PHP/Python/Java를 실행하는 데 사용할 수 있는 Linux 운영 체제이고, LAN 호스트는 PHP/Python/Java를 실행할 수 있는 Windows 운영 체제가 있는 일반 PC입니다. 데이터베이스(또한 이 질문은 The selected Database)에 대한 더 미묘한 아이디어가 있는지 궁금합니다. .
이제 몇 가지 예비 아이디어가 생겼습니다. 여러분의 의견을 듣고 싶습니다. 감사합니다!
1. 위챗->클라우드 호스트(PHP)->데이터베이스
근거리 통신망은 Python이나 Java를 사용하여 로컬 데이터베이스에 새로운 데이터를 얻기 위해 폴링합니다.
2. WeChat -> 클라우드 호스트(PHP) -> Python으로 작성된 소켓 서버로 크로스 프로세스 전송
근거리 통신망은 Python 또는 Java를 사용하여 클라우드 호스트와 소켓 링크를 설정하며 실제 -시간 통신은 데이터베이스에 저장됩니다.
3. 위챗 -> 클라우드 호스트(PHP) -> 데이터베이스.
마스터-슬레이브 데이터베이스를 동기화하기 위해 로컬 데이터베이스와 원격 데이터베이스가 생성됩니다(핵심은 확인하지 않고 쓰기만 가능하다는 것) )
4. WeChat->클라우드 호스트(PHP)->데이터베이스
두 데이터베이스를 직접 연결하여 일부 작업을 수행하는 프로그램을 로컬에서 작성합니다. .
위 내용은 이 문제에 대해 제가 생각한 결과 중 일부입니다. 각 방법이 전체 시스템의 속도와 효율성에 영향을 미칠 것이라고 생각합니다.
답글 내용:
나는 단지 아이디어를 찾고, 전문가의 의견을 듣고 싶을 뿐이지, 구체적인 계획을 세우는 데 도움을 청하는 것이 아니라, 연구의 방향을 제시하고 싶을 뿐이다. 저는 PHP/Java를 알고 있으며 Baidu에 비해 약간의 Python을 작성할 수 있습니다.
로컬 LAN에는 PHP 웹 사이트를 실행하는 서버가 있습니다. 이 서버는 심층 인트라넷에 있습니다(동적 공용 IP + 네트워크 관리는 포트 전달을 허용하지 않음). xx 클라우드의 컴퓨터실에 또 다른 서버가 있습니다. 독립적인 공인 IP를 가지고 있으며 PHP를 실행하여 WeChat과 연결합니다. 이제 WeChat에서 보낸 정보를 xx 클라우드 호스트를 통해 LAN에 있는 서버로 전달할 수 있는 기능을 만들고 싶습니다. xx 클라우드 호스트는 PHP/Python/Java를 실행하는 데 사용할 수 있는 Linux 운영 체제이고, LAN 호스트는 PHP/Python/Java를 실행할 수 있는 Windows 운영 체제가 있는 일반 PC입니다. 데이터베이스(또한 이 질문은 The selected Database)에 대한 더 미묘한 아이디어가 있는지 궁금합니다. .
이제 몇 가지 예비 아이디어가 생겼습니다. 여러분의 의견을 듣고 싶습니다. 감사합니다!
1. 위챗->클라우드 호스트(PHP)->데이터베이스
근거리 통신망은 Python이나 Java를 사용하여 로컬 데이터베이스에 새로운 데이터를 얻기 위해 폴링합니다.
2. WeChat -> 클라우드 호스트(PHP) -> Python으로 작성된 소켓 서버로 크로스 프로세스 전송
근거리 통신망은 Python 또는 Java를 사용하여 클라우드 호스트와 소켓 링크를 설정하며 실제 -시간 통신은 데이터베이스에 저장됩니다.
3. WeChat->클라우드 호스트(PHP)->데이터베이스.
로컬 데이터베이스와 원격 데이터베이스 간의 마스터-슬레이브 데이터베이스 동기화를 생성합니다(핵심은 확인하지 않고 쓰기만 가능하다는 것)
4. WeChat->클라우드 호스트(PHP)->데이터베이스
두 데이터베이스를 직접 연결하여 일부 작업을 수행하는 프로그램을 로컬에서 작성합니다. .
위 내용은 이 문제에 대해 제가 생각한 결과 중 일부입니다. 각 방법이 전체 시스템의 속도와 효율성에 영향을 미칠 것이라고 생각합니다.
redis의 구독/게시 기능을 사용할 수 있으며, 메시지를 즉시 전달할 수 있습니다
두 번째 아이디어에 두께를 더해보겠습니다
WeChat-> 클라우드 호스트(PHP)-> RabbitMQ 메시지 대기열 서버를 시작하고 WeChat 메시지를 대기열에 넣습니다.-> LAN 호스트가 RabbitMQ 클라이언트를 시작하고 서버에서 메시지를 검색합니다. 데이터베이스에 있습니다
전체 메시지 전송 프로세스는 비동기식으로 수행되며 어떤 링크에서도 막힘이 없으며 올바르게 수행되며 바퀴를 다시 만들 필요가 없습니다
직접 제공한 1, 2, 3, 4와 같이 다양한 옵션이 있습니다. 이때는 비즈니스 시나리오에 따라 다릅니다.
시간이 촉박하신가요?
데이터 용량이 큰가요?
지연 시간 요구 사항이 높나요?
동시성은 어떤가요?
하드웨어, 소프트웨어 투자에 제한이 있나요?
땅콩껍질은 못쓰나요
이 4가지 솔루션은 모두 이론적으로 가능합니다. 하지만 실제 시나리오에서는 다음 사항에 주의하세요.
1. 모든 솔루션은 쓰기 작업입니다. 읽기 작업이 있으면 일부 솔루션은 처리하기 어려울 것입니다. 비동기 폴링에 의존한다면 분명히 데이터가 있을 것입니다. 불일치
2. 통신을 위해 오랫동안 연결을 유지하면 짧은 시간 동안 데이터가 없으면 방화벽이 링크를 클릭합니까? 이는 매우 어렵고 매우 일반적인 큰 문제입니다. 특히 네트워크 관리에서 포트 포워딩을 제공하지 않는 경우 더욱 그렇습니다.
3. 옵션 4와 관련하여 네트워크 지연으로 인해 사용자 작업에 좀비 또는 더티 데이터가 발생합니까?
중국의 네트워크 품질이 매우 열악한 경우 선형 작업을 처리하는 여러 원격 서버를 피하고 긴 원격 연결을 피하십시오.
일반적으로 근거리 통신망에서 WeChat 서버를 설정할 때 포트 포워딩을 사용합니다(동적 IP인 경우 동적 도메인 이름을 구성해야 함). 이제 귀하의 PHP 서버는 본질적으로 비즈니스를 처리하지 않고 프록시 역할만 수행합니다. 그러면 두 가지 옵션이 있습니다. 1. 공용 네트워크 서버에 nginx를 구축하고 동적 도메인 이름 기술을 통해 LAN 서버에 대한 역방향 프록시를 사용합니다. java의 dubbo와 같은 서비스 중간 가격은 외부 네트워크 서버에서 근거리 통신망의 서비스를 원격으로 호출할 수 있습니다

PHP는 동적 웹 사이트를 구축하는 데 사용되며 해당 핵심 기능에는 다음이 포함됩니다. 1. 데이터베이스와 연결하여 동적 컨텐츠를 생성하고 웹 페이지를 실시간으로 생성합니다. 2. 사용자 상호 작용 및 양식 제출을 처리하고 입력을 확인하고 작업에 응답합니다. 3. 개인화 된 경험을 제공하기 위해 세션 및 사용자 인증을 관리합니다. 4. 성능을 최적화하고 모범 사례를 따라 웹 사이트 효율성 및 보안을 개선하십시오.

PHP는 MySQLI 및 PDO 확장 기능을 사용하여 데이터베이스 작업 및 서버 측 로직 프로세싱에서 상호 작용하고 세션 관리와 같은 기능을 통해 서버 측로 로직을 처리합니다. 1) MySQLI 또는 PDO를 사용하여 데이터베이스에 연결하고 SQL 쿼리를 실행하십시오. 2) 세션 관리 및 기타 기능을 통해 HTTP 요청 및 사용자 상태를 처리합니다. 3) 트랜잭션을 사용하여 데이터베이스 작업의 원자력을 보장하십시오. 4) SQL 주입 방지, 디버깅을 위해 예외 처리 및 폐쇄 연결을 사용하십시오. 5) 인덱싱 및 캐시를 통해 성능을 최적화하고, 읽을 수있는 코드를 작성하고, 오류 처리를 수행하십시오.

PHP에서 전처리 문과 PDO를 사용하면 SQL 주입 공격을 효과적으로 방지 할 수 있습니다. 1) PDO를 사용하여 데이터베이스에 연결하고 오류 모드를 설정하십시오. 2) 준비 방법을 통해 전처리 명세서를 작성하고 자리 표시자를 사용하여 데이터를 전달하고 방법을 실행하십시오. 3) 쿼리 결과를 처리하고 코드의 보안 및 성능을 보장합니다.

PHP와 Python은 고유 한 장점과 단점이 있으며 선택은 프로젝트 요구와 개인 선호도에 달려 있습니다. 1.PHP는 대규모 웹 애플리케이션의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 데이터 과학 및 기계 학습 분야를 지배합니다.

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

PHP를 사용하면 대화식 웹 컨텐츠를 쉽게 만들 수 있습니다. 1) HTML을 포함하여 컨텐츠를 동적으로 생성하고 사용자 입력 또는 데이터베이스 데이터를 기반으로 실시간으로 표시합니다. 2) 프로세스 양식 제출 및 동적 출력을 생성하여 htmlspecialchars를 사용하여 XSS를 방지합니다. 3) MySQL을 사용하여 사용자 등록 시스템을 작성하고 Password_Hash 및 전처리 명세서를 사용하여 보안을 향상시킵니다. 이러한 기술을 마스터하면 웹 개발의 효율성이 향상됩니다.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP는 여전히 역동적이며 현대 프로그래밍 분야에서 여전히 중요한 위치를 차지하고 있습니다. 1) PHP의 단순성과 강력한 커뮤니티 지원으로 인해 웹 개발에 널리 사용됩니다. 2) 유연성과 안정성은 웹 양식, 데이터베이스 작업 및 파일 처리를 처리하는 데 탁월합니다. 3) PHP는 지속적으로 발전하고 최적화하며 초보자 및 숙련 된 개발자에게 적합합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

드림위버 CS6
시각적 웹 개발 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음
