Pool de Conexões Transparentes no Postgres usando o pgpool
Tendo em vista um ambiente híbrido entre as tecnologias PHP, Java e como banco de dados o Postgres, a solução indicada
foi a utilização de um Pool de Conexões transparente utilizando, como ferramenta, o MIDlet pgpool. Esta solução de Pool
de Conexões, serve para qualquer tipo de linguagem, principalmente quando se trata de ambientes híbridos (quando se é
utilizado N linguagens de programação).
foi a utilização de um Pool de Conexões transparente utilizando, como ferramenta, o MIDlet pgpool. Esta solução de Pool
de Conexões, serve para qualquer tipo de linguagem, principalmente quando se trata de ambientes híbridos (quando se é
utilizado N linguagens de programação).
Instalação e Configuração
Instalando o pgpool II
Este artigo foi elaborado utilizando um ambiente com base no sistema operacional Arch Linux, Release: 2011.08.19, mas como instalaremos a partir do código fonte, não teremos grandes problemas com outras distribuições Linux.- Requisitos:
- pgpool II 3.1.1;
- PostgreSQL;
- Apache Web Server;
- php 5;
- Wordpress (para teste).
- Vantagens do Pool de conexões:
- 'Aglomeração' de conexões mantidas com o PostgreSQL;
- Conexão de forma transparente;
- Para a aplicação, o Pgpool é o próprio PostgreSQL;
- Para o PostgreSQL o Pgpool é um cliente comum;
- Não há necessidade de alterações na aplicação;
- Redução do Overhead causado pelo Fork de processos;
- Controle do número de conexões e tamanho do pool;
- Caso as requisições ultrapassem o tamanho do pool, uma fila de requisições é criada.
- Instalação:
A instalação do pgpool II, será feita de forma objetiva, a partir dos pacotes oficiais disponibilizados no site do Projeto.
- Passos:
wget -c http://www.pgpool.net/download.php? f=pgpool-II-3.1.1.tar.gz
tar xvzf pgpool-II-3.1.1.tar.gz
$ cd pgpool-II-3.1.1
$ ./configure
$ make
$ make install
$ make clean
Caso o comando 'configure', apresente o erro:
configure: error: libpq is not installed or libpq is old
Isto é devido ao Script de configuração procurar o banco de dados em “/usr/local/pgsql”.
Então, se o banco de dados estiver localizado em um local personalizado, deverá adicionar os seguintes parâmetros para o Script 'configure', informando os diretórios de trabalho do Postgres:
$ ./configure \
--with-pgsql /local/do/portgres \
–with-pgsql-libdir /postgre/lib
Por padrão, o 'pgpool' será instalado no diretório “/usr/local”.
Configurando o pgpool II
Tendo o 'pgpool' instalado, vamos à configuração.Os arquivos de configuração pós-instalação, estão dentro de “/usr/local/etc”.
Vamos fazer uma cópia da configuração de exemplo, e iremos configurar:
cd /usr/local/etc
$ mv pgpool.conf.sample pgpool.conf
$ vim pgpool.conf
Dentre as configurações possíveis no “pgpool.conf”, nós iremos configurar os seguintes parâmetros com as devidas modificações:
---------------------------------------------------------------------------------------------------- |PostgreSQL version | reset_query_list value | ---------------------------------------------------------------------------------------------------- | 7.1 or before | ABORT | | 7.2 to 8.2 | ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT | | 8.3 or later | ABORT; DISCARD ALL | ---------------------------------------------------------------------------------------------------- + "ABORT" is not issued when not in a transaction block for 7.4 or later.
Ótimo tuto man! Continue compartilhando! o/