如何用java 5分钟实现一个最简单的mysql代理服务器

如何用java 5分钟实现一个最简单的mysql代理服务器,第1张

如何用java 5分钟实现一个最简单的mysql代理服务器
首先,准备开发工具套件,我们并不会引入过多工具包,仅仅需要:
java8
vertx 3
如果你是用maven做为项目管理工具,请将vertx 3引入:
1
2
3
4
5
<dependency>
<groupId>iovertx</groupId>
<artifactId>vertx-core</artifactId>
<version>332</version>
</dependency>
代码实现:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package
commaxleapmysqlproxy;
import
iovertxcoreAbstractVerticle;
import
iovertxcoreVertx;
import
iovertxcoreloggingLogger;
import
iovertxcoreloggingLoggerFactory;
import
iovertxcorenetNetClient;
import
iovertxcorenetNetServer;
import
iovertxcorenetNetSocket;
/

@author sneaky

@since 100
/
public
class
MysqlProxyServer
{
private
static
final
Logger
logger
=
LoggerFactorygetLogger(MysqlProxyServerclass);
public
static
void
main(String[]
args)
{
Vertxvertx()deployVerticle(new
MysqlProxyServerVerticle());
}
public
static
class
MysqlProxyServerVerticle
extends
AbstractVerticle
{
private
final
int
port
=
3306;
private
final
String
mysqlHost
=
"101006";
@Override
public
void
start()
throws
Exception
{
NetServer
netServer
=
vertxcreateNetServer();//创建代理服务器
NetClient
netClient
=
vertxcreateNetClient();//创建连接mysql客户端
netServerconnectHandler(socket
->
netClientconnect(port,
mysqlHost,
result
->
{
//响应来自客户端的连接请求,成功之后,在建立一个与目标mysql服务器的连接
if
(resultsucceeded())
{
//与目标mysql服务器成功连接连接之后,创造一个MysqlProxyConnection对象,并执行代理方法
new
MysqlProxyConnection(socket,
resultresult())proxy();

代理服务器的设置:
要设置代理服务器,必须先知道代理服务器地址和端口号,然后在ie或nc的代理服务器设置栏中填入相应地址和端口号就可以了。假设 有一个代理服务器的地址是proxynetnet,端口号是3000,在ie中的配置方法是使用查看菜单的internet选项/连接/代理服务器,然后在通过代理服务器访问internet选项前面的复选框中打上钩,在地址框中填入代理服务器地址,如本例中假设代理服务器地址是proxynetnet,再在端口框中填上端口号3000,点一下最下方的应用按钮,再点确定,设置完成。下次再使用ie时用户就会发现,无论 浏览什么网站,ie总是先与代理服务器连接。用nc的话,设置稍繁一点。使用edit菜单下的preferences菜单项,再选择advanced下的proxies,此时在右侧proxies选项中选择第二项manral proxy configuration,再点其右边的view…按钮,就会出现代理服务器的配置界面,在代理服务器地址和端口号栏中填入相应的内容,点击ok,退回到参数设置窗口,再点击ok,代理服务器的设置工作就完成了。当客户再次浏览网页时,就会自动向 设定的代理服务器发出申请,并得到数据,在浏览网站时,无论是ie或是nc都可以在浏览器状态栏中清楚地看到先连代理服务器,再连目标网站的过程。
但是,千万不要把proxy server和router搞混了,proxy server是建立在应用层上的服务软件,而router则是一台网络设备或一台电脑,它是工作在ip层的,数据到达ip层后就进行转发。一般一个proxy server工作在一台既具有modem和网卡的计算机上的。不同的proxy server软件提供的服务不同,一般都提供包时,首先要分析它是什么请求,如果是>(Proxy)是网络信息的中转站,比方说>代理服务器有很多种的,以Wingate为例,简单介绍一下: 1、做代理服务器的计算机需要两个网卡(例如外网卡1921681689、内网卡19216801)。外网卡如果是静态公网IP,请按照ISP设置,如果是动态获得的公网IP,则不用设置,如果是专网IP,例如1921681689(IP)2552552550(MASK)1921681681(GATEWAY) 2029916068(公网DNS,当然代理服务器本身提供DNS服务的话也可以设置为1921681689或19216801)。内网卡设置,例如19216801(IP)2552552550(MASK),请不要设置内网卡的默认网关,DNS可以设置也可以不设置。 2、安装wingate全部默认(不知道你有没有CD-KEY),重起后打开管理控制窗口(可以设密码,也可以不设置密码,最初的密码为空就可以进去)。然后修改>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10593947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存