Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
beyond-clouds
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
4
Issues
4
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
段启岩
beyond-clouds
Commits
240f7243
Commit
240f7243
authored
Feb 10, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新消息队列监听器架构
parent
cb508aec
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
208 additions
and
139 deletions
+208
-139
src/main/java/cn/meteor/beyondclouds/core/listener/DataItemChangeListener.java
+102
-0
src/main/java/cn/meteor/beyondclouds/core/listener/TopicListener.java
+17
-0
src/main/java/cn/meteor/beyondclouds/core/listener/TopicMessageListener.java
+0
-47
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
+4
-4
src/main/java/cn/meteor/beyondclouds/modules/project/service/impl/ProjectServiceImpl.java
+4
-4
src/main/java/cn/meteor/beyondclouds/modules/question/service/impl/QuestionServiceImpl.java
+4
-4
src/main/java/cn/meteor/beyondclouds/modules/queue/message/DataItemChangeMessage.java
+11
-11
src/main/java/cn/meteor/beyondclouds/modules/queue/message/DataItemChangeType.java
+13
-5
src/main/java/cn/meteor/beyondclouds/modules/queue/service/IMessageQueueService.java
+2
-2
src/main/java/cn/meteor/beyondclouds/modules/queue/service/impl/MessageQueueServiceImpl.java
+2
-2
src/main/java/cn/meteor/beyondclouds/modules/search/listener/SearchItemItemChangeListener.java
+42
-0
src/main/java/cn/meteor/beyondclouds/modules/search/listener/SearchItemUpdateListener.java
+0
-51
src/main/java/cn/meteor/beyondclouds/modules/search/service/impl/SearchServiceImpl.java
+0
-3
src/main/java/cn/meteor/beyondclouds/modules/user/service/impl/UserServiceImpl.java
+2
-2
src/test/java/cn/meteor/beyondclouds/modules/queue/service/impl/MessageQueueServiceImplTest.java
+5
-4
No files found.
src/main/java/cn/meteor/beyondclouds/core/listener/DataItemChangeListener.java
0 → 100644
View file @
240f7243
package
cn
.
meteor
.
beyondclouds
.
core
.
listener
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItemChangeMessage
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItemChangeType
;
import
cn.meteor.beyondclouds.util.JsonUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.kafka.clients.consumer.ConsumerRecord
;
import
org.springframework.kafka.annotation.KafkaListener
;
import
java.util.Optional
;
/**
* 数据更新监听器
* 监听本系统所有的数据更新 操作:更新操作包括
* @author meteor
*/
@Slf4j
public
class
DataItemChangeListener
implements
TopicListener
{
@Override
@KafkaListener
(
topics
=
"${beyondclouds.kafka.topics.search-item-update}"
)
public
final
void
onMessage
(
ConsumerRecord
<?,
String
>
record
)
{
Optional
<
String
>
kafkaMessage
=
Optional
.
ofNullable
(
record
.
value
());
if
(
kafkaMessage
.
isPresent
())
{
DataItemChangeMessage
dataItemChangeMessage
;
try
{
dataItemChangeMessage
=
JsonUtils
.
toBean
(
kafkaMessage
.
get
(),
DataItemChangeMessage
.
class
);
log
.
debug
(
"接收到kafka消息:{}"
,
dataItemChangeMessage
.
toString
());
// 调用对应的消息处理函数
DataItemChangeType
changeType
=
dataItemChangeMessage
.
getChangeType
();
switch
(
changeType
)
{
case
ADD:
onDataItemAdd
(
dataItemChangeMessage
);
break
;
case
DELETE:
onDataItemDelete
(
dataItemChangeMessage
);
break
;
case
UPDATE:
onDataItemUpdate
(
dataItemChangeMessage
);
break
;
case
USER_NICK_UPDATE:
onUserNickUpdate
(
dataItemChangeMessage
);
break
;
case
USER_AVATAR_UPDATE:
onUserAvatarUpdate
(
dataItemChangeMessage
);
break
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
log
.
error
(
"DataItemUpdateMessage consume failed:{}"
,
e
.
getMessage
());
}
}
}
/**
* 有新数据添加到数据库
* @param dataItemChangeMessage
*/
public
void
onDataItemAdd
(
DataItemChangeMessage
dataItemChangeMessage
)
{
}
/**
* 有数据从数据库删除
* @param dataItemChangeMessage
*/
public
void
onDataItemDelete
(
DataItemChangeMessage
dataItemChangeMessage
)
{
}
/**
* 数据库里面的数据更新
* @param dataItemChangeMessage
*/
public
void
onDataItemUpdate
(
DataItemChangeMessage
dataItemChangeMessage
)
{
}
/**
* 用户昵称更新
* @param dataItemChangeMessage
*/
public
void
onUserNickUpdate
(
DataItemChangeMessage
dataItemChangeMessage
)
{
}
/**
* 用户头像更新
* @param dataItemChangeMessage
*/
public
void
onUserAvatarUpdate
(
DataItemChangeMessage
dataItemChangeMessage
)
{
}
}
src/main/java/cn/meteor/beyondclouds/core/listener/TopicListener.java
0 → 100644
View file @
240f7243
package
cn
.
meteor
.
beyondclouds
.
core
.
listener
;
import
org.apache.kafka.clients.consumer.ConsumerRecord
;
/**
* Topic 消息监听器
* 监听Kafka队列里面的消息
* @author meteor
*/
public
interface
TopicListener
{
/**
* 订阅的topic有新的消息
* @param record
*/
void
onMessage
(
ConsumerRecord
<?,
String
>
record
);
}
src/main/java/cn/meteor/beyondclouds/core/listener/TopicMessageListener.java
deleted
100644 → 0
View file @
cb508aec
package
cn
.
meteor
.
beyondclouds
.
core
.
listener
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItemUpdateMessage
;
import
cn.meteor.beyondclouds.modules.queue.message.SearchItemUpdateType
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
import
cn.meteor.beyondclouds.util.JsonUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.kafka.clients.consumer.ConsumerRecord
;
import
org.springframework.kafka.annotation.KafkaListener
;
import
java.io.Serializable
;
import
java.util.Optional
;
/**
* @author meteor
*/
@Slf4j
public
class
TopicMessageListener
{
@KafkaListener
(
topics
=
"${beyondclouds.kafka.topics.search-item-update}"
)
public
final
void
itemUpdate
(
ConsumerRecord
<?,
String
>
record
)
{
Optional
<
String
>
kafkaMessage
=
Optional
.
ofNullable
(
record
.
value
());
if
(
kafkaMessage
.
isPresent
())
{
DataItemUpdateMessage
itemUpdateMessage
;
try
{
itemUpdateMessage
=
JsonUtils
.
toBean
(
kafkaMessage
.
get
(),
DataItemUpdateMessage
.
class
);
log
.
debug
(
"接收到kafka消息:{}"
,
itemUpdateMessage
.
toString
());
// 调用消息处理函数
onItemUpdate
(
itemUpdateMessage
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
log
.
error
(
"DataItemUpdateMessage consume failed:{}"
,
e
.
getMessage
());
}
}
}
/**
* 数据更新事件
* @param dataItemUpdateMessage
*/
public
void
onItemUpdate
(
DataItemUpdateMessage
dataItemUpdateMessage
)
throws
Exception
{
}
}
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
View file @
240f7243
...
@@ -12,7 +12,7 @@ import cn.meteor.beyondclouds.modules.blog.exception.BlogCategoryServiceExceptio
...
@@ -12,7 +12,7 @@ import cn.meteor.beyondclouds.modules.blog.exception.BlogCategoryServiceExceptio
import
cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException
;
import
cn.meteor.beyondclouds.modules.blog.mapper.BlogMapper
;
import
cn.meteor.beyondclouds.modules.blog.mapper.BlogMapper
;
import
cn.meteor.beyondclouds.modules.blog.service.*
;
import
cn.meteor.beyondclouds.modules.blog.service.*
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItem
Updat
eMessage
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItem
Chang
eMessage
;
import
cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService
;
import
cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
import
cn.meteor.beyondclouds.modules.tag.entity.Tag
;
import
cn.meteor.beyondclouds.modules.tag.entity.Tag
;
...
@@ -154,7 +154,7 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
...
@@ -154,7 +154,7 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
// 5.发送消息到消息队列
// 5.发送消息到消息队列
messageQueueService
messageQueueService
.
sendItemUpdateMessage
(
.
sendItemUpdateMessage
(
DataItem
Updat
eMessage
.
addMessage
(
SearchItemType
.
BLOG
,
blog
.
getBlogId
())
DataItem
Chang
eMessage
.
addMessage
(
SearchItemType
.
BLOG
,
blog
.
getBlogId
())
);
);
}
}
...
@@ -204,7 +204,7 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
...
@@ -204,7 +204,7 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
// 5.发送消息到消息队列
// 5.发送消息到消息队列
messageQueueService
messageQueueService
.
sendItemUpdateMessage
(
.
sendItemUpdateMessage
(
DataItem
Updat
eMessage
.
deleteMessage
(
SearchItemType
.
BLOG
,
blog
.
getBlogId
())
DataItem
Chang
eMessage
.
deleteMessage
(
SearchItemType
.
BLOG
,
blog
.
getBlogId
())
);
);
}
}
...
@@ -379,7 +379,7 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
...
@@ -379,7 +379,7 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
// 5.发送消息到消息队列
// 5.发送消息到消息队列
messageQueueService
messageQueueService
.
sendItemUpdateMessage
(
.
sendItemUpdateMessage
(
DataItem
Updat
eMessage
.
updateMessage
(
SearchItemType
.
BLOG
,
blog
.
getBlogId
())
DataItem
Chang
eMessage
.
updateMessage
(
SearchItemType
.
BLOG
,
blog
.
getBlogId
())
);
);
}
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/project/service/impl/ProjectServiceImpl.java
View file @
240f7243
...
@@ -12,7 +12,7 @@ import cn.meteor.beyondclouds.modules.project.mapper.ProjectMapper;
...
@@ -12,7 +12,7 @@ import cn.meteor.beyondclouds.modules.project.mapper.ProjectMapper;
import
cn.meteor.beyondclouds.modules.project.service.IProjectCommentService
;
import
cn.meteor.beyondclouds.modules.project.service.IProjectCommentService
;
import
cn.meteor.beyondclouds.modules.project.service.IProjectExtService
;
import
cn.meteor.beyondclouds.modules.project.service.IProjectExtService
;
import
cn.meteor.beyondclouds.modules.project.service.IProjectService
;
import
cn.meteor.beyondclouds.modules.project.service.IProjectService
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItem
Updat
eMessage
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItem
Chang
eMessage
;
import
cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService
;
import
cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
import
cn.meteor.beyondclouds.modules.user.entity.User
;
import
cn.meteor.beyondclouds.modules.user.entity.User
;
...
@@ -102,7 +102,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
...
@@ -102,7 +102,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
// 4.发送消息到消息队列
// 4.发送消息到消息队列
messageQueueService
messageQueueService
.
sendItemUpdateMessage
(
.
sendItemUpdateMessage
(
DataItem
Updat
eMessage
.
addMessage
(
SearchItemType
.
PROJECT
,
project
.
getProjectId
())
DataItem
Chang
eMessage
.
addMessage
(
SearchItemType
.
PROJECT
,
project
.
getProjectId
())
);
);
}
}
...
@@ -139,7 +139,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
...
@@ -139,7 +139,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
// 4.发送消息到消息队列
// 4.发送消息到消息队列
messageQueueService
messageQueueService
.
sendItemUpdateMessage
(
.
sendItemUpdateMessage
(
DataItem
Updat
eMessage
.
deleteMessage
(
SearchItemType
.
PROJECT
,
project
.
getProjectId
())
DataItem
Chang
eMessage
.
deleteMessage
(
SearchItemType
.
PROJECT
,
project
.
getProjectId
())
);
);
}
}
...
@@ -218,7 +218,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
...
@@ -218,7 +218,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
// 4.发送消息到消息队列
// 4.发送消息到消息队列
messageQueueService
messageQueueService
.
sendItemUpdateMessage
(
.
sendItemUpdateMessage
(
DataItem
Updat
eMessage
.
updateMessage
(
SearchItemType
.
PROJECT
,
project
.
getProjectId
())
DataItem
Chang
eMessage
.
updateMessage
(
SearchItemType
.
PROJECT
,
project
.
getProjectId
())
);
);
}
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/question/service/impl/QuestionServiceImpl.java
View file @
240f7243
...
@@ -9,7 +9,7 @@ import cn.meteor.beyondclouds.modules.question.exception.QuestionTagServiceExcep
...
@@ -9,7 +9,7 @@ import cn.meteor.beyondclouds.modules.question.exception.QuestionTagServiceExcep
import
cn.meteor.beyondclouds.modules.question.mapper.QuestionMapper
;
import
cn.meteor.beyondclouds.modules.question.mapper.QuestionMapper
;
import
cn.meteor.beyondclouds.modules.question.service.*
;
import
cn.meteor.beyondclouds.modules.question.service.*
;
import
cn.meteor.beyondclouds.modules.question.util.QuestionUtils
;
import
cn.meteor.beyondclouds.modules.question.util.QuestionUtils
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItem
Updat
eMessage
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItem
Chang
eMessage
;
import
cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService
;
import
cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
import
cn.meteor.beyondclouds.modules.tag.entity.Tag
;
import
cn.meteor.beyondclouds.modules.tag.entity.Tag
;
...
@@ -148,7 +148,7 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
...
@@ -148,7 +148,7 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
// 6.发送消息到消息队列
// 6.发送消息到消息队列
messageQueueService
messageQueueService
.
sendItemUpdateMessage
(
.
sendItemUpdateMessage
(
DataItem
Updat
eMessage
.
addMessage
(
SearchItemType
.
QUESTION
,
question
.
getQuestionId
())
DataItem
Chang
eMessage
.
addMessage
(
SearchItemType
.
QUESTION
,
question
.
getQuestionId
())
);
);
}
}
...
@@ -189,7 +189,7 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
...
@@ -189,7 +189,7 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
// 9.发送消息到消息队列
// 9.发送消息到消息队列
messageQueueService
messageQueueService
.
sendItemUpdateMessage
(
.
sendItemUpdateMessage
(
DataItem
Updat
eMessage
.
deleteMessage
(
SearchItemType
.
QUESTION
,
question
.
getQuestionId
())
DataItem
Chang
eMessage
.
deleteMessage
(
SearchItemType
.
QUESTION
,
question
.
getQuestionId
())
);
);
}
}
...
@@ -238,7 +238,7 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
...
@@ -238,7 +238,7 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
// 6.发送消息到消息队列
// 6.发送消息到消息队列
messageQueueService
messageQueueService
.
sendItemUpdateMessage
(
.
sendItemUpdateMessage
(
DataItem
Updat
eMessage
.
updateMessage
(
SearchItemType
.
QUESTION
,
question
.
getQuestionId
())
DataItem
Chang
eMessage
.
updateMessage
(
SearchItemType
.
QUESTION
,
question
.
getQuestionId
())
);
);
}
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/queue/message/DataItem
Updat
eMessage.java
→
src/main/java/cn/meteor/beyondclouds/modules/queue/message/DataItem
Chang
eMessage.java
View file @
240f7243
...
@@ -14,24 +14,24 @@ import java.io.Serializable;
...
@@ -14,24 +14,24 @@ import java.io.Serializable;
@Data
@Data
@ToString
@ToString
@NoArgsConstructor
@NoArgsConstructor
public
class
DataItem
Updat
eMessage
{
public
class
DataItem
Chang
eMessage
{
public
DataItem
UpdateMessage
(
SearchItemUpdateType
updat
eType
,
SearchItemType
itemType
,
Serializable
itemId
)
{
public
DataItem
ChangeMessage
(
DataItemChangeType
chang
eType
,
SearchItemType
itemType
,
Serializable
itemId
)
{
this
.
itemId
=
itemId
;
this
.
itemId
=
itemId
;
this
.
itemType
=
itemType
;
this
.
itemType
=
itemType
;
this
.
updateType
=
updat
eType
;
this
.
changeType
=
chang
eType
;
}
}
public
static
DataItem
Updat
eMessage
addMessage
(
SearchItemType
itemType
,
Serializable
itemId
)
{
public
static
DataItem
Chang
eMessage
addMessage
(
SearchItemType
itemType
,
Serializable
itemId
)
{
return
new
DataItem
UpdateMessage
(
SearchItemUpdat
eType
.
ADD
,
itemType
,
itemId
);
return
new
DataItem
ChangeMessage
(
DataItemChang
eType
.
ADD
,
itemType
,
itemId
);
}
}
public
static
DataItem
Updat
eMessage
deleteMessage
(
SearchItemType
itemType
,
Serializable
itemId
)
{
public
static
DataItem
Chang
eMessage
deleteMessage
(
SearchItemType
itemType
,
Serializable
itemId
)
{
return
new
DataItem
UpdateMessage
(
SearchItemUpdat
eType
.
DELETE
,
itemType
,
itemId
);
return
new
DataItem
ChangeMessage
(
DataItemChang
eType
.
DELETE
,
itemType
,
itemId
);
}
}
public
static
DataItem
Updat
eMessage
updateMessage
(
SearchItemType
itemType
,
Serializable
itemId
)
{
public
static
DataItem
Chang
eMessage
updateMessage
(
SearchItemType
itemType
,
Serializable
itemId
)
{
return
new
DataItem
UpdateMessage
(
SearchItemUpdat
eType
.
UPDATE
,
itemType
,
itemId
);
return
new
DataItem
ChangeMessage
(
DataItemChang
eType
.
UPDATE
,
itemType
,
itemId
);
}
}
/**
/**
...
@@ -45,7 +45,7 @@ public class DataItemUpdateMessage {
...
@@ -45,7 +45,7 @@ public class DataItemUpdateMessage {
private
SearchItemType
itemType
;
private
SearchItemType
itemType
;
/**
/**
* 条目
更新
类型
* 条目
改变
类型
*/
*/
private
SearchItemUpdateType
updat
eType
;
private
DataItemChangeType
chang
eType
;
}
}
src/main/java/cn/meteor/beyondclouds/modules/queue/message/
SearchItemUpdat
eType.java
→
src/main/java/cn/meteor/beyondclouds/modules/queue/message/
DataItemChang
eType.java
View file @
240f7243
package
cn
.
meteor
.
beyondclouds
.
modules
.
queue
.
message
;
package
cn
.
meteor
.
beyondclouds
.
modules
.
queue
.
message
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
/**
/**
*
搜索条目改变操作类型
*
数据更新操作
* @author meteor
* @author meteor
*/
*/
public
enum
SearchItemUpdat
eType
{
public
enum
DataItemChang
eType
{
/**
/**
* 新增条目
* 新增条目
...
@@ -21,5 +19,15 @@ public enum SearchItemUpdateType {
...
@@ -21,5 +19,15 @@ public enum SearchItemUpdateType {
/**
/**
* 更新条目
* 更新条目
*/
*/
UPDATE
UPDATE
,
/**
* 用户头像更新
*/
USER_AVATAR_UPDATE
,
/**
* 用户昵称更新
*/
USER_NICK_UPDATE
;
}
}
src/main/java/cn/meteor/beyondclouds/modules/queue/service/IMessageQueueService.java
View file @
240f7243
package
cn
.
meteor
.
beyondclouds
.
modules
.
queue
.
service
;
package
cn
.
meteor
.
beyondclouds
.
modules
.
queue
.
service
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItem
Updat
eMessage
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItem
Chang
eMessage
;
/**
/**
* @author meteor
* @author meteor
...
@@ -12,5 +12,5 @@ public interface IMessageQueueService {
...
@@ -12,5 +12,5 @@ public interface IMessageQueueService {
* 发送搜索条目更新消息
* 发送搜索条目更新消息
* @param itemUpdateMessage
* @param itemUpdateMessage
*/
*/
void
sendItemUpdateMessage
(
DataItem
Updat
eMessage
itemUpdateMessage
);
void
sendItemUpdateMessage
(
DataItem
Chang
eMessage
itemUpdateMessage
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/queue/service/impl/MessageQueueServiceImpl.java
View file @
240f7243
package
cn
.
meteor
.
beyondclouds
.
modules
.
queue
.
service
.
impl
;
package
cn
.
meteor
.
beyondclouds
.
modules
.
queue
.
service
.
impl
;
import
cn.meteor.beyondclouds.config.properties.BeyondCloudsKafkaTopicProperties
;
import
cn.meteor.beyondclouds.config.properties.BeyondCloudsKafkaTopicProperties
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItem
Updat
eMessage
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItem
Chang
eMessage
;
import
cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService
;
import
cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService
;
import
cn.meteor.beyondclouds.util.JsonUtils
;
import
cn.meteor.beyondclouds.util.JsonUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -27,7 +27,7 @@ public class MessageQueueServiceImpl implements IMessageQueueService {
...
@@ -27,7 +27,7 @@ public class MessageQueueServiceImpl implements IMessageQueueService {
}
}
@Override
@Override
public
void
sendItemUpdateMessage
(
DataItem
Updat
eMessage
itemUpdateMessage
)
{
public
void
sendItemUpdateMessage
(
DataItem
Chang
eMessage
itemUpdateMessage
)
{
try
{
try
{
kafkaTemplate
.
send
(
topicProperties
.
getSearchItemUpdate
(),
JsonUtils
.
toJson
(
itemUpdateMessage
));
kafkaTemplate
.
send
(
topicProperties
.
getSearchItemUpdate
(),
JsonUtils
.
toJson
(
itemUpdateMessage
));
log
.
debug
(
"发送kafka消息:{}"
,
itemUpdateMessage
.
toString
());
log
.
debug
(
"发送kafka消息:{}"
,
itemUpdateMessage
.
toString
());
...
...
src/main/java/cn/meteor/beyondclouds/modules/search/listener/SearchItemItemChangeListener.java
0 → 100644
View file @
240f7243
package
cn
.
meteor
.
beyondclouds
.
modules
.
search
.
listener
;
import
cn.meteor.beyondclouds.core.listener.DataItemChangeListener
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItemChangeMessage
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItemChangeType
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
import
cn.meteor.beyondclouds.modules.search.service.ISearchService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.io.Serializable
;
/**
* @author meteor
*/
@Component
@Slf4j
public
class
SearchItemItemChangeListener
extends
DataItemChangeListener
{
private
ISearchService
searchService
;
@Autowired
public
SearchItemItemChangeListener
(
ISearchService
searchService
)
{
this
.
searchService
=
searchService
;
}
@Override
public
void
onDataItemAdd
(
DataItemChangeMessage
dataItemChangeMessage
)
{
searchService
.
saveSearchItem
(
dataItemChangeMessage
.
getItemType
(),
String
.
valueOf
(
dataItemChangeMessage
.
getItemId
()));
}
@Override
public
void
onDataItemUpdate
(
DataItemChangeMessage
dataItemChangeMessage
)
{
searchService
.
deleteSearchItem
(
dataItemChangeMessage
.
getItemType
(),
String
.
valueOf
(
dataItemChangeMessage
.
getItemId
()));
}
@Override
public
void
onDataItemDelete
(
DataItemChangeMessage
dataItemChangeMessage
)
{
searchService
.
updateSearchItem
(
dataItemChangeMessage
.
getItemType
(),
String
.
valueOf
(
dataItemChangeMessage
.
getItemId
()));
}
}
src/main/java/cn/meteor/beyondclouds/modules/search/listener/SearchItemUpdateListener.java
deleted
100644 → 0
View file @
cb508aec
package
cn
.
meteor
.
beyondclouds
.
modules
.
search
.
listener
;
import
cn.meteor.beyondclouds.core.listener.TopicMessageListener
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItemUpdateMessage
;
import
cn.meteor.beyondclouds.modules.queue.message.SearchItemUpdateType
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
import
cn.meteor.beyondclouds.modules.search.service.ISearchService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.io.Serializable
;
/**
* @author meteor
*/
@Component
@Slf4j
public
class
SearchItemUpdateListener
extends
TopicMessageListener
{
private
ISearchService
searchService
;
@Autowired
public
SearchItemUpdateListener
(
ISearchService
searchService
)
{
this
.
searchService
=
searchService
;
}
@Override
public
void
onItemUpdate
(
DataItemUpdateMessage
dataItemUpdateMessage
)
throws
Exception
{
// 处理搜索条目更新
SearchItemUpdateType
updateType
=
dataItemUpdateMessage
.
getUpdateType
();
Serializable
itemId
=
dataItemUpdateMessage
.
getItemId
();
SearchItemType
searchItemType
=
dataItemUpdateMessage
.
getItemType
();
// 根据不同的更新类型调用对应的方法
switch
(
updateType
)
{
case
ADD:
searchService
.
saveSearchItem
(
searchItemType
,
String
.
valueOf
(
itemId
)
);
break
;
case
DELETE:
searchService
.
deleteSearchItem
(
searchItemType
,
String
.
valueOf
(
itemId
));
break
;
case
UPDATE:
searchService
.
updateSearchItem
(
searchItemType
,
String
.
valueOf
(
itemId
));
break
;
default
:
break
;
}
}
}
src/main/java/cn/meteor/beyondclouds/modules/search/service/impl/SearchServiceImpl.java
View file @
240f7243
...
@@ -14,8 +14,6 @@ import cn.meteor.beyondclouds.modules.question.entity.Question;
...
@@ -14,8 +14,6 @@ import cn.meteor.beyondclouds.modules.question.entity.Question;
import
cn.meteor.beyondclouds.modules.question.exception.QuestionServiceException
;
import
cn.meteor.beyondclouds.modules.question.exception.QuestionServiceException
;
import
cn.meteor.beyondclouds.modules.question.exception.QuestionTagServiceException
;
import
cn.meteor.beyondclouds.modules.question.exception.QuestionTagServiceException
;
import
cn.meteor.beyondclouds.modules.question.service.IQuestionService
;
import
cn.meteor.beyondclouds.modules.question.service.IQuestionService
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItemUpdateMessage
;
import
cn.meteor.beyondclouds.modules.queue.message.SearchItemUpdateType
;
import
cn.meteor.beyondclouds.modules.search.entity.SearchItem
;
import
cn.meteor.beyondclouds.modules.search.entity.SearchItem
;
import
cn.meteor.beyondclouds.modules.search.entity.SearchItemId
;
import
cn.meteor.beyondclouds.modules.search.entity.SearchItemId
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
...
@@ -34,7 +32,6 @@ import org.springframework.data.domain.Page;
...
@@ -34,7 +32,6 @@ import org.springframework.data.domain.Page;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.StringUtils
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.Optional
;
...
...
src/main/java/cn/meteor/beyondclouds/modules/user/service/impl/UserServiceImpl.java
View file @
240f7243
...
@@ -14,7 +14,7 @@ import cn.meteor.beyondclouds.modules.project.entity.Project;
...
@@ -14,7 +14,7 @@ import cn.meteor.beyondclouds.modules.project.entity.Project;
import
cn.meteor.beyondclouds.modules.project.service.IProjectService
;
import
cn.meteor.beyondclouds.modules.project.service.IProjectService
;
import
cn.meteor.beyondclouds.modules.question.entity.Question
;
import
cn.meteor.beyondclouds.modules.question.entity.Question
;
import
cn.meteor.beyondclouds.modules.question.service.IQuestionService
;
import
cn.meteor.beyondclouds.modules.question.service.IQuestionService
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItem
Updat
eMessage
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItem
Chang
eMessage
;
import
cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService
;
import
cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
import
cn.meteor.beyondclouds.modules.tag.entity.Tag
;
import
cn.meteor.beyondclouds.modules.tag.entity.Tag
;
...
@@ -241,7 +241,7 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
...
@@ -241,7 +241,7 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
// 发送消息到消息队列
// 发送消息到消息队列
messageQueueService
messageQueueService
.
sendItemUpdateMessage
(
.
sendItemUpdateMessage
(
DataItem
Updat
eMessage
.
updateMessage
(
SearchItemType
.
USER
,
user
.
getUserId
())
DataItem
Chang
eMessage
.
updateMessage
(
SearchItemType
.
USER
,
user
.
getUserId
())
);
);
}
}
...
...
src/test/java/cn/meteor/beyondclouds/modules/queue/service/impl/MessageQueueServiceImplTest.java
View file @
240f7243
package
cn
.
meteor
.
beyondclouds
.
modules
.
queue
.
service
.
impl
;
package
cn
.
meteor
.
beyondclouds
.
modules
.
queue
.
service
.
impl
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItem
Updat
eMessage
;
import
cn.meteor.beyondclouds.modules.queue.message.DataItem
Chang
eMessage
;
import
cn.meteor.beyondclouds.modules.queue.message.
SearchItemUpdat
eType
;
import
cn.meteor.beyondclouds.modules.queue.message.
DataItemChang
eType
;
import
cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService
;
import
cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
import
cn.meteor.beyondclouds.modules.search.enums.SearchItemType
;
import
org.junit.Test
;
import
org.junit.Test
;
...
@@ -24,10 +24,10 @@ public class MessageQueueServiceImplTest {
...
@@ -24,10 +24,10 @@ public class MessageQueueServiceImplTest {
// message.setId("111L");
// message.setId("111L");
// message.setMsg("hello");
// message.setMsg("hello");
// messageQueueService.send(message);
// messageQueueService.send(message);
DataItem
UpdateMessage
itemUpdateMessage
=
new
DataItemUpdat
eMessage
();
DataItem
ChangeMessage
itemUpdateMessage
=
new
DataItemChang
eMessage
();
itemUpdateMessage
.
setItemId
(
"123"
);
itemUpdateMessage
.
setItemId
(
"123"
);
itemUpdateMessage
.
setItemType
(
SearchItemType
.
PROJECT
);
itemUpdateMessage
.
setItemType
(
SearchItemType
.
PROJECT
);
itemUpdateMessage
.
set
UpdateType
(
SearchItemUpdat
eType
.
ADD
);
itemUpdateMessage
.
set
ChangeType
(
DataItemChang
eType
.
ADD
);
messageQueueService
.
sendItemUpdateMessage
(
itemUpdateMessage
);
messageQueueService
.
sendItemUpdateMessage
(
itemUpdateMessage
);
}
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment