Os engenheiros do Alibaba Group criaram recentemente sua própria implementação do JDK no GitHub. Para a empresa, essa implementação nasceu da necessidade de encontrar um recurso Java adequado às suas aplicações e permitir sua implantação em grande escala.
Ao adotar o OpenJDK para executar nossos aplicativos, percebemos a necessidade de personalizá-lo especificamente para implantações de aplicativos Java em grande escala, escreveu a equipe.
Esta personalização interna ou versão downstream do OpenJDK do Alibaba Group foi apelidado de Alibaba Dragonwell 8.0. Como esperado, essa personalização foi implantada para as necessidades específicas dos negócios. Ele é otimizado para aplicações de e-commerce, finanças e logística online e já trabalha em mais de cem mil servidores.
O Alibaba Dragonwell é o mecanismo que executa nossos aplicativos Java distribuídos com extrema escalabilidade”, disse a equipe. Ela também informa que o Dragonwell 8.0 é certificado como compatível com o padrão Java SE e a versão atual suporta apenas a plataforma Linux para arquiteturas x86 e x64. Além de ser um fork do OpenJDK, possui outros recursos que a empresa considera muito essenciais para o seu trabalho.
Ele tem um novo Garbage Collector chamado CMS, um Flight Recorder (JFR) e traz novas adições, incluindo:
- Adicionando uma nova mini opção ao subcomando de dump da ferramenta de despejo para ignorar o conteúdo de matrizes primitivas de heap;
- adicionou uma nova opção PrintYoungGenHistoAfterParNewGC para imprimir o histograma do objeto após um ParNew GC;
- adicionou uma nova opção PrintGCRootsTraceTime para imprimir os detalhes do ParNew GC como G1GC. Ajuda os usuários a encontrar o problema do tempo de intervalo longo. Pode ser aberto/fechado por jinfo;
- Adicionada uma nova opção ArrayAllocationWarningSize para imprimir a pilha de chamadas de uma alocação de matriz que excede ArrayAllocationWarningSize. O valor padrão desta opção é 512M. Isso pode ser alterado por jinfo.
Cada vez mais empresas criando versões próprias
Muitas empresas e organizações estão embarcando na construção de seus próprios JDKs. Tudo isso é para evitar problemas com a Oracle que possui extensões proprietárias. Seja Red Hat, Amazon e Blue, para citar alguns, todas essas empresas têm seus próprios JDKs. Segundo eles, extensões proprietárias da Oracle destroem a confiança de desenvolvedores que estão gradualmente se distanciando da linguagem Java.
Além disso, em 2016, os proponentes do Java EE suportados pela Red Hat e pela IBM decidiram ter a própria plataforma independentemente da Oracle. Estes foram alguns desenvolvedores que decidiram seguir seu próprio caminho reunindo-se em um grupo chamadoJava EE Guardians.
Esse grupo de fãs do Java EE também viu alguns personagens e organizações se unirem à sua causa. Este foi particularmente o caso de James Gosling, o designer de Java. Expressando “preocupação com a falta de comprometimento da Oracle com o Java EE”, os Guardiões do Java EE disseram que estavam determinados a fazer tudo o que estivesse ao seu alcance para “salvaguardar os interesses da comunidade Java EE”.
Eles tinham publicado para esse propósito um plano de ação que planejava continuar até certo ponto o desenvolvimento do Java EE. Isso inclui o trabalho em recursos que deveriam estar no Java EE 8. O grupo de fãs da plataforma apresentava recursos de segurança, Java Message Service e Jax-RS. E isso, trabalhando em colaboração com fornecedores como a Red Hat, IBM,
Como obter Alibaba Dragonwell 8.0?
Este JDK está disponível para os entusiastas que querem saber um pouco mais sobre isso ou implementá-lo em seus servidores.
É importante mencionar que o Alibaba Dragonwell JDK só é compatível com a plataforma Linux em arquiteturas x86 e x64 no momento.
Para os sistemas RHEL, CentOS e AliOS, o seguinte repositório pode ser adicionado.
No caso do CentOS, nós adicionamos com:
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
E instale com:
sudo yum install dragonwell-8
Agora, apenas para ativar o Alibaba Dragonwell JDK para o seu aplicativo, você precisa configurar o JAVA_HOME para apontar para o diretório de instalação do Alibaba Dragonwell.
Para outros sistemas você deve baixar o JDK do Github, o link é esse.
As instruções para a implementação do Alibaba Dragonwell 8.0, bem como mais informações sobre o mesmo, podem ser encontradas no seguinte link.