当前位置:首页 > wifi设置知识 > 正文内容

mycat自定义路由算法

秋天2023年05月19日 01:08:07wifi设置知识183

想要更好地掌握mycat自定义路由算法,不仅需要了解其基础知识,还需要掌握mycat自增id等相关内容。本文将为您详细介绍这些内容,帮助您更好地应对mycat自定义路由算法相关的问题。

本文内容目录一览:

MySQL Mycat 分布式架构

参考:

图中是两组分片,红色我们称为shard1,蓝色我们称为shard2

51 52是服务碰枯敏器

两个3307互为主从(双笑枝主),3309是本地3307的从库

说明:没有明确说明是只在某一个节点上做的,就是两个节点都做

两台虚拟机 db01 db02

每台创建四个mysql实例:3307 3308 3309 3310

mysql软件我们之前已完成二进制安装,直接初始化即可

我们server-id规划为:db01上是7/8/9/10,db02上是17/18/19/20

"箭头指向谁是主库"

10.0.0.51:3307 ----- 10.0.0.52:3307

10.0.0.51:3309 ------ 10.0.0.51:3307

10.0.0.52:3309 ------ 10.0.0.52:3307

两个分片,每个分片四个mysql节点

shard1:

Master:10.0.0.51:3307

slave1:10.0.0.51:3309

Standby Master:10.0.0.52:3307

slave2:10.0.0.52:3309

shard2:

Master:10.0.0.52:3308

slave1:10.0.0.52:3310

Standby Master:10.0.0.51:3308

slave2:10.0.0.51:3310

shard1

10.0.0.51:3307 ----- 10.0.0.52:3307

db02

db01

db02

10.0.0.51:3309 ------ 10.0.0.51:3307

db01

10.0.0.52:3309 ------ 10.0.0.52:3307

db02

shard2

10.0.0.52:3308 ----- 10.0.0.51:3308

db01

db02

db01

10.0.0.52:3310 ----- 10.0.0.52:3308

db02

10.0.0.51:3310 ----- 10.0.0.51:3308

db01

这个复制用户在谁上建都行

注:如果中间出败禅现错误,在每个节点进行执行以下命令

常见方案:

360 Atlas-Sharding 360

Alibaba cobar 阿里

Mycat 开源

TDDL 淘宝

Heisenberg 百度

Oceanus 58同城

Vitess 谷歌

OneProxy

DRDS 阿里云

我们装的是openjdk,不是官方的那个

Mycat-server-xxxxx.linux.tar.gz

配置环境变量

我们mycat的命令也是在bin目录下

启动

8066就是对外提供服务的端口,9066是管理端口

连接mycat:

默认123456

db01:

我们一般先把原schema.xml备份,然后自己新写一个:

xml和html看起来差不多,xml是从下往上调用的

前三行我们不用看,直接从第四行schema开始看起:

定义了schema,然后以/schema结尾

为什么要用逻辑库?

业务透明化

此配置文件就是实现读写分离的配置

重启mycat

读写分离测试

总结:

以上案例实现了1主1从的读写分离功能,写操作落到主库,读操作落到从库.如果主库宕机,从库不能在继续提供服务了。

我们推荐这种架构

一写三读,

不设置双写的原因是:性能没提升多少,反而引起主键冲突的情况

配置文件:

之后重启:mycat restart

真正的 writehost:负责写操作的writehost

standby writeHost :和readhost一样,只提供读服务

我们此处写了两个writehost,默认使用第一个

当写节点宕机后,后面跟的readhost也不提供服务,这时候standby的writehost就提供写服务,

后面跟的readhost提供读服务

测试:

读写分离测试

对db01 3307节点进行关闭和启动,测试读写操作

结果应为另一台(52)的3307(17)是写,3309(19)是读

一旦7号节点恢复,此时因为7落后了,写节点仍是17

balance属性

负载均衡类型,目前的取值有3种:

writeType属性

负载均衡类型,目前的取值有2种:

switchType属性

-1 表示不自动切换

1 默认值,自动切换

2 基于MySQL主从同步的状态决定是否切换 ,心跳语句为 show slave status

datahost其他配置

dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1"

maxCon="1000":最大的并发连接数

minCon="10" :mycat在启动之后,会在后端节点上自动开启的连接线程,长连接,好处是连接速度快,弊端是占内存

