谷粒微博学习笔记三:Test

package tyh.test;

import tyh.constants.constants;
import tyh.dao.HbaseDao;
import tyh.utils.HBaseUtil;

import java.io.IOException;

public class Test {
    public static void init() {
        //1、创建命名空间
        HBaseUtil.CreateNameSpace(constants.NAMESPACE);

        try {
            //2、创建微博内容表
            HBaseUtil.CreateTable(constants.CONTENT_TABLE, constants.CONTENT_TABLE_VERSIONS, constants.CONTENT_TABLE_CF);

            //3、创建用户关系表
            HBaseUtil.CreateTable(constants.RELATION_TABLE,
                    constants.RELATION_TABLE_VERSIONS,
                    constants.RELATION_TABLE_ATTEND,
                    constants.RELATION_TABLE_FANS);

            //4、创建收件箱表
            HBaseUtil.CreateTable(constants.INBOX_TABLE, constants.INBOX_TABLE_VERSIONS, constants.INBOX_TABLE_CONCERN);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) throws IOException, InterruptedException {
        //初始化
        init();

        //1001发布微博
        HbaseDao.publishWeiBo("1001", "赶紧下课吧!!!");

        //1002关注1001和1003
        HbaseDao.addAttends("1002", "1001", "1003");

        //获取1002初始化界面
        HbaseDao.getInit("1002");
        System.out.println("***************111***************");

        //1003发布3条微博,同时1001发布两条
        HbaseDao.publishWeiBo("1003", "谁说的感紧下课!!!");
        Thread.sleep(10);

        HbaseDao.publishWeiBo("1001", "我没说话!!!");
        Thread.sleep(10);

        HbaseDao.publishWeiBo("1003", "那谁说的!!!");
        Thread.sleep(10);

        HbaseDao.publishWeiBo("1001", "反正飞机下线了!!!");
        Thread.sleep(10);

        HbaseDao.publishWeiBo("1003", "你们爱咋咋地吧!!!");

        //获取1002初始化界面
        HbaseDao.getInit("1002");
        System.out.println("***************222***************");

        //1002取关1003
        HbaseDao.deleteAttends("1002", "1003");

        //获取1002初始化界面
        HbaseDao.getInit("1002");
        System.out.println("***************333***************");

        //1002再次关注1003
        HbaseDao.addAttends("1002", "1003");

        //获取1002初始化界面
        HbaseDao.getInit("1002");
        System.out.println("***************444***************");

        //1001再次1发布微博
        HbaseDao.publishWeiBo("1001", "咋没人了?都走了吗!!!");

        //获取1002初始化界面
        HbaseDao.getInit("1002");
        System.out.println("***************555***************");

        //获取1001初始化页面
        HbaseDao.getInit("1001");
    }
}

结果:

 这里说一下调试时出现的bug(因为写博客时异常没保留,所以只能以文字描述了:

1、发现发布微博后,222的值与111一样,初步推断可能是init或发布微博的问题,但后面发现取关后关注,1003发布的微博又出现了,可能是发布微博时对inbox表的操作有问题

2、微博不是按顺序替换的,新发布的微博不会替代以前的微博

结果:我是按9999999999999减时间戳来排序的,发现只写了12位9,导致时间戳减成负数了,导致排序混乱

操作微博表时获取粉丝列族用的是有时间戳的rowkey,导致得不到粉丝列族的值,应该只用发布微博的用户的uid即可

猜你喜欢

转载自blog.csdn.net/tyh1579152915/article/details/109289950