背景 随着项目运行时间逐渐增加,数据库中的数据也越来越多,虽然加索引,优化查询,但是数据量太大,还是会影响查询效率,也给数据库增加了负载. 再加上冷数据基本不使用的场景,决定采用分表来处理数据,从而来提高系统性能. sharding jdbc 介绍 官方文档在这里. Sharding-jdbc 定位是轻量级的java框架,在java 的JDBC层提供额外功能.它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架. 适用…
周五晚上告警群突然收到了一条告警消息,点开一看,应用 fullGC 了. 于是赶紧联系运维下载堆内存快照,进行分析. 内存分析 使用 MemoryAnalyzer 打开堆文件 mat 下载地址:https://archive.eclipse.org/mat/1.8/rcp/MemoryAnalyzer-1.8.0.20180604-win32.win32.x86_64.zip 下载下来后需要调大一下 MemoryAnalyzer.ini 配置文件里的-Xmx2048m 打开堆文件后如图: 发现有…
基础分库 以下实例基于shardingsphere 4.1.0 + SpringBoot 2.2.5.RELEASE版本 依赖导入: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.compile.sourceEncoding>UTF-8</project.compile.sourceEncoding> <spr…
http://lwfs.net/2005/11/28/10/ #!/bin/bash IP0= IP1= GW0= GW1= NET0= NET1= DEV0=eth0 DEV1=eth1 # comment the next two line after first run this script. echo 200 cernet >>/etc/iproute2/rt_tables echo 210 chinanet >>/etc/iproute2/rt_tables ip ro…
sharding jdbc 2.x系列详解参见https://www.cnblogs.com/zhjh256/p/9221634.html. 最近将sharding jdbc的配置从xml切换到了spring boot.首先引入依赖: <dependency> <groupId>io.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId>…
Sharding JDBC整合SpringBoot 2.x 和 MyBatis Plus 进行分库分表 交易所流水表的单表数据量已经过亿,选用Sharding-JDBC进行分库分表.MyBatis-Plus和MyBatis的整合方式完全一样,因此需要整合MyBatis的也可参考.采用Sharding-JDBC 作为分表插件的原因是配置方便,只需要添加Maven依赖导入Jar包而不需要中间件,且对业务代码无侵入.目前在实际业务中用的是单库多表,将交易流水表分成了100张. 配置经过生产环境的检验,…
今天,这个专题应用下route-map,在这个之前,有很多内容需要掌握,不是简单的制定一个路由图就可以了. -------- 本次专题理论的东西居多,但是不是复制黏贴,是加上自己的理解思想. 第一个要解决的问题:路由策略和策略路由有什么区别?到底为何物? 先说策略路由,影响的不是路由表的生产,策略路由又叫PBR,是Policy-based routing策略基于路由,那么这个路由表存在是已经存在而且稳定的. 用TCP/IP路由技术一书的表述就是:策略路由就是一个复杂的静态路由. 总结:策略路由是…
环境 jdk:1.8 framework: spring boot, sharding jdbc database: MySQL 搭建步骤 在pom 中加入sharding 依赖 <dependency> <groupId>io.shardingjdbc</groupId> <artifactId>sharding-jdbc-core-spring-boot-starter</artifactId> <version>2.0.3<…
企业项目中所有的任务调动通过XXL-Job 去管理调度 路由策略类似于Nginx哦 XXL-Job实际封装的是Quartz. 关于分片广播,执行器集群部署时候,任务路由策略选择“”分片广播”情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务.可根据分片参数开发分片任务 分片广播:所有的Job一起执行! 等于没集群了啊  Job会重复执行了 轮训比较好一些 阻塞处理策略:调度过于密集执行器来不及处理的处理策略,策略包括:单机串行(默认).丢弃后续调度.覆盖之前调度.…
 CCNP路由实验之九 路由策略 路由器在公布与接收路由信息时,可能须要实施一些策略.以便对路由信息进行过滤,比如仅仅接收或公布满足一定条件的路由信息. 一种路由协议可能须要引入其它的路由协议发现的路由信息,路由器在引入其它路由协议的路由信息时,可能仅仅须要引入一部分满足条件的路由信息,并控制所引入的路由信息的某些属性.以使其满足本协议的要求. 路由策略就是为了改变网络流量所经过的途径而改动路由信息的技术,主要通过改变路由属性(包含可达性)来实现,路由策略是控制层面的行为.操作的对象是路由条…