tempReadHostAvailable="1"

这个一主一从时(1个writehost,1个readhost时),可以开启这个参数,如果2个writehost,2个readhost时

heartbeatselect user()/heartbeat 监测心跳

其他参数sqlMaxLimit自动分页,必须在启用分表的情况下才生效

创建测试库和表:

我们重启mycat后连接到8066

发现跟一个库一样,实际上已经分到不同的物理硬件上了

分片:对一个"bigtable",比如说t3表

热点数据表 核心表

(1)行数非常多,800w下坡

(2)访问非常频繁

分片的目的:

(1)将大数据量进行分布存储

(2)提供均衡的访问路由

分片策略:

范围 range 800w 1-400w 400w01-800w 不适用于业务访问不均匀的情况

取模 mod (取余数) 和节点的数量进行取模

枚举 按枚举的种类分,如移动项目按省份分

哈希 hash

时间 流水

优化关联查询(否则join的表在不同分片上,效率会比单库还要低)

全局表

ER分片

案例:移动统一:先拆出边缘业务,再按地域分片,但对应用来说是统一的

vim rule.xml

tableRule name="auto-sharding-long"

rule

columnsid/columns

algorithmrang-long/algorithm

/rule

function name="rang-long"

class="io.mycat.route.function.AutoPartitionByLong"

property name="mapFile"autopartition-long.txt/property

/function

===================================

vim autopartition-long.txt

0-10=0

11-20=1

创建测试表:

mysql -S /data/3307/mysql.sock -e "use taobao;create table t3 (id int not null primary key auto_increment,name varchar(20) not null);"

mysql -S /data/3308/mysql.sock -e "use taobao;create table t3 (id int not null primary key auto_increment,name varchar(20) not null);"

测试:

重启mycat

mycat restart

mysql -uroot -p123456 -h 127.0.0.1 -P 8066

insert into t3(id,name) values(1,'a');

insert into t3(id,name) values(2,'b');

insert into t3(id,name) values(3,'c');

insert into t3(id,name) values(4,'d');

insert into t3(id,name) values(11,'aa');

insert into t3(id,name) values(12,'bb');

insert into t3(id,name) values(13,'cc');

insert into t3(id,name) values(14,'dd');

取余分片方式:分片键(一个列)与节点数量进行取余,得到余数,将数据写入对应节点

vim schema.xml

table name="t4" dataNode="sh1,sh2" rule="mod-long" /

vim rule.xml

property name="count"2/property

准备测试环境

创建测试表:

mysql -S /data/3307/mysql.sock -e "use taobao;create table t4 (id int not null primary key auto_increment,name varchar(20) not null);"

mysql -S /data/3308/mysql.sock -e "use taobao;create table t4 (id int not null primary key auto_increment,name varchar(20) not null);"

重启mycat

mycat restart

测试:

mysql -uroot -p123456 -h10.0.0.52 -P8066

use TESTDB

insert into t4(id,name) values(1,'a');

insert into t4(id,name) values(2,'b');

insert into t4(id,name) values(3,'c');

insert into t4(id,name) values(4,'d');

分别登录后端节点查询数据

mysql -S /data/3307/mysql.sock

use taobao

select * from t4;

mysql -S /data/3308/mysql.sock

use taobao

select * from t4;

t5 表

id name telnum

1 bj 1212

2 sh 22222

3 bj 3333

4 sh 44444

5 bj 5555

sharding-by-intfile

vim schema.xml

table name="t5" dataNode="sh1,sh2" rule="sharding-by-intfile" /

vim rule.xml

tableRule name="sharding-by-intfile"

rule columnsname/columns

algorithmhash-int/algorithm

/rule

/tableRule

function name="hash-int" class="org.opencloudb.route.function.PartitionByFileMap"

property name="mapFile"partition-hash-int.txt/property

property name="type"1/property

property name="defaultNode"0/property

/function

partition-hash-int.txt 配置:

bj=0

sh=1

DEFAULT_NODE=1

columns 标识将要分片的表字段,algorithm 分片函数, 其中分片函数配置中,mapFile标识配置文件名称

准备测试环境

mysql -S /data/3307/mysql.sock -e "use taobao;create table t5 (id int not null primary key auto_increment,name varchar(20) not null);"

