大数据分析之数据收集之封装商品浏览日志
Productscanlog
package com.youfan.analy.input;
import com.youfan.model.User;
/**
* 商品浏览日志
*/
public class Productscanlog {
private long pindaoid;//频道id
private long productytpeid;//产品类别id
private long producid;//产品id
private long userid;//用户id
private String ip;//ip地址
private String browser;//浏览器
private String os;//操作系统
private String country;//国家
private String provice;//省
private String city;//城市
private String county;//县,区
private String network;//运营商
private long timestamp;//访问时间
public long getPindaoid() {
return pindaoid;
}
public void setPindaoid(long pindaoid) {
this.pindaoid = pindaoid;
}
public long getProductytpeid() {
return productytpeid;
}
public void setProductytpeid(long productytpeid) {
this.productytpeid = productytpeid;
}
public long getProducid() {
return producid;
}
public void setProducid(long producid) {
this.producid = producid;
}
public long getUserid() {
return userid;
}
public void setUserid(long userid) {
this.userid = userid;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getBrowser() {
return browser;
}
public void setBrowser(String browser) {
this.browser = browser;
}
public String getOs() {
return os;
}
public void setOs(String os) {
this.os = os;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getProvice() {
return provice;
}
public void setProvice(String provice) {
this.provice = provice;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getCounty() {
return county;
}
public void setCounty(String county) {
this.county = county;
}
public String getNetwork() {
return network;
}
public void setNetwork(String network) {
this.network = network;
}
public long getTimestamp() {
return timestamp;
}
public void setTimestamp(long timestamp) {
this.timestamp = timestamp;
}
}
说明:
1)用于封装用户对商品的浏览的相关信息;
埋点收集日志
/**
* 埋点收集日志,频道数量少,该模块的频道id固定,id为1,代表生鲜
*/
long pindaoid = 1;//频道id
//productytpeid//产品类别id
//producid//产品id
//用户id
long userid = 0;//游客
//ip地址
String ipaddress = IpUtil.getIpAddress(request);
System.out.println(ipaddress);
HttpSession sesion = request.getSession();
Object userobject = sesion.getAttribute("user");
if(userobject!=null){
User user = (User)userobject;
userid = user.getId();
}
//获取浏览器信息以及操作系统信息
String osandbrowser = BrowserInfoUtil.getOsAndBrowserInfo(request);
System.out.println(osandbrowser);
String[] temps = osandbrowser.split("---");
String os = temps[0].trim();
String browser = temps[1].trim();
System.out.println(os);
System.out.println(browser);
Productscanlog productscanlog = new Productscanlog();
//根据ip获取地区和运营商
try {
AreaAndnetwork areaAndnetwork = AreaAndNetworkUtil.getAddressByIp(ipaddress);
productscanlog.setCounty(areaAndnetwork.getCounty());
productscanlog.setProvice(areaAndnetwork.getProvice());
productscanlog.setCity(areaAndnetwork.getCity());
productscanlog.setCounty(areaAndnetwork.getCounty());
productscanlog.setNetwork(areaAndnetwork.getNetwork());
}catch (Exception e){
e.printStackTrace();
}
productscanlog.setPindaoid(pindaoid);
productscanlog.setProductytpeid(productytpeid);
productscanlog.setProducid(Long.valueOf(producid+""));
productscanlog.setUserid(userid);
productscanlog.setIp(ipaddress);
productscanlog.setBrowser(browser);
productscanlog.setOs(os);
productscanlog.setTimestamp(new Date().getTime());
String productscanlogstring = JSONObject.toJSONString(productscanlog);
System.out.println(productscanlogstring);
kafkaTemplate.send("productscanlog", "key", productscanlogstring);
String productflume = userid +"\t" + pindaoid+"\t"+productscanlog.getTimestamp();
kafkaTemplate.send("productscanlogflume","key",productflume);
说明:
1)埋点收集日志;
2)将商品浏览的信息封装成日志信息对象;
3)再转换成json字符串,发送到kafka消息中间件中;
==============================
QQ群:143522604
群里有相关资源
欢迎和大家一起学习、交流、提升!
==============================