- 博客(19)
- 资源 (4)
- 问答 (2)
- 收藏
- 关注
原创 分布式高并发设计案例 之秒杀系统设计
秒杀系统设计 【第一版设计】 1、前端页层面:防重复提交控制 1)页面秒杀按钮置灰 2)页面防重复提交 2、应用层面 1)令牌机制,通过Redis分配令牌,只有拿到令牌的用户才可去访问数据库 2)同一个用户需设置时间间隔,过时间间隔才可再次提交 3、DB层面 1)防止超卖:数据库乐观锁 【第二版设计】 0、【过滤合法请求】对请求参数做安全校验和接口签名验证 1、【请求分发过滤】请求后端接口前->引入Nginx做负载均衡,分..
2020-12-23 00:04:42 3039 7
原创 Java必备技能之实战篇—Nginx各种应用场景配置(可以直接复制修改使用)
nginx正向代理server { listen 8090; location / { resolver 218.85.157.99 218.85.152.99; resolver_timeout 30s; proxy_pass http://$host$request_uri; } access_log /data/httplogs/proxy-$host-aceess.log; }测试:http://www.ttlsa.com:8090resolver
2020-12-22 01:05:38 550
原创 数据库系列——使用Canal Admin实现MySQL增量数据同步运维管理
基于上一篇文章:https://blog.csdn.net/Coder_Boy_/article/details/111055381这里主要基于Canal Admin搭建一个MySQL增量数据管理运维web平台简介Canal Admin是为canal提供整体配置管理、节点运维等面向运维的功能,提供相对友好的WebUI操作界面,方便更多用户快速和安全的操作实际安装使用中会遇到一些坑,所以作为踩坑笔记,介绍本地安装使用情况。canal-admin需依赖canal,且canal版本..
2020-12-12 22:41:03 1050
原创 数据库系列——基于Canal实现MySQL增量数据同步
环境准备:1、redis (默认端口6379)2、zookeeper (默认端口2181)3、Kafka (默认端口9092)4、Canal (默认端口 11111)5、MySQL (默认端口 3306实际项目我们是配置MQ模式,配合RocketMQ或者Kafka,canal会把数据发送到MQ的topic中,然后通过消息队列的消费者进行消费处理。这篇文章演示部署Canal,配合使用Kafka,同步数据到Redis通过架构图,我们很清晰就知道要用到的组件:MySQL、C
2020-12-12 02:34:07 4189 6
原创 数据库系列——基于MySQL主从同步实现读写分离
前提:搭建一主多从数据库集群参考上一篇文章https://blog.csdn.net/Coder_Boy_/article/details/110950347本文Github代码地址:https://github.com/cheriduk/spring-boot-integration-template本文核心:代码层面进行读写分离代码环境是springboot+mybatis+druib连接池。想要读写分离就需要配置多个数据源,在进行写操作是选择写的数据源,读操作时选择读的数据源...
2020-12-11 15:54:49 410
原创 数据库系列——MySQL主从复制配置
1、背景一个项目中数据库最基础同时也是最主流的是单机数据库,读写都在一个库中。当用户逐渐增多,单机数据库无法满足性能要求时,就会进行读写分离改造(适用于读多写少),写操作一个库,读操作多个库,通常会做一个数据库集群,开启主从备份,一主多从,以提高读取性能。当用户更多读写分离也无法满足时,就需要分布式数据库了(可能以后会学习怎么弄)。正常情况下读写分离的实现,首先要做一个一主多从的数据库集群,同时还需要进行数据同步。这一篇记录如何用mysql搭建一个一主多次的配置,下一篇记录代码层面如何实现读写分离。
2020-12-10 12:30:49 2391 4
原创 数据库系列——Mysql主从复制作用和工作原理详解
简述主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库事务处理库,从库做查询库。一、什么是主从复制主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。在最常用的mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器;此时主服务器会将更新信息写入到一个特定的二进制文件中。并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到..
2020-12-09 19:17:10 1733
原创 数据库系列—MySQL 的二进制日志恢复数据库数据
1、开启 binlog 功能及基本操作要使用 MySQL 的 binlog 日志功能,首先要在 MySQL 的配置文件中开启该功能,操作很简单。找到 MySQL 的配置文件,在文件中添加一行 log_bin = mysql-bin 即可。其实在我安装的各种 MySQL 环境中,该功能通常都是默认开启的。开启 binlog 功能后,在 MySQL 的数据库目录下就会有诸如 mysql-bin.000001、mysql-bin.000002等文件,这就是 MySQL 的二进制日志文件。每当 MySQL
2020-12-08 16:12:09 1775 1
原创 任务调度处理系列之 Spring源码分析-【SchedulingConfigurer实现原理】
可能的场景在做业务平台的时候我们经常会遇到,某些跟时间打交道的需要修改状态,比如说在时间区间之前,属于未生效状态,区间之内属于有效期,区间之后,属于过期,或者需要每天 每周 每月,甚至是年为单位的做一些固定的操作。通过定时任务可以通过开启定时任务来完成这些需求。我做合同管理模块,合同有未生效,已生效,已过期,三个状态,不可能每次用户登录的时候去判断这个状态,然后修改,这样做会在登录的逻辑里边耦合了合同业务逻辑,同时消耗了登录时间,不太可取。还有一些需要报表统计类的批量处理任务,任务量大,类别也.
2020-12-05 04:27:19 3167
翻译 Redis数据类型介绍——官网解读
官网地址:https://redis.io/topics/data-types-introRedis常用数据类型介绍An introduction to Redis data types and abstractionsRedis 数据类型和抽象的介绍Redis is not aplainkey-value store, it is actually adata structures server, supporting different kinds of values. Wha...
2020-12-04 17:39:15 862
原创 Java必备技能之源码篇(Nginx源码研究之nginx限流模块)
概述:高并发系统有三把利器:缓存、降级和限流;限流的目的是通过对并发访问/请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务(定向到错误页)、排队等待(秒杀)、降级(返回兜底数据或默认数据);高并发系统常见的限流有:限制总并发数(数据库连接池)、限制瞬时并发数(如nginx的limit_conn模块,用来限制瞬时并发连接数)、限制时间窗口内的平均速率(nginx的limit_req模块,用来限制每秒的平均速率);另外还可以根据网络连接数、网络流量、CPU或内存负载等来限流。业界主
2020-12-02 14:39:14 470
翻译 Java常用中间件之 NGINX实现限流功能的官方文档说明
官方文档:http://nginx.org/en/docs/http/ngx_http_limit_req_module.htmlModule ngx_http_limit_req_module Example Configuration 示例配置 指令 Directives limit_req limit_req_dry_run limit_req_log_level limit_req_stat...
2020-12-02 02:59:04 398
原创 Java必备技能之实战篇 (使用nginx实现分布式限流)
使用场景:一般对外暴露的系统,在促销或者黑客攻击时会涌来大量的请求,为了保护系统不被瞬间到来的高并发流量给打垮, 就需要限流.1.简介一般对外暴露的系统,在促销或者黑客攻击时会涌来大量的请求,为了保护系统不被瞬间到来的高并发流量给打垮, 就需要限流本文主要阐述如何用nginx 来实现限流. Hystrix 也是可以的。2.编码-首先部署一个对外暴露接口的程序我这里部署的是一个spring boot 项目 里面暴露了如下接口, 很简单暴露了一个 get...
2020-12-02 00:03:54 431
原创 Java必备技能之环境搭建篇 (linux ab压力测试Nginx)(实战)
1测试普通限流1)配置nginx限流速率为1qps,针对客户端IP地址限流(返回状态码默认为503),如下:http{ limit_req_zone $binary_remote_addr zone=test:10m rate=1r/s; server { listen 80; server_name localhost; location / { limit_req zone=test; root html; index index.html index.
2020-12-01 13:11:48 381
原创 Java必备技能之环境搭建篇 (linux ab压力测试)
linux ab压力测试1、安装yum -y install httpd-tools2、检测版本ab -V3、常用 ab压测 Nginx默认页做为演示:[root@localhost usr]# ab -c 100 -n 10000 http://127.0.0.1/index.html#同时处理1000个请求并运行10次index.html#-c100表示并发用户数为100#-n10000表示请求总数为10000 #简单使用说明 ./ab -c 10.
2020-12-01 11:12:00 507
大数据系列博客——环境搭建安装包
2020-11-03
23种设计模式 -设计模式图解.7z
2020-09-11
win7 idea2018 1.8版本 docker插件 配置报错?如何解决啊,谢谢
2019-08-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人