mysql -S /data/3308/mysql.sock -e "use taobao;create table t5 (id int not null primary key auto_increment,name varchar(20) not null);"

重启mycat

mycat restart

mysql -uroot -p123456 -h10.0.0.51 -P8066

use TESTDB

insert into t5(id,name) values(1,'bj');

insert into t5(id,name) values(2,'sh');

insert into t5(id,name) values(3,'bj');

insert into t5(id,name) values(4,'sh');

insert into t5(id,name) values(5,'tj');

a b c d

join

t

select t1.name ,t.x from t1

join t

select t2.name ,t.x from t2

join t

select t3.name ,t.x from t3

join t

使用场景:

如果你的业务中有些数据类似于数据字典,比如配置文件的配置,

常用业务的配置或者数据量不大很少变动的表,这些表往往不是特别大,

而且大部分的业务场景都会用到,那么这种表适合于Mycat全局表,无须对数据进行切分,

要在所有的分片上保存一份数据即可,Mycat 在Join操作中,业务表与全局表进行Join聚合会优先选择相同分片内的全局表join,

避免跨库Join,在进行数据插入操作时,mycat将把数据分发到全局表对应的所有分片执行,在进行数据读取时候将会随机获取一个节点读取数据。

vim schema.xml

table name="t_area" primaryKey="id" type="global" dataNode="sh1,sh2" /

后端数据准备

mysql -S /data/3307/mysql.sock

use taobao

create table t_area (id int not null primary key auto_increment,name varchar(20) not null);

mysql -S /data/3308/mysql.sock

use taobao

create table t_area (id int not null primary key auto_increment,name varchar(20) not null);

重启mycat

mycat restart

测试:

mysql -uroot -p123456 -h10.0.0.52 -P8066

use TESTDB

insert into t_area(id,name) values(1,'a');

insert into t_area(id,name) values(2,'b');

insert into t_area(id,name) values(3,'c');

insert into t_area(id,name) values(4,'d');

A

join

B

为了防止跨分片join,可以使用E-R模式

A join B

on a.xx=b.yy

join C

on A.id=C.id

table name="A" dataNode="sh1,sh2" rule="mod-long"

childTable name="B" joinKey="yy" parentKey="xx" /

/table

Sharding-Jdbc与MyCat区别

上一篇 Sharding-Jdbc的分片算法及分表分库

下一篇 Mybatis的整体执行原理图解

推荐阅读:

MySQL自带主宽哗灶从复制原理

MyCat实现读写分离与动态数据慎扮源切换

分表分库与分区的区别及拆分策略

MyCat的分片查询原理

Sharding-Jdbc实现读写分离

Sharding-Jdbc的分片算法及分芦塌表分库

Mycat 分片规则

在数据切分处理中,特别是水平切分中,中间件最终要的两个处理过程就是数据的切分、数据的聚合。选择合适的切分规则,至关重要,因为它决定了后续数据聚合的难易程度,甚至可以避免跨库的数据聚合处理。

避跨库 join 的很好的方式,但不是所有的业务场景都适合这样的规则,因此本文将讲闭迅述如何选择合适的切分规则。

如果业务中有些数据类似于数据字典,比如配置文件的配置,常用业务的配置或者数据量不大很少变动的表,这些表往往不是特别大,而且大部分的业务场景都会用到,那么这种表适合于 Mycat 全局表,无须对数据

进行切分,只要在所有的分片上保存一份数据即可, Mycat 在 Join 操作中,业务表与全局表进行 Join 聚合会优先选择相同分片内的全局表 join,避免跨库 Join,在进行数据插入操作时, mycat 将把数据分发到全局表对应的所有分片执行,在进行数据读取时候将会随机获取一个节点读取数据。

目前 Mycat 没有做全局表的数据一致性检查,后续版本 1.4 之后可能会提供全局表一致性检查,检查每个分片的数据一致性。

全局表的配置如下:

有一类业务,例如订单(order)跟订单明细(order_detail) ,明细表会依赖于订单,也就是说会存在表的主从关系,这类似业务的切分可以抽象出合适的切分规则,比如根据用户 ID 切分,其他相关的表都依赖于用户 ID,再或者根据订单 ID 切分,总之部分业务总会可以抽象出父子关系的表。这类表适用于 ER 分片表,子表的记录与所关联的父表记录存放在同一个数据分片上,避免数据 Join 跨库操作。

