Clay 的技术空间

用进废退 | 艺不压身

上篇 - Nacos 入门教程 - 配置管理(中级篇)

Nacos Server 集群

部署模式

Nacos Server 支持三种部署模式:

  • 单机模式 - 用于测试和单机试用
  • 集群模式 - 用于生产环境,确保高可用
  • 多集群模式 - 用于多数据中心场景

集群搭建

安装 Nacos Server

集群环境下,至少需要安装三台以上的 Nacos Server,一般情况下复制三份 Nacos Server 解压后的文件夹即可,分别命名为 nacos-1、nacos-2、nacos-3。

配置 IP 与 端口

  • 若是单机搭建 Nacos Server 集群,则需要更改每台 Nacos Server 目录的 conf 目录下的 application.properties 配置文件,通过 server.port 参数让每台 Nacos Server 使用不同的端口,以此来避免端口冲突。
  • 在生产环境中,若每台 Nacos Sever 都有独立的真实 IP 地址,或者单台 Nacos Server 拥有多块网卡时,则需要在每台 Nacos Server 目录的 conf 目录下的 application.properties 配置文件里通过 nacos.inetutils.ip-address 参数绑定真实的 IP 地址。
1
2
server.port=8848
nacos.inetutils.ip-address=192.168.1.124
阅读全文 »

上篇 - Nacos 入门教程 - 配置管理(基础篇)

Nacos Config Spring 入门案例

1.0、版本说明

在本案例中,Spring 的版本为 5.2.x,Nacos Server 的版本为 1.4.0,点击下载完整的案例代码。

1.1、发布配置

1
2
3
4
5
Namespace: public
Data ID: nacos_config_spring_demo.properties
Group: DEFAULT_GROUP
配置格式: Properties
配置内容: useLocalCache=true
阅读全文 »

前言

本文主要介绍如何在 Linux 系统里安装 RTL8812AU 无线 USB 网卡驱动,适用于 Debian、Ubuntu 18/19/20、Centos7/8,其中 Linux 的内核版本必须为大于等于 3.10。

检测系统是否正确识别 RTL8812AU 无线网卡

1
2
# lsusb | grep RTL8812AU
Bus 003 Device 008: ID 0bda:8812 Realtek Semiconductor Corp. RTL8812AU 802.11a/b/g/n/ac 2T2R DB WLAN Adapter

Ubuntu 18/19/20 手动安装 RTL8812AU 无线网卡驱动

1
2
# 系统环境
Linux Ubuntu-20 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 安装工具软件
# apt-get install -y git make

# 克隆源码
# git clone https://github.com/gnab/rtl8812au.git

# 进入源码目录
# cd rtl8812au

# 编译驱动
# make

# 安装驱动
# cp 8812au.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless

# 更新模块依赖
# depmod

# 提示:执行完以上步骤后,正常情况下就可以在系统的设置面板里看到 RTL8812AU 无线 USB 网卡搜索到的 WiFi 列表;如果网卡驱动安装后不生效,可以尝试重启系统。
阅读全文 »

配置中心介绍

什么是配置中心

在集中式开发时代,配置文件已经基本足够了,因为那时配置的管理通常不会成为一个很大的问题。但是在互联网时代,应用都是分布式系统,部署在 N 台服务器上,想要去线上一台台地重启机器肯定不靠谱,并且维护成本也很高,所以配置中心应运而生。配置中心被用作集中管理不同环境(Dev、Test、Stage、Prod)和不同集群配置,以及在修改配置后将实时动态推送到应用上进行刷新。配置中心应具备的功能如下:

  • Open API
  • 业务无关性
  • 高可用集群
  • 配置生效监控
  • 配合灰度与更新
  • 一致性 K-V 存储
  • 统一配置实时推送
  • 配置全局恢复、备份与历史
阅读全文 »

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 开源项目为主:

spring-cloud

阅读全文 »

大纲

前言

本文将介绍 Java 的内存模型(JMM),部分内容摘自《深入理解 Java 虚拟机》。

物理硬件和内存

首先,在单核电脑中处理的问题要简单得多,对内存和硬件的要求,各种方面的考虑没有在多核的情况下复杂。电脑中,CPU 的运行计算速度是非常快的,而其他硬件比如磁盘 IO,网络、内存读取等等,跟 CPU 的速度比起来是差几个数量级的。而不管任何操作,几乎是不可能都在 CPU 中完成而不借助于任何其他硬件操作。所以协调 CPU 和各个硬件之间的速度差异是非常重要的,要不然 CPU 就一直在等待,浪费资源。而在多核中,不仅面临如上问题,还有如果多个核用到了同一个数据,如何保证数据的一致性、正确性等问题,也是必须要解决的。目前基于高速缓存的存储交互很好的解决了 CPU 和内存等其他硬件之间的速度矛盾,多核情况下各个处理器(核)都要遵循一定的诸如 MSI、MESI 等协议来保证内存的各个处理器高速缓存和主内存的数据的一致性。

阅读全文 »

Meson 介绍

Meson 的简介

Meson(The Meson Build System)是个项目构建系统,类似的构建系统有 MakefileCMakeautomake …。 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,例如 DPDKMapnik

阅读全文 »

存储过程的介绍

  • 存储过程是在数据库中存储的一组预编译的 SQL 语句,可以在需要时多次调用。
  • 存储过程只在创建时进行编译,以后每次执行存储过程都不需再重新编译,而一般的 SQl 语句每执行一次就编译一次,因此使用存储过程可以大大提高数据库的执行速度。
  • 通常,复杂的业务逻辑需要多条 SQL 语句。这些语句要分别地从客户端发送到服务器,当客户端和服务器之间的操作有很多时,将产生大量的网络传输。如果将这些操作放在一个存储过程中,那么客户端和服务器之间的网络传输就会大大减少,从而降低了网络负载。
阅读全文 »

系统级命令

获取符合规则的键名列表

KEYS 命令需要遍历 Redis 中的所有键,当键的数量较多时会严重影响性能,在生产环境中应该禁用该命令。

1
KEYS pattern

示例:

1
2
redis> KEYS *
1) "book"
阅读全文 »
0%