DNS Records 名词解释

DNS

  • Domain Name System 域名服务器
  • 域名虽然便于人们记忆,但网络中的计算机之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS 就是进行域名解析的服务器。

阅读更多

理解 volatile

Java内存模型

  • Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内存中进行。不同线程之间也无法直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主内存来完成。
  • i = 10; // 该赋值程序执行时线程必须先在自己的工作线程中对变量i所在的缓存行进行赋值操作,然后再写入主存当中。而不是直接将数值10写入主存当中。
  • 基于此种内存模型,便产生了多线程编程中的数据“脏读”等问题(一个线程修改数据没有及时写回主内存,另一个线程读取没修改的主内存数据,最终为主内存赋值时产生错误的结果)。

阅读更多

Linux调优

打开文件数设置

1
2
3
4
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
EOF

阅读更多

使用jenkins进行项目的自动构建部署

jenkins 简介

  • Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:持续的软件版本发布/测试项目和监控外部调用执行的工作。
  • 官网地址地址: https://jenkins.io

阅读更多

尾调用优化

什么是尾调用

  • 尾调用(Tail Call)是函数式编程的一个重要概念,就是指某个函数的最后一步是调用另一个函数。

阅读更多

深入理解 Java 虚拟机笔记

Java 虚拟机屏蔽了与具体操作系统平台相关的信息,使得 Java 语言编译程序只需生成在 Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java 虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。

阅读更多

RPC框架motan使用

简介

阅读更多

使用ELK管理日志

Logstash

简介

阅读更多

Spring Boot 中使用 Jedis 来操作 Redis

把之前老的项目切换到用 Spring Boot 时,由于抛弃了 xml 配置文件的使用,需要把之前 Jedis 配置现在用注解的形式重新实现一遍。

老的代码

  • config.properties
1
2
3
4
5
6
7
8
9
10
# redis数据库连接配置(covert)
redis.url=redis://:name@host:6379/2
# 最大实例数
redis.maxTotal=100
# 最大空闲实例数
redis.maxIdle=10
# (创建实例时)最大等待时间
redis.maxWaitMillis=10000
# (创建实例时)是否验证
redis.testOnBorrow=true

阅读更多

Configuration 注解中使用 Autowired 注解 IDE 报错

在 Spring Boot 项目中会用 @Configuration 注解来初始化配置, 这时可以通过 @autowired 自动注入封装好的model对象, 方便使用yml中的配置的数据。
这样做代码运行没问题,通过该对象也可以成功的获取yml配置文件中的数据,但是 IDE 却给出 “Could not autowird. No beans of’RedisConfig’ type found.” 的错误提示。

阅读更多