一,引言 上一片文章我们使用 Azure Traffic Manager 分发用户请求,同时演示了两种路由策略,“Performance”,“Geographic”的两种方式,今天我们继续讲解 Traffic Manager profile 的其他几种路由策略.我们依旧先来看看我们的架构图,废话不多说,开始今天的分享. 我们需要为流量管理器配置文件配置中的每个终结点分配权重. 然后,系统会根据分配给每个终结点的权重进行用户流量路由. 该权重是从 1 到 1,000 的整数. 分配给终结点的权重值…
面试问题背景 本面试题来自国内最大通信技术公司之一,央企,有很多金融网项目. 了解行业的同学,一定知道事哪个企业. 上面试问题(取自百哥收集整理的面试总结大全,关注百哥CSDN或知乎,不定期分享名企面经) 问题分析 很显然,按面试总结里的答案,并不是面试官想要的,也并不能解决数据分流与互备的需求. 那么,怎样才能实现呢,一起来分析. OSPF选举路由优劣的方式,是看cost值,先看下普通的单进程ospf,通过修改cost值是否能实现分流 这里所有接口带宽相同,默认cost相同,所以会形成等价路由…
这是面试的时候问道的一个问题,这里跟大家分享一下 路由策略(Routing Policy)是为了改变网络流量所经过的途径而修改路由信息的技术: PBR(policy-based-route)是一种依据用户制定的策略进行路由选择的机制: 可以把路由策略理解为一种改变路由属性的技术,策略路由是一种工程师设置的一种路由: 这里路由策略用routing policy代替,策略路由用PBR代替: routing policy通过改变了路由的属性,然后路由器根据路由属性然后达到路由过滤.负载均衡等目的: P…
一,为什么要使用druid数据源? 1,druid的优点 Druid是阿里巴巴开发的号称为监控而生的数据库连接池 它的优点包括: 可以监控数据库访问性能 SQL执行日志 SQL防火墙 但spring boot和shardingjdbc默认使用的数据库连接池是 HikariCP 如果要在shardingsphere中使用druid,需要在项目中整合后才能生效 2,druid的官方代码站: https://github.com/alibaba/druid/ 说明:刘宏缔的架构森林是一个专注架构的博客…
前文我们了解了IS-IS路由聚合和认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15306645.html:今天我们来聊一聊路由控制技术中的路由策略相关话题: 为什么要路由控制? 在企业网络的设备通信中,经常面临一些非法流量访问的安全性及流量路径不优等问题,为了保证数据访问的安全性.提高链路带宽利用率,我们就需要对网络中的流量行为进行控制:比如控制网络流量可达性.调整网络流量路径等: 路由控制应用场景 控制网络流量可达性 提示:如上图所示,我…
前文我们了解了路由过滤和路由过滤工具Filter-Policy使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15316188.html:今天我们来聊一聊路由策略工具Route-Policy工具的相关话题: Route-Policy Route-Policy是路由策略工具,主要用来过滤路由和修改路由属性的工具:它的可以调用条件匹配工具ACL或前缀列表IP-Prefix来作为条件,匹配符合条件的路由,然后再对路由进行修改:比如允许路由或者拒绝对应…
作者 | 落语 阿里云云原生技术团队 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复"入门",即可获取 Serverless 系列文章 PPT. 流量管理从面向实例到面向应用 在 Serverless 场景下,由于弹性能力以及底层计算实例易变的特性,后端应用实例需要频繁上下线,传统的 ECS 场景下的负载均衡管理方式不再适用. SAE 产品提供给用户面向应用的流量管理方式,不再需要关心弹性场景以及发布场景的实例上…
在 Nacos 的路由策略中有 3 个比较重要的内容:权重.保护阈值和就近访问.因为这 3 个内容都是彼此独立的,所以今天我们就单独拎出"保护阈值"来详细聊聊. 保护阈值 保护阈值(ProtectThreshold):为了防止因过多实例故障,导致所有流量全部流入剩余健康实例,继而造成流量压力将剩余健康实例被压垮形成雪崩效应.应将健康保护阈值定义为⼀个 0 到 1 之间的浮点数.当域名健康实例数占总服务实例数的比例小于该值时,无论实例是否健康,都会将这个(健康或不健康的)实例返回给客户端…
定位为轻量级Java框架,在Java的JDBC层提供的额外服务. 它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架. 适用于任何基于JDBC的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC. 支持任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP等. 支持任意实现JDBC规范的数据库.目前…
本篇根据上一篇利用数据库的几种元数据来仿造Apache公司的开源DbUtils工具类集合来编写自己的JDBC框架.也就是说在本篇中很大程度上的代码都和DbUtils中相似,学完本篇后即更容易了解DbUtils是如何使用的. 我们在使用JDBC对数据库进行操作时,基本都是在dao层,也就是说在dao层封装了最基本的增删改查(CRUD)的方法,但是我们以前都是怎么写的呢? public class UserDao { //添加用户 public void add(User user) throws…
1.项目背景 前几天写了一篇WebSocket推送的博客:WebSocket :用WebSocket实现推送你必须考虑的几个问题 支持的连接数大概几千个,具体数量依赖于tomcat能并发的线程数,但很多时候生产环境应用的话几千个肯定是不行的,所以本问介绍Nginx+WebSocket的实现思路及代码. 2.实现思路 依照设计模式中的 迪米特法则 外部调用模块来讲要尽量少的参与推送模块的逻辑,以达到解耦的目的,所以我们虽然通过Nginx+WebSocket做了集群策略,但是不应该让外部感知.对于外…
package demo; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; i…
package demo; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; im…
MVC 路由 重定向 问题记录 1)MVC 路由 入口方法: (Global.asax)Application_Start()--->(App_Start/RouteConfig.cs)RegisterRoutes()--->(Controllers/)Controller--->(Views/)Action--->(Views/Action/)View 其中Application_Start()代码如下: <span style="font-size:14px;f…
程序参数 PARAMS = { "start_time": "2017-02-01 00:00:00", "end_time": "2017-08-01 00:00:00", "slippage": 0.003, # 此处"slippage"包含佣金(千二)+交易滑点(千一) "account_initial": {"huobi_cny_cash"…
拓扑如上 任务1:去除环路双ospf 引入 造成路由环路一边是 1             一边是10关掉任意lo口都会生成新的路由表 但是路由表指向不对 变成了一个圆 我们可以采用引入路由打上tag 后 在过滤tag 从而消除路由打环的问题  阻止环路 就像生成树一样 修剪一条没有环路的路 列如在RT2的g0/0/1 上 打上tag 20 在RT4上的G0/0/1上过滤掉tag 20 (路由引入打上tag) 这样做阻止了RT1上面的环路 就不会有路由表从下面来 在RT4的G0/0/0上打上ta…
工作中公司要求针对经销商PC端和工厂PC端的访问地址固定访问. 经销商PC端 http://localhost/ 工厂PC端   http://localhost/fac 文件磁盘路径: /crm/nginx-pages |---- admin |---- adminfac 经销商端: location ^~ /admin { root /crm/nginx-pages/; index index.html; rewrite ^/admin/(.*)\.*$ /admin/$1 break; }…
sjdbc有读写分离的功能,要使用这个功能,在创建数据源对象是要使用类:MasterSlaveDataSource,并且设置主备数据源和数据库名称 这个对象有下面的属性: name:数据库的名称 masterDataSource:主数据源对象 slaveDataSources:备库数据源类别 slaveLoadBalanceStrategy:选从算法 /** * 获取主或从节点的数据源名称. * * @param sqlStatementType SQL类型 * @return 主或从节点的数据…
感觉大神已经写好了,自己膜拜下下, 送上大神地址:http://www.cnblogs.com/zhongxinWang/p/4262650.html 这篇博客主要是理论的说明了什么是分库分表,路由等负载! 献上大牛们的童话故事:http://dangdangdotcom.github.io/sharding-jdbc/00-overview/…
安装mysql5.7单机 1.获取安装yum包 [root@iZm5e7sz135n16ua2rmbk6Z local]# wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 你可以下载到你的本地,然后上传到linux某目录下 2.安装软件源,在其目录下输入 [root@iZm5e7sz135n16ua2rmbk6Z local]# rpm -Uvh mysql57-community-release…