以 order 与 order_detail 例子为例, schema.xml 中定义如下的分片配置,order,order_detail 根据 order_id进行数据切分,保证相同 order_id 的数据分到同一个分片上,在进行数据插入操作时, Mycat 会获取 order 所在的分片,然后将 order_detail 也插入到 order 所在的分片。

有一类业务场景是 “主表 A+关系表+主表 B” ,举例来说就是商户会员+订单+商户,对应这类业务,如何切分?

从会员的角睁念度,如果需要查询会员购买的订单,那按照会员进行切分即可,但是如果要查询商户当天售出的订单,那又需要按照商户做切分,可是如果既要按照会员又要按照商户切分,几乎是无法实现,这类业务如何选择切分规则非常难。目前还暂时无法很好支持这种模式下的 3 个表之间的关联。目前总的原则是需要从业务角度来看,关系表更偏向哪个表,即“A 的关系” 还是“B 的关系” ,来决定关系表跟从那个方向存储,未来 Mycat版本中将考虑将中间表进行双向复制,以实现从 A-关系表 以及 B-关系表的双向关联查询如下图所示:

当你没人任何字段可以作为分片字段的时候,主键分片就是唯一选择,其优点是按照主键的查询最快,当采用自动增长的序列号作为主键时,还能比较均匀的将数据分片在不同的节点上。

若有某个合适的业务字段比较合适作为分片字段,则建议采用此业务字段分片,选择分片字段的条件如下:

对于非主键分片的 table, 填写属性 primaryKey,此时 MyCAT 会将你根据主键查询的 SQL 语句的第一次执行结果进行分析,确定该 Table 的某个主键在什么分片上,并进行主键到分片 ID 的缓存。第二次或后续查询

mycat 会优先从缓存中查询是否有 id–node 即主键到分片的映射,如果有直接查询,通过此种方法提高了非主键分片的查询性能。

通过在配置文件中配置可能的枚举 id,自己配置分片,本规则适用于特定的场景悉态困,比如有些业务需要按照省份或区县来做保存,而全国省份区县固定的,这类业务使用本条规则,配置如下:

上面 columns 标识将要分片的表字段, algorithm 分片函数,

其中分片函数配置中, mapFile 标识配置文件名称, type 默认值为 0, 0 表示 Integer,非零表示 String;

所有的节点配置都是从 0 开始, 0 代表节点 1:

本条规则类似于十进制的求模运算,区别在于是二进制的操作,是取 id 的二进制低 10 位,即 id 二进制1111111111 。

此算法的优点在于如果按照 10 进制取模运算,在连续插入 1 -10 时候 1 -10 会被分到 1 -10 个分片,增大了插入的事务控制难度,而此算法根据二进制则可能会分到连续的分片,减少插入事务事务控制难度。

配置说明:

上面 columns 标识将要分片的表字段, algorithm 分片函数,partitionCount 分片个数列表, partitionLength 分片范围列表

分区长度:默认为最大 2^n=1024 ,即最大支持 1024 分区

约 束 :

count,length 两个数组的长度必须是一致的。

1024 = sum((count[i] length[i])). count 和 length 两个向量的点积恒等于 1024

用法例子:

如果需要平均分配设置:平均分为 4 分片, partitionCount partitionLength=1024

此分片适用于,提前规划好分片字段某个范围属于哪个分片,

配置说明:

上面 columns 标识将要分片的表字段,algorithm 分片函数,rang-long 函数中 mapFile 代表配置文件路径,defaultNode 超过范围后的默认节点。

所有的节点配置都是从 0 开始,及 0 代表节点 1 ,此配置非常简单,即预先制定可能的 id 范围到某个分片:

此规则为对分片字段求摸运算。

配置说明:

上面 columns 标识将要分片的表字段, algorithm 分片函数,

此种配置非常明确即根据 id 进行十进制求模预算,相比固定分片 hash,此种在批量插入时可能存在批量插入单事务插入多数据分片,增大事务一致性难度。

此规则为按天分片:

配置说明:

columns :标识将要分片的表字段

algorithm :分片函数

dateFormat :日期格式

sBeginDate :开始日期

sEndDate:结束日期

sPartionDay :分区天数,即默认从开始日期算起,分隔 10 天一个分区

