Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
webmagic
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
沈俊林
webmagic
Commits
ced79630
Commit
ced79630
authored
Apr 25, 2014
by
yihua.huang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
specify jndi and jmx #98
parent
95d3802e
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
28 additions
and
14 deletions
+28
-14
SpiderMonitor.java
...ain/java/us/codecraft/webmagic/monitor/SpiderMonitor.java
+28
-14
No files found.
webmagic-core/src/main/java/us/codecraft/webmagic/monitor/SpiderMonitor.java
View file @
ced79630
...
...
@@ -5,11 +5,14 @@ import us.codecraft.webmagic.Spider;
import
us.codecraft.webmagic.processor.example.GithubRepoPageProcessor
;
import
us.codecraft.webmagic.processor.example.OschinaBlogPageProcessor
;
import
javax.management.*
;
import
javax.management.JMException
;
import
javax.management.MBeanServer
;
import
javax.management.ObjectName
;
import
javax.management.remote.JMXConnectorServer
;
import
javax.management.remote.JMXConnectorServerFactory
;
import
javax.management.remote.JMXServiceURL
;
import
java.io.IOException
;
import
java.lang.management.ManagementFactory
;
import
java.rmi.registry.LocateRegistry
;
import
java.rmi.registry.Registry
;
import
java.util.ArrayList
;
...
...
@@ -23,6 +26,7 @@ import java.util.concurrent.atomic.AtomicInteger;
*/
public
class
SpiderMonitor
{
public
static
final
int
RMI_PORT
=
14721
;
private
List
<
SpiderStatusMBean
>
spiderStatuses
=
new
ArrayList
<
SpiderStatusMBean
>();
public
List
<
SpiderStatusMBean
>
getSpiders
()
{
...
...
@@ -52,7 +56,7 @@ public class SpiderMonitor {
return
new
SpiderStatus
(
spider
,
monitorSpiderListener
);
}
public
static
SpiderMonitor
create
(){
public
static
SpiderMonitor
create
()
{
return
new
SpiderMonitor
();
}
...
...
@@ -89,31 +93,41 @@ public class SpiderMonitor {
}
public
void
jmxStart
()
throws
IOException
,
JMException
{
jmxStart
(
14721
);
public
SpiderMonitor
jndiStart
(
int
port
)
throws
IOException
,
JMException
{
Registry
registry
=
LocateRegistry
.
createRegistry
(
port
);
return
this
;
}
public
SpiderMonitor
jndiStart
()
throws
IOException
,
JMException
{
return
jndiStart
(
RMI_PORT
);
}
public
SpiderMonitor
jmxStart
()
throws
IOException
,
JMException
{
return
jmxStart
(
"localhost"
,
RMI_PORT
);
}
public
void
jmxStart
(
int
rmiPort
)
throws
IOException
,
JMException
{
public
SpiderMonitor
jmxStart
(
String
jndiServer
,
int
rmiPort
)
throws
IOException
,
JMException
{
String
jmxServerName
=
"WebMagic"
;
// jdkfolder/bin/rmiregistry.exe 9999
Registry
registry
=
LocateRegistry
.
createRegistry
(
rmiPort
);
MBeanServer
mbs
=
MBeanServerFactory
.
createMBeanServer
(
jmxServerName
);
//MBeanServer mbs
= ManagementFactory.getPlatformMBeanServer();
// start JNDI
MBeanServer
localServer
=
ManagementFactory
.
getPlatformMBeanServer
();
ObjectName
objName
;
JMXServiceURL
url
=
new
JMXServiceURL
(
"service:jmx:rmi:///jndi/rmi://
localhost
:"
+
rmiPort
+
"/"
+
jmxServerName
);
JMXServiceURL
url
=
new
JMXServiceURL
(
"service:jmx:rmi:///jndi/rmi://
"
+
jndiServer
+
"
:"
+
rmiPort
+
"/"
+
jmxServerName
);
System
.
out
.
println
(
"JMXServiceURL: "
+
url
.
toString
());
JMXConnectorServer
jmxConnServer
=
JMXConnectorServerFactory
.
newJMXConnectorServer
(
url
,
null
,
mbs
);
System
.
out
.
println
(
"Please replace localhost of your ip if you want to connect it in remote server."
);
JMXConnectorServer
jmxConnServer
=
JMXConnectorServerFactory
.
newJMXConnectorServer
(
url
,
null
,
localServer
);
jmxConnServer
.
start
();
for
(
SpiderStatusMBean
spiderStatus
:
spiderStatuses
)
{
objName
=
new
ObjectName
(
jmxServerName
+
":name="
+
spiderStatus
.
getName
());
mbs
.
registerMBean
(
spiderStatus
,
objName
);
}
localServer
.
registerMBean
(
spiderStatus
,
objName
);
}
return
this
;
}
public
static
void
main
(
String
[]
args
)
throws
JMException
,
NullPointerException
,
...
...
@@ -126,7 +140,7 @@ public class SpiderMonitor {
SpiderMonitor
spiderMonitor
=
new
SpiderMonitor
();
spiderMonitor
.
register
(
oschinaSpider
,
githubSpider
);
spiderMonitor
.
jmxStart
();
spiderMonitor
.
j
ndiStart
().
j
mxStart
();
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment