Linux 安装 RTL8812AU 无线 USB 网卡驱动
前言
本文主要介绍如何在 Linux 系统里安装 RTL8812AU 无线 USB 网卡驱动,适用于 Debian、Ubuntu 18/19/20、Centos7/8,其中 Linux 的内核版本必须为大于等于 3.10。
检测系统是否正确识别 RTL8812AU 无线网卡
1 | # lsusb | grep RTL8812AU |
Ubuntu 18/19/20 手动安装 RTL8812AU 无线网卡驱动
1 | # 系统环境 |
1 | # 安装工具软件 |
Spring Cloud Alibaba 新一代微服务解决方案
Spring Cloud Alibaba 是什么
Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案,是阿里巴巴开源中间件与 Spring Cloud 体系的融合,Github 项目地址在这里,官方文档在这里。
Spring Cloud 概述
提起微服务,不得不提 Spring Cloud 全家桶系列,Spring Cloud 是若干个框架的集合,包括 spring-cloud-config、spring-cloud-bus 等近 20 多个子项目,提供了服务治理、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式消息队列、配置管理等领域的解决方案。Spring Cloud 通过 Spring Boot 风格的封装,屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、容易部署的分布式系统开发工具包。一般来说,Spring Cloud 包含以下组件,主要以 Netflix 开源项目为主:

Java 多线程编程之一 Java 内存模型浅析
大纲
- Java 多线程编程之一 Java 内存模型浅析
- Java 多线程编程之二 synchronize 锁对象竞争
- Java 多线程编程之三 volatile 与 JMM 内存模型
- Java 多线程编程之四 CAS、ABA 问题、锁
- Java 多线程编程之五 AQS 底层源码深度剖析
- Java 多线程编程之六集合类的线程安全问题
- Java 多线程编程之七队列、线程池、线程通信
- Java 多线程编程之八 Fork/Join 框架使用
- Java 多线程编程之九 ThreadLocal 使用
前言
本文将介绍 Java 的内存模型(JMM),部分内容摘自《深入理解 Java 虚拟机》。
物理硬件和内存
首先,在单核电脑中处理的问题要简单得多,对内存和硬件的要求,各种方面的考虑没有在多核的情况下复杂。电脑中,CPU 的运行计算速度是非常快的,而其他硬件比如磁盘 IO,网络、内存读取等等,跟 CPU 的速度比起来是差几个数量级的。而不管任何操作,几乎是不可能都在 CPU 中完成而不借助于任何其他硬件操作。所以协调 CPU 和各个硬件之间的速度差异是非常重要的,要不然 CPU 就一直在等待,浪费资源。而在多核中,不仅面临如上问题,还有如果多个核用到了同一个数据,如何保证数据的一致性、正确性等问题,也是必须要解决的。目前基于高速缓存的存储交互很好的解决了 CPU 和内存等其他硬件之间的速度矛盾,多核情况下各个处理器(核)都要遵循一定的诸如 MSI、MESI 等协议来保证内存的各个处理器高速缓存和主内存的数据的一致性。
Meson 入门指南之一
前言
Meson 介绍
Meson 的简介
Meson(The Meson Build System)是个项目构建系统,类似的构建系统有 Makefile、CMake、automake …。 Meson 是一个由 Python 实现的开源项目,其思想是,开发人员花费在构建调试上的每一秒都是浪费,同样等待构建过程直到真正开始编译都是不值得的。因此,Meson 的设计目的是在用户友好的同时不损害性能,Meson 提供客户语言(custom language)作为主要工具,用户可以使用它完成项目构建的描述。客户语言的设计目标是简单(simplicity)、清晰(clarity)、简洁(conciseness),其中很多灵感来源于 Python 语言。Meson 的另个一主要设计目的是为现代编程工具提供优秀的支持和最好的实现。这包括一些特性如:单元测试(unit testing)、代码覆盖率报告(code coverage reporting)、头文件预编译(precompiled headers)。用户不需要寻找第三方宏指令(third party macros)或编写 Shell 脚本来实现这些特性,Meson 可以开箱即用。Meson 相比 CMake 来说,不仅仅支持 C/C++,还支持多种编程语言。如今,很多项目都由 CMake 转向到了 Meson,例如 DPDK 和 Mapnik。
Redis 分布式解决方案 - Codis
前言
分布式解决方案介绍
Redis Sentinel
- 用户体量较小时,可以选择 Redis Sentinel,单主 Redis 实例足以支撑业务。
Redis Cluster
- Redis 官方提供的集群方案,用户体量较大时,可以选择 Redis Cluster,通过分片技术可以使用更多的内存。
Twemprox
- Twitter 开源的一个 Redis 和 Memcached 代理服务器,主要用于管理 Redis 和 Memcached 集群,减少客户端与 Cache 服务器直接连接的数量。
Codis
- 一个 Redis 代理中间件,当客户端向 Codis 发送指令时,Codis 会将指令转发到后面的 Redis 实例来执行,并将结果返回给客户端。
- 一个 Codis 实例可以连接多个 Redis 实例,也可以启动多个 Codis 实例来支撑,每个 Codis 节点都是对等的,这样可以增加整体的 QPS 需求,还能起到容灾功能。
客户端分片
- 该方案在 Redis Cluster 还没出现之前使用得比较多,现在基本很少使用了。
- 分片逻辑在业务代码层实现,创建几个毫无关联的 Redis 实例,在代码层对 Key 进行 Hash 计算,然后去对应的 Redis 实例操作数据。
- 该方案对 Hash 算法的要求比较高,需要考虑节点失效后的替代算法方案、数据震荡后的自动脚本恢复、实例的监控等等。
