Quando você é um administrador de banco de dados ou de sistema, nem sempre tem tempo para passar pelos assistentes de configuração ao implantar um novo software. Provavelmente porque está gerenciando grandes quantidades de sistemas em uma grande organização.
Então, o que você vai fazer quando se trata do seu cluster de banco de dados distribuído?
O Couchbase Server vem com um API RESTful que é perfeita para o provisionamento de instâncias, seja para criar novos clusters ou para ingressar em clusters existentes. Veremos como usar alguns desses pontos de extremidade da API.
Instalação do Couchbase Server para Mac, Linux ou Windows
Independentemente de desejar configurar o Couchbase Server por HTTP ou não, você ainda precisará instalar o software primeiro. Há um binário disponível para Mac, Linux e Windows, todos encontrados no diretório seção de download do site do Couchbase.
Se preferir, você também pode encontrar várias imagens de nuvem disponíveis para serviços como Amazon, Azure e Docker.
Criação de um novo cluster com a linha de comando
Quando o Couchbase Server estiver instalado e em execução, poderemos aproveitar os pontos de extremidade da API RESTful para concluir a configuração da instância.
A primeira coisa que queremos fazer é definir a quantidade de memória a ser alocada para a nossa instância:
1 2 3 |
enrolar -v -X POST http://localhost:8091/pools/default -d memoryQuota=512 -d cota de memória do índice=512 |
O comando acima alocará a instância com 512 MB de memória e 512 MB de memória de índice. É claro que ambos devem ser ajustados de acordo com suas necessidades.
Também precisamos definir quais serviços estarão disponíveis em nossa instância:
1 2 |
enrolar -v http://localhost:8091/node/controller/setupServices -d serviços=kv%2cn1ql%2Índice |
No exemplo acima, temos uma lista de serviços delimitada por vírgulas, em que a vírgula é codificada por URL para ser %2C
. Neste exemplo, os serviços serão o serviço de valor-chave (KV), o serviço N1QL e o serviço de índice. Dependendo de suas necessidades, você pode ou não querer ativar todos esses serviços.
A instância do Couchbase está muito aberta e insegura no momento porque ainda não há uma conta administrativa criada. É uma boa ideia criar essa conta administrativa agora:
1 2 3 4 |
enrolar -v http://localhost:8091/settings/web -d porto=8091 -d nome de usuário=Administrador -d senha=senha |
No exemplo acima, estamos definindo o nome de usuário administrativo como Administrador e a senha a ser senha. Provavelmente não é uma boa opção em um ambiente de produção.
Como não temos nenhum bucket em nossa instância do Couchbase, provavelmente devemos ir em frente e criar um. Na linha de comando, execute:
1 2 3 4 5 6 |
enrolar -v -u Administrador:senha -X POST http://localhost:8091/pools/default/buckets -d nome=exemplo -d bucketType=couchbase -d ramQuotaMB=256 -d authType=sasl |
O comando de criação de bucket acima está fazendo bastante coisa. Estamos fornecendo as informações administrativas para a instância em nossa solicitação. O bucket que estamos criando terá o nome de exemplo e será um couchbase tipo de caçamba. Há alguns tipos de bucket que você pode escolher, portanto, não pense que temos apenas uma opção. A alocação de memória desse bucket será de 256 MB dos 512 MB que fornecemos a esse servidor.
Por fim, como estamos usando o N1QL, talvez faça sentido criar um índice primário no bucket. Vá em frente e execute o seguinte:
1 2 |
enrolar -v http://localhost:8093/query/service -d 'statement=create primary index on example' |
Nesse ponto, a nova instância deve estar totalmente funcional. Observe que a API RESTful oferece muito mais em termos de configuração do que o que exploramos, e é uma boa ideia verificar o que ela tem a oferecer.
Como ingressar em um cluster com a linha de comando
E se estivermos criando nós para serem adicionados a um cluster já existente? Podemos usar a API RESTful para nos ajudar.
Na linha de comando, execute o seguinte:
1 2 3 4 5 |
enrolar -u Administrador:senha -d clusterMemberHostIp=10.0.1.99 -d clusterMemberPort=8091 -d usuário=Administrador -d senha=senha -d serviços=kv%2cn1ql%2cndice http://localhost:8091/node/controller/doJoinCluster |
O comando acima pegará nosso nó no localhost, ou onde quer que nosso novo nó esteja localizado, e o unirá a um cluster com base no clusterMemberHostIp
. Esse novo nó terá todos os mesmos serviços, mesmo que não seja necessário que todos os nós sejam iguais.
Sempre que você adicionar ou remover nós de um cluster, será necessário reequilibrar esse cluster. Isso pode ser feito da seguinte forma:
1 2 3 |
enrolar -v -X POST -u [administrador]:[senha] http://localhost:8091/controlador/rebalance |
O processo de rebalanceamento pode levar algum tempo, dependendo da quantidade de dados que você tiver.
Conclusão
Você acabou de ver como configurar um cluster do Couchbase Server com a linha de comando e os pontos de extremidade da API RESTful. Isso é útil se você gerencia muitos servidores e deseja realizar tudo isso por meio de um script. Há muitos outros cenários em que isso também seria útil. Talvez você tenha criado um pipeline de implantação contínua e precise que o banco de dados seja incluído nele.
Há muitos outros pontos de extremidade de API disponíveis, e recomendo enfaticamente que você consulte o documentação com relação a eles.