这里选择很早的yiju项目。
跳转那些修改都简单先上服务层代码
public List<HouseView> findtopClick(int houseType) {
List<HouseView> houseViews=new ArrayList<>();
Map<String,String> houseIds=jedis.hgetAll("houseIds");
Map<String, Integer> map = new HashMap<>();
for (String key : houseIds.keySet()) {
String s = houseIds.get(key);
int i = Integer.parseInt(s);
map.put(key,i);
}
List<Map.Entry<String,Integer>> list = new ArrayList(map.entrySet());
Collections.sort(list, (o1, o2) -> (o2.getValue() - o1.getValue()));//这两行为map的排序降序,升序的话后面2个比大小的值反下就ok
for (int i=0;i<4;i++){
Map.Entry<String, Integer> stringIntegerEntry = list.get(i);
String key = stringIntegerEntry.getKey();
HouseView houseById = iHouseViewDao.findHouseById(Integer.parseInt(key));
houseViews.add(houseById);
}
return houseViews;
}
还有就是要收集日志 上面注释了是原来的
## Global logging configuration
#log4j.rootLogger=DEBUG, stdout
## Console output...
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
# Global logging configuration
log4j.rootLogger=DEBUG, stdout,logfile
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
log4j.appender.logfile = org.apache.log4j.FileAppender
log4j.appender.logfile.File = D://logs/log.log//这个是存在本地的
log4j.appender.logfile.Threshold = INFO
log4j.appender.logfile.layout = org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
在控制层加上
@Autowired
private Logger log4j=Logger.getLogger(UserController.class);
在你需要的方法里加上这个记录功能
log4j.info("find house :"+houseid);
当然没有服务器还是手动上传的 开始linux的zk、storm、kafka、flume。
这里只需要修改写的方法,这里采用redis数据库为非关系型数据库。
public class WriteCountBolt extends BaseBasicBolt {
Jedis jedis=null;
@Override
public void prepare(Map stormConf, TopologyContext context) {
jedis=new Jedis("127.0.0.1",6379);
}
@Override
public void execute(Tuple tuple, BasicOutputCollector basicOutputCollector) {
String s = tuple.getString(0);
jedis.hincrBy("houseIds",s,1);//默认1,自动加+1
}
@Override
public void declareOutputFields(OutputFieldsDeclarer outputFieldsDeclarer) {
}
}