quarta-feira, 19 de dezembro de 2018

O Apache Kafka®


O Apache Kafka® é uma plataforma de streaming distribuída. O que exatamente isso significa?

Uma plataforma de streaming tem três recursos principais:

    Publique e inscreva-se em fluxos de registros, semelhantes a uma fila de mensagens ou sistema de mensagens corporativo.
    Armazene fluxos de registros de uma maneira durável e tolerante a falhas.
    Processe fluxos de registros conforme eles ocorrem.

 
O Kafka é geralmente usado para duas classes amplas de aplicações:

    Construindo pipelines de dados de fluxo em tempo real que confiantemente obtêm dados entre sistemas ou aplicativos
    Construindo aplicativos de streaming em tempo real que transformam ou reagem aos fluxos de dados

Para entender como Kafka faz essas coisas, vamos mergulhar e explorar os recursos de Kafka de baixo para cima.

Primeiro alguns conceitos:

    O Kafka é executado como um cluster em um ou mais servidores que podem abranger vários datacenters.
    O cluster Kafka armazena fluxos de registros em categorias denominadas tópicos.
    Cada registro consiste em uma chave, um valor e um registro de data e hora.

Kafka tem quatro APIs principais:

    A Producer API permite que um aplicativo publique um fluxo de registros em um ou mais tópicos do Kafka.
    A API do Consumidor permite que um aplicativo assine um ou mais tópicos e processe o fluxo de registros produzidos para eles.
    A API do Streams permite que um aplicativo atue como um processador de fluxo, consumindo um fluxo de entrada de um ou mais tópicos e produzindo um fluxo de saída para um ou mais tópicos de saída, transformando efetivamente os fluxos de entrada em fluxos de saída.
    A Connector API permite criar e executar produtores ou consumidores reutilizáveis ​​que conectam tópicos do Kafka a aplicativos ou sistemas de dados existentes. Por exemplo, um conector para um banco de dados relacional pode capturar todas as alterações em uma tabela.

quarta-feira, 5 de dezembro de 2018

NoSQL - Ravendb


A Hibernating Rhinos, uma fornecedora global de soluções de infra-estrutura de banco de dados, capacita empresas e empresas da Fortune 500 em todo o mundo a processar transações on-line por meio de uma plataforma de código aberto. O RavenDB é o primeiro banco de dados NoSQL ACID totalmente transacional do setor que combina escalabilidade, alta disponibilidade, velocidade e desempenho. A empresa produz duas ferramentas ORM, NHibernate e Entity Framework Profilers, que inspecionam, analisam e sugerem melhorias nos padrões de acesso a bancos de dados em aplicativos. A Hibernating Rhinos está sediada em Hadera, Israel, com escritórios nos EUA e na Polônia, e amplia seu alcance em mais de 1500 clientes em todo o mundo.

https://ravendb.net/

Apache OpenNLP

Biblioteca Apache OpenNLP é um kit de ferramentas baseado em aprendizado de 
máquina para o processamento de texto em linguagem natural.
A biblioteca Apache OpenNLP é um kit de ferramentas baseado em aprendizado 
de máquina para o processamento de texto em linguagem natural. 
Ele suporta as tarefas mais comuns da PNL, como tokenização, segmentação 
de sentenças, marcação de partes de fala, extração de entidades nomeadas, 
fragmentação, análise e resolução de referência. Essas tarefas geralmente 
são necessárias para criar serviços de processamento de texto mais avançados. 
O OpenNLP também incluiu aprendizado de máquina baseado em entropia máxima e 
perceptron.


https://opennlp.apache.org/

terça-feira, 4 de dezembro de 2018

Comandos uteis para Iniciar com Angular e Ionic com Linux

sudo npm install -g ionic cordova

+ ionic@4.5.0
+ cordova@8.1.2



cd /home/raydacosta/ProjetoMDWAngular

//blank: Aplicação em branco.
//tabs: Aplicação no formato de abas.
//sidemenu: Aplicação com menu lateral.
sudo ionic start mdwhippurus sidemenu -ts

sudo chmod 777 /home/raydacosta/ProjetoMDWAngular -R

cd ./mdwhippurus

sudo npm install rxjs

sudo ionic platform android

sudo ionic generate service leitor

sudo ionic generate service Rest


//export ANDROID_HOME="/home/raydacosta/Android/Sdk"
//export PATH="$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools"
//echo $ANDROID_HOME
//cordova-android@7.1.4


sudo ionic cordova platform

sudo cordova plugin add cordova-plugin-whitelist
sudo prepare
sudo ionic cordova build android
sudo ionic cordova platform add android
sudo ionic cordova platform rm android
///home/raydacosta/ProjetoMDWAngular/mdwhippurus/platforms/android/app/build/outputs/apk/debug/app-debug.apk


sudo cordova platform add android --save

sudo ionic cordova platform add ios
sudo cordova platform add ios --save

sudo ionic cordova emulate android
sudo ionic cordova emulate ios

// criar pagina
sudo ionic g page sobre

sudo ionic serve


segunda-feira, 3 de dezembro de 2018

java httpserver too many bytes to write to stream





Solução para esta exception é:


         try {
                byte[] bs = response.getBytes("UTF-8");
                t.sendResponseHeaders(200, bs.length);
                OutputStream os = t.getResponseBody();
                os.write(bs);

            } catch (IOException ex) {
                ex.printStackTrace();
            }