ShardingSphere分库分表与读写分离实战

关于 ShardingSphere 关于 ShardingSphere 功能 分库分表的作用 分库分表策略的选择 核心概念 分片策略介绍 准备工作 1. 数据库 2. 新建 SpringBoot 项目 3. 在项目中配置数据源 4. 项目目录结构 inline 1. 新建 course 表 2. 指定逻辑表与实际表的关系 3. 编写实体类 4. 测试插入 5. 测试全表

MySQL 高可用架构

MySQL 是实际生产中最常用的数据库,生产环境数据量极为庞大,对性能和安全要求很高,单机的 MySQL 是远远达不到的,所以必须搭建一个主从复制架构,同时可以基于一些工具实现高可用架构,在此基础上,基于一些中间件实现读写

maven 常用知识速记

依赖 创建项目 maven archetype:generate 依赖范围 有如下依赖示例: <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> <scope>test</scope> </dependency> 其中有一个scope标签来声明该依赖的作用范围 首先需要知道,Maven 在编译项目主代码的时候需要使用一套 classpath。在上例中,假如编译项目主

nginx中location匹配规则

精确匹配 / ,主机名后面不能带任何字符串 location = / { add_header Content-Type text/plain; return 200 'A'; } 或 location = /login { add_header Content-Type text/plain; return 200 'B'; } 匹配任何以 /static/ 开头的地址,匹配以后,不再继续往下检索正则,立即采用这一条。 location ^~ /static/ { add_header Content-Type text/plain; return 200 'C'; } 匹配所有以 txt 结尾的请求

个人微信打造成得力助手

本文提供一个通过java编程将微信打造成得力助手的方案, 先看效果: 查看支持的功能与对该功能开放的用户 接入人工智能 下载BiliBili 视频 原理 这个方案最难的地方就是如何把个人账号安全的接入微信,不会被封

RocketMQ 基本概念和高级原理

基础概念 消息模型 RocketMQ 主要由 Producer、Broker、Consumer 三部分组成,其中 Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务

AES加解密工具

背景 当我们想把某些文件上传到云上,方便备份和分享,但是还担心文件泄露,或者不想让提供云存储服务方的管理员看到,可以对文件加密再上传,就可以实现。比如我们的代码不想被审核或者公开,但还想上传到 github 或者 gitee 等

VirtualBox 虚拟机设置静态 IP

虚拟机中常用网络连接类型 网络地址转换 (NAT): 连接这个网络可以访问外部网络,但是外部网络不可访问虚拟机 桥接网卡: 这个网络完全可以共享主机网络,主机网络发生变化时,也跟随变化,ip 也随之变动 仅主机 (Host-Only) 网络: 这个网

centos防火墙

在 CentOS 操作系统中,Firewall 和 iptables 都可以用于网络安全。 Firewall 在 CentOS 7 及其之后版本中已成为默认的防火墙解决方案。它基于 Netfilter 框架,并使用 firewalld 作为前端管理工具。Firewall 可以通过命令行工具 firewall-cmd 进行配置和管理,也

SpringBoot整合RocketMQ

SpringBoot整合RocketMQ使用非常简单,下面是一个简单的例子,作为备忘: 完整项目代码: https://github.com/dccmmtop/springBootRocketMQ 项目目录结构 依赖 «««< HEAD ======= 259748c5d94d9dc096c2c8ea1a2f98cc9cf7c13a <dependencies> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.1.1</version> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.1.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <version>2.1.6.RELEASE</version> </dependency> <dependencies> 配置类 ExtRocketMQTemplate package com.roy.rocketmq.config;

RocketMQ 的介绍和基本使用

介绍 快速安装 下载包 配置环境变量 启动 NameServer 启动 Borker 验证 部署后台管理页面 基本使用 RocketMQ 的编程模型 生产者的步骤 消费者步骤 RocketMQ 的消息样例 基本样例 同步发送 异步发送 单向发送消息 消费者消费消息 推模式 拉模式 顺序消息 分区顺序消息 Shareding

小爱同学接入chatGPT

大致流程 最近入手了一款小爱音响,想着把小爱音响接入 chatGPT, 在 github 上找了一个非常优秀的开源项目,整个过程还是比较简单的,一次就完成了。 其中最难的技术点是?如何获取与小爱的对话记录?如何让小爱播放文本? 让我自己想

java中包的扫描

用过spring框架后知道包扫描是一个非常好用的功能,只需要在某个包下写自己的类,框架就能自动帮我们加载到容器中,从而在各处使用,今天自己来实现一下包扫描。 原理其实很简单,就是找到某个目录下的所有cl