JVM
JVM é a abreviatura de Java Virtual Machine (Java Virtual Machine). JVM é uma especificação para dispositivos de computação. É um computador fictício que é realizado através da simulação de várias funções de computador em um computador real.
Após a introdução da máquina virtual da linguagem Java, a linguagem Java não precisa ser recompilada quando é executada em diferentes plataformas. A linguagem Java usa a máquina virtual Java para proteger as informações relacionadas à plataforma específica, de forma que o compilador da linguagem Java precise apenas gerar o código do objeto (bytecode) que roda na máquina virtual Java e pode rodar em múltiplas plataformas sem modificação. .
Como há muitos detalhes, apenas alguns dos pontos de conhecimento são capturas de tela para uma introdução aproximada, e cada pequeno nó tem um conteúdo mais detalhado!
Digitalize para obter
Compreensão profunda da máquina virtual Java: recursos avançados de JVM e práticas recomendadas
-
A primeira parte aborda Java
-
Capítulo 1 Abordando Java
-
A segunda parte do mecanismo de gerenciamento automático de memória
-
Capítulo 2 Área de memória Java e exceção de estouro de memória
-
Capítulo 3 Coletor de lixo e estratégia de alocação de memória
-
Capítulo 4 Ferramentas de monitoramento e solução de problemas de desempenho de máquinas virtuais
-
Capítulo 5 Análise de caso de ajuste e combate real
-
A terceira parte do subsistema de execução da máquina virtual
-
Capítulo 6 Estrutura do arquivo de classe
-
Capítulo 7 Mecanismo de carregamento de classe de máquina virtual
-
Capítulo 8 Mecanismo de execução de bytecode de máquina virtual
-
Capítulo 9 Casos de Subsistema de Carregamento e Execução de Classe e Combate Real
-
A quarta parte da compilação do programa e otimização do código
-
Capítulo 10 Otimização Antecipada (Tempo de Compilação)
-
Capítulo 11 Otimização tardia (tempo de execução)
-
Parte 5 Concorrência eficiente
-
Capítulo 12 Modelo de Memória Java e Threads
-
Capítulo 13 Segurança de Thread e Otimização de Bloqueio
ava multithreaded programming
Java fornece suporte integrado para programação multithread. Um thread se refere a um único fluxo de controle sequencial em um processo. Vários threads podem ser simultâneos em um processo, e cada thread executa tarefas diferentes em paralelo.
Multithreading é uma forma especial de multitarefa, mas multithreading usa menos sobrecarga de recursos.
Outro termo relacionado a threads é definido aqui-processo: Um processo inclui o espaço de memória alocado pelo sistema operacional e contém um ou mais threads. Um thread não pode existir independentemente, deve fazer parte do processo. Um processo está em execução até que todos os encadeamentos não-daemon tenham concluído a execução.
O multithreading pode satisfazer os programadores a escrever programas altamente eficientes para atingir o objetivo de fazer uso total da CPU.
Como há muitos detalhes, apenas alguns dos pontos de conhecimento são capturas de tela para uma introdução aproximada, e cada pequeno nó tem um conteúdo mais detalhado!
Núcleo de programação Java multithreaded technology_full version
-
Capítulo 1 Habilidades de multithreading Java
-
Capítulo 2 Acesso Simultâneo a Objetos e Variáveis
-
Capítulo 3 Comunicação Inter-Thread
-
Capítulo 4 Uso da fechadura
-
Capítulo 5 Timer
-
Capítulo 6 Modo Singleton e Multithreading
-
Capítulo 7 Suplementos
Kafka
Kafka é uma plataforma de processamento de stream de código aberto desenvolvida pela Apache Software Foundation, escrita em Scala e Java. O Kafka é um sistema de mensagens de publicação e assinatura distribuída de alto rendimento que pode processar todos os dados do fluxo de ação dos consumidores no site. Essas ações (navegação na web, pesquisa e outras ações do usuário) são um fator-chave em muitas funções sociais na web moderna. Esses dados são geralmente resolvidos pelo processamento de logs e agregação de log devido aos requisitos de rendimento. Para dados de log e sistemas de análise offline como Hadoop, mas com as limitações do processamento em tempo real, esta é uma solução viável. O objetivo do Kafka é unificar o processamento de mensagens online e offline por meio do mecanismo de carregamento paralelo do Hadoop e também fornecer mensagens em tempo real por meio de clusters.
Como há muitos detalhes, apenas alguns dos pontos de conhecimento são capturas de tela para uma introdução aproximada, e cada pequeno nó tem um conteúdo mais detalhado!
Conhecimento profundo de Kafka: design básico e princípios práticos
-
Capítulo 1 Conhecendo Kafka
-
Capítulo 2 Produtores
-
Capítulo 3 Consumidores
-
Capítulo 4 Tópicos e divisões
-
Capítulo 5 Armazenamento de Log
-
Capítulo 6 Profundamente no servidor
-
Capítulo 7 Cliente em profundidade
-
Capítulo 8 Pesquisa de confiabilidade
-
Capítulo 9 Aplicação Kafka
-
Capítulo 10 Monitoramento Kafka
-
Capítulo 11 Aplicações Avançadas
-
Capítulo 12 Integração de Kafka e Spark
-
Apêndice A: configuração do ambiente de origem Kafka
Análise profunda do código-fonte do Sping
Não vou apresentar mais sobre este livro, acredito que muitos amigos leram que o autor é Hao Jia
Apresenta principalmente o código-fonte do Spring a partir de duas partes: implementação central, aplicativo corporativo
1. Implementação do Spring core
Fique atento à conta pública do WeChat: [Técnico em Programação] para verificar como obter informações gratuitamente!
Dois, aplicativos empresariais
Redis
Redis é um sistema de armazenamento de valor-chave. Semelhante ao Memcached, ele suporta relativamente mais tipos de valor para armazenamento, incluindo string (string), lista (lista vinculada), conjunto (coleção), zset (conjunto classificado - conjunto ordenado) e hash (tipo de hash). Todos esses tipos de dados suportam push / pop, add / remove, intersecção, união e diferença e operações mais ricas, e essas operações são todas atômicas. Com base nisso, o redis oferece suporte a uma variedade de maneiras diferentes de classificação. Assim como o memcached, para garantir a eficiência, os dados são armazenados em cache na memória. A diferença é que o redis grava periodicamente dados atualizados no disco ou grava operações de modificação em arquivos de registro adicionais e, com base nisso, realiza a sincronização mestre-escravo (mestre-escravo).
Redis é um banco de dados de valor-chave de alto desempenho. O surgimento do redis compensou amplamente a inadequação do armazenamento de chave / valor, como memcached, e pode desempenhar um bom papel complementar em bancos de dados relacionais em alguns casos. Ele fornece clientes para Java, C / C ++, C #, PHP, JavaScript, Perl, Object-C, Python, Ruby, Erlang, etc., que são muito convenientes de usar.
O Redis oferece suporte à sincronização mestre-escravo. Os dados podem ser sincronizados do servidor mestre para qualquer número de servidores escravos, e o servidor escravo pode ser o servidor mestre associado a outros servidores escravos. Isso permite que o Redis execute a replicação da árvore de nível único. Salvar em disco pode gravar dados intencionalmente ou não. Visto que o mecanismo de publicação / assinatura está totalmente implementado, quando o banco de dados escravo está sincronizando a árvore em qualquer lugar, ele pode se inscrever em um canal e receber o registro completo de publicação de mensagens do servidor mestre. A sincronização é muito útil para a escalabilidade e redundância de dados das operações de leitura.
O endereço do site oficial do redis, muito fácil de lembrar, é redis.io. (Eu verifiquei especificamente, o sufixo do nome de domínio io pertence ao nome de domínio nacional, que é o território britânico do Oceano Índico, ou seja, o Território Britânico do Oceano Índico)
Atualmente, a VMware está financiando o desenvolvimento e a manutenção do projeto redis.
Como há muitos detalhes, apenas alguns dos pontos de conhecimento são capturas de tela para uma introdução aproximada, e cada pequeno nó tem um conteúdo mais detalhado!
Artigos básicos de combate reais do Redis
-
Capítulo 1 Conhecendo o Redis
-
Capítulo 2 Usando Redis para construir aplicativos da Web
-
Conceitos Básicos da Parte Dois
-
Capítulo 3 Comandos do Redis
-
Capítulo 4 Segurança de dados e garantia de desempenho
-
Capítulo 5 Usando Redis para criar programas de suporte
-
Capítulo 6 Usando Redis para criar componentes de aplicativos
-
Capítulo 7 Aplicativos baseados em pesquisa
-
Capítulo 8 Construindo um site social simples
-
A terceira parte do conteúdo avançado
-
Capítulo 9 Reduzindo o uso de memória
-
Capítulo 10 Estendendo o Redis
-
Capítulo 11 Programação do Redis Lua Script
Nginx
Nginx (engine x) é um servidor da Web de proxy reverso e HTTP de alto desempenho, e também fornece serviços IMAP / POP3 / SMTP. O Nginx foi desenvolvido por Igor Sesoyev para o segundo site mais visitado da Rússia, Rambler.ru (russo: Рамблер). A primeira versão pública 0.1.0 foi lançada em 4 de outubro de 2004.
O código-fonte é lançado na forma de uma licença do tipo BSD, que é conhecida por sua estabilidade, rico conjunto de recursos, arquivos de configuração de amostra e baixo consumo de recursos do sistema. Em 1 de junho de 2011, o nginx 1.0.4 foi lançado.
Nginx é um servidor web / servidor proxy reverso leve e servidor proxy de e-mail (IMAP / POP3), emitido sob o protocolo semelhante ao BSD. Suas características são que ele ocupa menos memória e tem forte simultaneidade. Na verdade, a simultaneidade do nginx tem um desempenho melhor no mesmo tipo de servidor da Web. Os usuários de sites nginx na China continental incluem: Baidu, JD, Sina, NetEase, Tencent, Taobao, etc.
Como há muitos detalhes, apenas alguns dos pontos de conhecimento são capturas de tela para uma introdução aproximada, e cada pequeno nó tem um conteúdo mais detalhado!
Nginx núcleo de combate real
-
Capítulo 1 Introdução ao Nginx
-
Capítulo 2 Instalação e configuração do servidor Nginx
-
Capítulo 3 Configuração Básica e Otimização do Nginx
-
Capítulo 4 Instalação, configuração e otimização de Nginx e PHP (FastCGI)
-
Capítulo 5 Instalação e configuração de Nginx e JSP, ASP.NET e Perl
-
Capítulo 6 Configuração e otimização do balanceamento de carga HTTP Nginx e proxy reverso
-
Capítulo 7 Regras e exemplos de reescrita do Nginx
-
Capítulo 8 Desenvolvimento do módulo Nginx
-
Capítulo 9 Serviço de cache da Web do Nginx e módulo NCACHE de código aberto da Sina
-
Capítulo 10 Casos de aplicação do Nginx em sites nacionais conhecidos
-
Capítulo 11 Exemplos de aplicação atípica do Nginx
-
Capítulo 12 Módulos principais do Nginx
-
Capítulo 13 Módulo HTTP padrão do Nginx
-
Capítulo 14 Outros Módulos HTTP do Nginx
-
Capítulo 15 Módulo Nginx Mail
MySQL de alto desempenho
MySQL de alto desempenho é um livro que compartilha experiência prática com o MySQL. Ele pode não apenas ajudar os iniciantes em MySQL a melhorar suas habilidades, mas também o DBA MySQL mais experiente indica o caminho para desenvolver aplicativos MySQL de alto desempenho.
MySQL de alto desempenho (Seção 2 contém 16 capítulos e 6 apêndices, cobrindo a arquitetura do sistema MySQL, habilidades de design de aplicativos, otimização de instrução SQL, ajuste de desempenho do servidor, gerenciamento de configuração do sistema e configurações de segurança, análise de monitoramento e replicação, expansão e backup / Temas como restauração, e o conteúdo de cada capítulo é independente, adequado para leitura seletiva por aqueles versados em vários campos.
Como há muitos detalhes, apenas alguns dos pontos de conhecimento são capturas de tela para uma introdução aproximada, e cada pequeno nó tem um conteúdo mais detalhado!
Livro eletrônico prático de alto desempenho sobre MySQL
-
Capítulo 1 Arquitetura e história do MySQL
-
Capítulo 2 Teste de comparação de MySQL
-
Capítulo 3 Análise de desempenho do servidor
-
Capítulo 4 Esquema e otimização de tipo de dados
-
Capítulo 5 Criando índices de alto desempenho
-
Capítulo 6 Otimização de desempenho de consulta
-
Capítulo 7 Recursos avançados do MySQL
-
Capítulo 8 Otimizando as configurações do servidor
-
Capítulo 9 Sistema operacional e otimização de hardware
-
Capítulo 10 Cópia
-
Capítulo 11 MySQL escalável
-
Capítulo 12 Alta Disponibilidade
-
Capítulo 13 MySQL na nuvem
-
Capítulo 14 Otimização da camada de aplicativo
-
Capítulo 15 Backup e recuperação
-
Capítulo 16 Ferramentas do usuário MySQL
-
Apêndice A Ramos e variantes do MySQL
-
Apêndice B Status do servidor MySQL
-
Apêndice C Transferência de arquivos grandes
-
Apêndice D, EXPLIQUE
-
Apêndice E Depuração de bloqueio
-
Apêndice F Usando Sphinx no MySQL
Digitalize para obter