新建一个应用项目,并下载相对应的Java探针。
根据安装步骤进行Java探针的安装,安装后对中间件服务进行重新启动,听云Server探针监控才能生效。
等待约5分钟,java应用服务有http请求进入时,数据将被展示在列表中。
步骤阅读
我们将在列表中看到“应用服务器响应时间”“错误率”“吞吐率”“Web耗时”等各项应用数据信息以及应用之间的拓扑关系,根据不同问题,菜单导航也将细化对每一项性能问题的分析。
Java UDP通信简单实现
1、Java实现方式
1)server端
/**
* UDPserver端
* */
public class UdpServer {
// 定义一些常量
private final intMAX_LENGTH = 1024 // 最大接收字节长度
private final intPORT_NUM = 5066 // port号
// 用以存放接收数据的字节数组
private byte[] receMsgs = new byte[MAX_LENGTH]
// 数据报套接字
private DatagramSocket datagramSocket
// 用以接收数据报
private DatagramPacket datagramPacket
public UdpServer(){
try {
/******* 接收数据流程**/
// 创建一个数据报套接字,并将其绑定到指定port上
datagramSocket = new DatagramSocket(PORT_NUM)
// DatagramPacket(byte buf[], int length),建立一个字节数组来接收UDP包
datagramPacket = new DatagramPacket(receMsgs, receMsgs.length)
// receive()来等待接收UDP数据报
datagramSocket.receive(datagramPacket)
/****** 解析数据报****/
String receStr = new String(datagramPacket.getData(), 0 , datagramPacket.getLength())
System.out.println("Server Rece:" + receStr)
System.out.println("Server Port:" + datagramPacket.getPort())
/***** 返回ACK消息数据报*/
// 组装数据报
byte[] buf = "I receive the message".getBytes()
DatagramPacket sendPacket = new DatagramPacket(buf, buf.length, datagramPacket.getAddress(), datagramPacket.getPort())
// 发送消息
datagramSocket.send(sendPacket)
} catch (SocketException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
} finally {
// 关闭socket
if (datagramSocket != null) {
datagramSocket.close()
}
}
}
}
2)client
/***
* UDPclientClient端
***/
public class UdpClient {
private String sendStr = "SendString"
private String netAddress = "127.0.0.1"
private final intPORT_NUM = 5066
private DatagramSocket datagramSocket
private DatagramPacket datagramPacket
public UdpClient(){
try {
/*** 发送数据***/
// 初始化datagramSocket,注意与前面Server端实现的差别
datagramSocket = new DatagramSocket()
// 使用DatagramPacket(byte buf[], int length, InetAddress address, int port)函数组装发送UDP数据报
byte[] buf = sendStr.getBytes()
InetAddress address = InetAddress.getByName(netAddress)
datagramPacket = new DatagramPacket(buf, buf.length, address, PORT_NUM)
// 发送数据
datagramSocket.send(datagramPacket)
/*** 接收数据***/
byte[] receBuf = new byte[1024]
DatagramPacket recePacket = new DatagramPacket(receBuf, receBuf.length)
datagramSocket.receive(recePacket)
String receStr = new String(recePacket.getData(), 0 , recePacket.getLength())
System.out.println("Client Rece Ack:" + receStr)
System.out.println(recePacket.getPort())
} catch (SocketException e) {
e.printStackTrace()
} catch (UnknownHostException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
} finally {
// 关闭socket
if(datagramSocket != null){
datagramSocket.close()
}
}
}
}
Hyperic HQ集成了强大的监测和管理功能,它有开源版本,您可以直接使用它用来对web服务器进行监控。如果您想自己写代码实现,Hyperic HQ提供了一个服务器各种性能指标采集的API,这个API包本身提供了各种平台(linux/MAC/window等)的兼容。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)