仿B站项目第三章学习(4)

添加与获取用户关注分组

接口功能:用户可以新建或者查询关注分组

知识点:mybatis配置中加入下述,插入操作后自动返回自增主键。

useGeneratedKeys="true" keyProperty="id"

分页查询用户

PageResult<T> :用于分页查询的返回。自定义类,内有两个属性,总数和查询列表

功能知识点:查询出用户以后,判断用户是否被关注。设置状态便于前端显示。

mysql:模糊查询:排序:查询数:

<select id="pageListUserInfos" parameterType="java.util.Map" resultType="com.imooc.bilibili.domain.UserInfo">
        select
            *
        from
            t_user_info
        where
            1=1
            <if test="nick != null and nick != '' ">
                and nick like '%${nick}%'
            </if>
        order by id desc
        limit #{start}, #{limit}
</select>

动态提醒

数据库表:用户动态表

相关接口:用户发布状态、用户查询订阅内容的动态

设计模式:订阅发布模式

用户动态表(内容不在这里)

id、userId动态发布者、type0视频1直播2专栏、contentId 内容详情id、创建时间、更换时间

订阅发布模式:一种消息传递模式

发布者    代理   订阅者

代理作用:中介层存在的作用是进行消息的处理、过滤、路由以及分发。简单来说,它把发布者发送的消息路由到所有感兴趣(已经订阅)该消息的订阅者那里。

优点,包括:

  1. 解耦:发布者和订阅者能够独立改变。发布者可以在不知道订阅者情况下发布消息,同样,订阅者也可以在不知道发布者情况下接收消息。

  2. 动态:新的订阅者可以随时添加到系统中,发布者不需要进行任何修改就能给新的订阅者发送消息。

  3. 异步:发布者和订阅者不需要同时在线才能接收和处理消息。

缺点,包括:

  1. 确定性:不同的订阅者可能会以不同的顺序收到消息。

  2. 复杂性:实施发布-订阅模式需要额外的中介层,这会增加系统的复杂性。

实现

RocketMQ:开源消息中间件,特点:高性能、低延迟、分布式事务

Redis:高性能缓存工具,数据存储在内存中,读写速度快

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值