如果配置了 sEndDate 则代表数据达到了这个日期的分片后后循环从开始分片插入。

此种规则是取模运算与范围约束的结合,主要为了后续数据迁移做准备,即可以自主决定取模后数据的节点分布。

partition-pattern.txt内容如下:

配置说明:

上面 columns 标识将要分片的表字段, algorithm 分片函数,patternValue 即求模基数, defaoultNode默认节点,如果配置了默认,则不会按照求模运算;

mapFile 配置文件路径:

配置文件中, 1 -32 即代表 id%256 后分布的范围,如果在 1 -32 则在分区 1 ,其他类推,如果 id 非数据,则会分配在 defaoultNode 默认节点:

将缓存数据分片到集群的不同节点,分片规则可以使用什么算法

以每24小时作为一份时间(而非自然日),根据用户的配置有两种工作模式:带状模式中,用户仅定义开始日期时,从开始日期(含)开始,每份时间1个分片地无限增加下去;兄迅环状模式中,用户定义了开始日期和结束日期时,以结束日期(含)和开始日期(含)之间的时间份数作为分片总数(分片数量固定),以类似取模的方式路由到这些分片里。

1. DBLE 启动时,读取用户在 rule.xml 配置的 sBeginDate 来确定起始时间

2. 读取用户在 rule.xml 配置的 sPartionDay 来确定每个 MySQL 分片承载多少天内的数据

3. 读取用户在 rule.xml 配置的 dateFormat 来确定分片索引的日期格式

4. 在 DBLE 的运行过程中,用户访问使用这个算法的表时,WHERE 子句中的分片索引值(字符串),会被提取出来尝试转换成 Java 内部的时间类型

5. 然后求分片索引值与起始时间的差,除以 MySQL 分片承载的天数,确定所属分片

1. DBLE 启动时,读取用户在 rule.xml 配置的起始时间 sBeginDate、终止时间 sEndDate 和每个 MySQL 分片承载多少天数据 sPartionDay

2. 根据用户设置,建立起以 sBeginDate 开始,每 sPartionDay 天一个分片,直到 sEndDate 为止的一个环,把分片串联串联起来

3. 读取用户在 rule.xml 配置的 defaultNode

4. 在 DBLE 的运行过程中,用户访问使用这个算法的表时,WHERE 子句中的分片索引值(字符串),会被提取出来尝试转换成 Java 内部的日期类型

5. 然后求分片索袜尘洞引值与起始日期的差:如果分片索引值不早于 sBeginDate(哪怕晚于 sEndDate),就以 MySQL 分片承载的天数为模数,对分片索引值求模得到所属分片;如果分片索引值早于 sBeginDate,就会被放到 defaultNode 分片上

与MyCat的类似分片算法对比

中间件

DBLE

MyCat

分片算法种类 date 分区算法 按日期(天)分片

两种中间件的取模范围分片算法使用上无差别

开发注意点

【分片索引】1. 必须是字符串,而且 java.text.SimpleDateFormat 能基于用户指定的 dateFormat 来转换成 java.util.Date

【分片索引】2. 提供带状模式和环状模式两种模式

【分片索引】3. 带状模式以 sBeginDate(含)起,以 86400000 毫秒(24 小时整)为一份,每 sPartionDay 份为一个分片,理论上分片数量可以无限增长,但是出现 sBeginDate 之前的数据而且没有设定 defaultNode 的话,会路由失败(如果有 defaultNode,则路由至 defaultNode)

【分片索引】4. 环状模式以 86400000 毫秒(24 小时整)为告枯一份,每 sPartionDay 份为一个分片,以 sBeginDate(含)到 sEndDate(含)的时间长度除以单个分片长度得到恒定的分片数量,但是出现 sBeginDate 之前的数据而且没有设定 defaultNode 的话,会路由失败(如果有 defaultNode,则路由至 defaultNode)

【分片索引】5. 无论哪种模式,分片索引字段的格式化字符串 dateFormat 由用户指定

【分片索引】6. 无论哪种模式,划分不是以日历时间为准,无法对应自然月和自然年,且会受闰秒问题影响

运维注意点

【扩容】1. 带状模式中,随着 sBeginDate 之后的数据出现,分片数量的增加无需再平衡

【扩容】2. 带状模式没有自动增添分片的能力,需要运维手工提前增加分片;如果路由策略计算出的分片并不存在时,会导致失败

