
系统框架
文章平均质量分 84
解决系统开发的出现问题
爱我所爱0505
喜欢编程
展开
-
全链路压测时动态路由数据源MySQL、MongoDB、Redis
目录一、全链路压测二、动态路由Mysql1. 参数配置application-localDynamic.yml2. 加载配置参数DynamicDataSourceProperties.java3. 动态数据源DynamicDataSource.java4. 动态数据源供应DynamicDataSourceProvider.java5. 动态数据源bean6. 动态数据源上下文DynamicDataSourceContextHolder.java7. 动态数据源过滤器DynamicDataSourceFilt原创 2023-04-13 21:31:08 · 1305 阅读 · 0 评论 -
《亿级流量网站架构核心技术》总结
一、高可用原创 2022-01-17 21:49:14 · 2058 阅读 · 0 评论 -
堆缓存 — Guava Cache/Ehcache/MapDB
目录一、Java缓存类型二、Guava Cache/Ehcache/MapDB堆内缓存对比三、代码实例1. 依赖jar包2. Cache定义3. 调用实例三、参考资料一、Java缓存类型类型 优点 缺点 组件 适用场景 注意 堆内缓存 速度最快 1.受JVM堆大小限制 2.JVM重启时数据消失 Guava Cache、 Ehcache、 MapDB原创 2021-11-17 17:57:28 · 1322 阅读 · 0 评论 -
接入层限流 — Nginx的limit_conn与limit_req
目录一、Nginx限流二、limit_conn使用1. 相关配置2. 执行过程三、limit_req使用1. 相关配置2. 执行过程四、参考资料一、Nginx限流OpenResty中的Nginx自带两个限流模块:计数器算法实现的连接数限流模块ngx_http_limit_conn_module和漏桶算法实现的请求数限流模块ngx_http_limit_req_module。 limit_conn用来对某个key总的网络连接数进行限流...原创 2021-10-25 18:06:28 · 898 阅读 · 0 评论 -
应用级限流 — Guava的RateLimiter
一、GuavaGuava被Google的Java项目广泛依赖的核心库,是个工具包,集成集合、缓存、并发等相关工具。作为缓存,是全内存本地缓存且线程安全;作为并发,提供的RateLimiter限流是通过令牌桶算法实现限流。本章使用限流工具类RateLimiter提供全局限流或平滑某接口的请求数。二、RateLimiter1. 测试SmoothBurstypackage com.common.instance.test.ratelimiter;imp...原创 2021-10-25 15:26:29 · 1160 阅读 · 0 评论 -
Hystrix实现线程隔离
一、Hystrix目的隔离:防止服务级联失败;业务处理隔离(没有远程调用)熔断:超时、失败率、信号量降解:返回托底数据二、Hystrix原理1. 执行流程标题step1:每次调用创建一个新的HystrixCommand,把依赖调用封装在run()方法中。step2:执行execute()/queue做同步或异步调用。step3:判断熔断器(circuit-breaker)是否打开,如果打开跳到步骤8,进行降级策略,如果关闭进入步骤。step4:判断线程池/队列/...原创 2021-10-19 21:26:35 · 1945 阅读 · 0 评论 -
多级缓存框架<二>
目录一、Spring缓存注解1. 注解@Cacheable2. 注解@CachePut3. 注解@CacheEvict二、接口Cache三、接口CacheManager四、缓存封装类图五、参考资料本章节主要介绍Spring3.1后缓存注解使用和主要接口,及自己封装缓存,来实现一级、二级缓存。一、Spring缓存注解1. 注解@Cacheable方法执行前:先从cache获取,若没有缓存再执行方法方法执行后:根据condition判定参数是...原创 2021-08-18 17:43:07 · 225 阅读 · 0 评论 -
多级缓存框架<一>
一、概览缓存是高并发下的必备技术之一。本章节使用ehcache作为一级缓存、redis集群作为二级缓存。如下图所示,获取缓存数据流程图。自己封装缓存jar包cache-core,redisson访问redis集群。ehcache缓存是应用内存级别缓存,也是本地缓存。而redis集群为内存缓存,也是分布式缓存。DB数据存入磁盘,其查询速率远不及ehcache、redis,但DB是数据的源头。所以缓存中数据同步,即:及时更新缓存数据尤为重要。上图绿色部分”同步到red...原创 2021-08-16 21:17:56 · 478 阅读 · 0 评论 -
Prometheus + Grafana微服务监控<五>:Prometheus中警报AlterManager
一、Linux安装AlterManager原创 2021-04-25 20:42:52 · 457 阅读 · 0 评论 -
Prometheus + Grafana微服务监控<四>:Prometheus自定义埋点
目录一、Prometheus自定义指标类型1.1 Counter(计数器)1.2Gauge(仪表盘)1.3 Histogram(直方图)1.4Summary(摘要)二、PromQL语句2.1查询结果类型(3种)2.2 查询语句三、gateway自定义埋点3.1 引入jar包3.2 项目添加配置3.3 gateway创建全局过滤器四、Grafana自定义图表五、参考资料一、Prometheus自定义指标类型共4种指标类型:Counter、G...原创 2021-04-25 11:30:40 · 2636 阅读 · 0 评论 -
Prometheus + Grafana微服务监控<三>:Grafana安装及接入Prometheus
一、Linux安装Grafana原创 2021-04-25 10:42:30 · 509 阅读 · 0 评论 -
Prometheus + Grafana微服务监控<二>:prometheus页面使用
目录一、查看所有指标metrics二、参看某个指标的时序图三、菜单详情3.1:Alerts(报警配置)3.2:Status (Prometheus状态)一、查看所有指标metrics二、参看某个指标的时序图以node_memory_MemFree_bytes为例:三、菜单详情3.1:Alerts(报警配置)警报的三个状态: Inactive:表示当前报警信息即不是firing状态也不是pending状态...原创 2021-04-24 22:09:04 · 789 阅读 · 0 评论 -
Prometheus + Grafana微服务监控<一>:prometheus安装
目录一、Linux安装prometheus二、Linux安装node_exporter一、Linux安装prometheus1.解压jar包:tar -zxvf prometheus-2.26.0.linux-amd64.tar.gz2.修改配置文件:/home/prometheus/prometheus-2.26.0.linux-amd64/目录下的配置文件:prometheus.yml3.启动服务:./prometheus --config.file="/hom.原创 2021-04-24 21:30:14 · 264 阅读 · 0 评论 -
日志系统
一、目的 解决分布式中多节点日志处理原创 2021-03-23 10:11:36 · 649 阅读 · 0 评论