Clay 的技术空间

用进废退 | 艺不压身

大纲

前言

为了减少开发的复杂度,Sentinel 对大部分的主流框架,例如 Web Servlet、Dubbo、Spring Cloud、gRPC、Spring WebFlux,Reactor 等都做了适配,只需要引入对应的依赖即可方便的整合 Sentinel。如果要实现 Spring Cloud 和 Sentinel 的整合,可以通过引入 Spring Cloud Alibaba Sentinel 来整合 Sentinel。Spring Cloud Alibaba 是阿里巴巴开源的,致力于提供微服务开发的一站式解决方案。Spring Cloud Alibaba 默认为 Sentinel 整合了 Servlet、RestTemplate、FeignClient 和 Spring WebFlux。Sentinel 在 Spring Cloud 生态中,不仅补全了 Hystrix 在 Servlet 和 RestTemplate 这一块空白,而且还完全兼容了 Hystrix 在 FeignClient 中限流降级的用法,并且支持运行时灵活地配置和调整限流降级规则。

阅读全文 »

大纲

前言

1.0、版本说明

本文针对 Sentinel 1.8.0 及以上版本编写,特别说明除外。由于 1.8.0 版本对熔断降级特性进行了全新的改进升级,建议使用最新版本以更好地利用熔断降级的能力。

1.1、Sentinel 的控制规则

Sentinel 的所有规则都可以在内存态中动态地查询与修改,修改之后立即生效,同时 Sentinel 也提供了相关 API 供开发者来定制自己的规则策略。Sentinel 主要支持以下几种规则:

  • 流量控制规则
  • 熔断降级规则
  • 系统保护规则
  • 来源访问控制规则
  • 动态规则扩展
阅读全文 »

大纲

前言

本文针对 Sentinel 1.8.0 及以上版本编写,特别说明除外。由于 1.8.0 版本对熔断降级特性进行了全新的改进升级,建议使用最新版本以更好地利用熔断降级的能力。

阅读全文 »

前言

本文主要介绍如何在 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 列表;如果网卡驱动安装后不生效,可以尝试重启系统。
阅读全文 »

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 等协议来保证内存的各个处理器高速缓存和主内存的数据的一致性。

阅读全文 »