【扩容】3. 环状模式中,如果新旧 [sBeginDate,sEndDate] 之间有重叠,需要进行部分数据迁移;如果新旧 [sBeginDate,sEndDate] 之间没有重叠,需要数据再平衡

配置注意点

【配置项】1. 在 rule.xml 中,可配置项为 propertyname="sBeginDate" 、 propertyname="sPartionDay" 、 propertyname="dateFormat" 、 propertyname="sEndDate" 和 propertyname="defaultNode"

【配置项】2.在 rule.xml 中配置 propertyname="dateFormat",符合 java.text.SimpleDateFormat 规范的字符串,用于告知 DBLE 如何解析sBeginDate和sEndDate

【配置项】3.在 rule.xml 中配置 propertyname="sBeginDate",必须是符合 dateFormat 的日期字符串

【配置项】4.在 rule.xml 中配置 propertyname="sEndDate",必须是符合 dateFormat 的日期字符串;配置了该项使用的是环状模式,若没有配置该项则使用的是带状模式

【配置项】5.在 rule.xml 中配置 propertyname="sPartionDay",非负整数,该分片策略以 86400000 毫秒(24 小时整)作为一份,而 sPartionDay 告诉 DBLE 把每多少份放在同一个分片

【配置项】6.在 rule.xml 中配置 propertyname="defaultNode" 标签,非必须配置项,不配置该项的话,用户的分片索引值没落在 mapFile 定义

通过这篇文章,您已经了解了如何设置和管理无线网络和路由器,让您的上网更加顺畅和快速。

扫描二维码推送至手机访问。

版权声明:本文由路由设置网发布,如需转载请注明出处。

本文链接:https://www.shoulian.org/luyou/post/37996.html

分享给朋友:

“mycat自定义路由算法” 的相关文章

路由器怎么放才稳定

路由器怎么放才稳定

今天给各位分享路由器怎么放才稳定的知识,其中也会对路由器的如何设置才能快速和稳定进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站 本文内容目录一览: 1、路由器怎么设置更稳定 2、路由器怎么设置稳定性 3、如何设置路由器让wifi更稳定? 4、路由器怎么设置最稳定 5、怎么设...

苹果路由器怎么使用教程

苹果路由器怎么使用教程

本篇文章给大家谈谈苹果路由器怎么使用教程,以及苹果路由器怎么使用教程图解对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文内容目录一览: 1、苹果路由器怎么设置 2、苹果路由器怎么设置 苹果路由器设置教程 3、怎么设置苹果路由器? 4、如何设置苹果的路由器 5、苹果无线路由...

电信路由器密码怎么找到

电信路由器密码怎么找到

当朋友们看到这个文章时想必是想要了解电信路由器密码怎么找到相关的知识,这里同时多从个角度为大家介绍电信路由器怎么查看无线网络密码相应的内容。 本文内容目录一览: 1、电信宽带用户名和密码怎么查看 2、电信路由器忘记密码怎么办。求解 3、家里用的电信网wifi密码忘了咋办? 4、电信宽带路...

路由器怎么连米家

路由器怎么连米家

本篇文章给大家谈谈路由器怎么连米家,以及用米家设置路由器对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文内容目录一览: 1、米家APP上只能链接小米路由器 2、米家怎么添加路由器 3、米家怎么连接小米路由器 4、小米放大器如何连接路由器 米家APP上只能链接小米路由器 你问...

路由器怎么关掉双wifi

路由器怎么关掉双wifi

今天给各位分享路由器怎么关掉双wifi的知识,其中也会对路由器怎么关掉双频进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站 本文内容目录一览: 1、为什么路由器会有两个wifi信号如何设置 2、联通光猫有两个wifi,怎么关掉一个? 3、一个路由器有两个wifi信号,如何关掉其中一个...

路由器怎么设置内网拨号

路由器怎么设置内网拨号

今天和朋友们分享路由器怎么设置内网拨号相关的知识,相信大家通过本文介绍也能对拨号上网怎么设置无线路由器有自已的收获和理解。自己轻松搞问题。本文内容目录一览: 1、路由器怎样设置拨号上网 2、路由器怎么设置拨号 3、tp link无线路由器 如何设置宽带拨号上网 路由器怎样设置拨号上网 设置...