当前位置:   article > 正文

通过Elasticsearch+RabbitMQ+Canal实现对首页的课程的多条件过滤和数据同步_rabbitmq+canal+es

rabbitmq+canal+es

首先我们先看看Elastic的官网:https://www.elastic.co/cn/

Elastic有一条完整的产品线:Elasticsearch、Kibana、Logstash等,前三个简称为ELK技术栈。

Elasticsearch:

 

它有以下的特点:

①分布式,不需要人工去搭建集群

②Restful风格,比较容易上手

③搜索时,数据更新在Elasticsearch中几乎是完全同步的

 倒排索引:

 与传统的按照索引去查询数据不同,它是先查询键,再根据键去查询值。

Lucene:

它是一个库,用来创建倒排索引的,Elasticsearch是基于它的开源实时分布式搜索和分析引擎。

这个引擎安装起来比较复杂,就不细说了,接下来直接进入正题,在项目中具体的使用。

首先我们新建一个搜索服务:

因为是微服务,所以我的主项目的依赖是:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <packaging>pom</packaging>
  6. <modules>
  7. <module>common_api</module>
  8. </modules>
  9. <parent>
  10. <groupId>org.springframework.boot</groupId>
  11. <artifactId>spring-boot-starter-parent</artifactId>
  12. <version>2.3.4.RELEASE</version>
  13. <relativePath/> <!-- lookup parent from repository -->
  14. </parent>
  15. <groupId>com.blb</groupId>
  16. <artifactId>wisdom_education</artifactId>
  17. <version>0.0.1-SNAPSHOT</version>
  18. <name>wisdom_education</name>
  19. <description>Demo project for Spring Boot</description>
  20. <properties>
  21. <java.version>1.8</java.version>
  22. <spring.cloud-version>Hoxton.SR8</spring.cloud-version>
  23. <spring-cloud-alibaba.version>2.2.5.RELEASE</spring-cloud-alibaba.version>
  24. </properties>
  25. <dependencyManagement>
  26. <dependencies>
  27. <dependency>
  28. <groupId>org.springframework.cloud</groupId>
  29. <artifactId>spring-cloud-dependencies</artifactId>
  30. <version>${spring.cloud-version}</version>
  31. <type>pom</type>
  32. <scope>import</scope>
  33. </dependency>
  34. <dependency>
  35. <groupId>com.alibaba.cloud</groupId>
  36. <artifactId>spring-cloud-alibaba-dependencies</artifactId>
  37. <version>${spring-cloud-alibaba.version}</version>
  38. <type>pom</type>
  39. <scope>import</scope>
  40. </dependency>
  41. </dependencies>
  42. </dependencyManagement>
  43. <dependencies>
  44. <dependency>
  45. <groupId>org.projectlombok</groupId>
  46. <artifactId>lombok</artifactId>
  47. <optional>true</optional>
  48. </dependency>
  49. <dependency>
  50. <groupId>org.springframework.boot</groupId>
  51. <artifactId>spring-boot-starter-test</artifactId>
  52. <scope>test</scope>
  53. </dependency>
  54. <dependency>
  55. <groupId>org.springframework.boot</groupId>
  56. <artifactId>spring-boot-starter</artifactId>
  57. </dependency>
  58. </dependencies>
  59. <build>
  60. <plugins>
  61. <plugin>
  62. <groupId>org.springframework.boot</groupId>
  63. <artifactId>spring-boot-maven-plugin</artifactId>
  64. <configuration>
  65. <excludes>
  66. <exclude>
  67. <groupId>org.projectlombok</groupId>
  68. <artifactId>lombok</artifactId>
  69. </exclude>
  70. </excludes>
  71. </configuration>
  72. </plugin>
  73. </plugins>
  74. </build>
  75. </project>

想要在搜索服务中添加这个引擎,得先导入它依赖:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>com.blb</groupId>
  7. <artifactId>wisdom_education</artifactId>
  8. <version>0.0.1-SNAPSHOT</version>
  9. </parent>
  10. <groupId>com.blb</groupId>
  11. <artifactId>wisdom_education_elasticsearch</artifactId>
  12. <version>0.0.1-SNAPSHOT</version>
  13. <name>wisdom_education_elasticsearch</name>
  14. <description>Demo project for Spring Boot</description>
  15. <properties>
  16. <java.version>1.8</java.version>
  17. </properties>
  18. <dependencies>
  19. <dependency>
  20. <groupId>org.springframework.boot</groupId>
  21. <artifactId>spring-boot-starter-web</artifactId>
  22. </dependency>
  23. <dependency>
  24. <groupId>com.blb</groupId>
  25. <artifactId>common_api</artifactId>
  26. <version>0.0.1-SNAPSHOT</version>
  27. </dependency>
  28. <dependency>
  29. <groupId>org.springframework.boot</groupId>
  30. <artifactId>spring-boot-starter-test</artifactId>
  31. <scope>test</scope>
  32. </dependency>
  33. <dependency>
  34. <groupId>org.springframework.boot</groupId>
  35. <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
  36. </dependency>
  37. <dependency>
  38. <groupId>com.alibaba.cloud</groupId>
  39. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  40. </dependency>
  41. <dependency>
  42. <groupId>org.springframework.cloud</groupId>
  43. <artifactId>spring-cloud-starter-openfeign</artifactId>
  44. </dependency>
  45. <dependency>
  46. <groupId>com.alibaba</groupId>
  47. <artifactId>fastjson</artifactId>
  48. <version>1.2.47</version>
  49. </dependency>
  50. <dependency>
  51. <groupId>org.springframework.boot</groupId>
  52. <artifactId>spring-boot-starter-amqp</artifactId>
  53. </dependency>
  54. <dependency>
  55. <groupId>org.springframework.boot</groupId>
  56. <artifactId>spring-boot-starter-data-redis</artifactId>
  57. </dependency>
  58. </dependencies>
  59. <build>
  60. <plugins>
  61. <plugin>
  62. <groupId>org.springframework.boot</groupId>
  63. <artifactId>spring-boot-maven-plugin</artifactId>
  64. </plugin>
  65. </plugins>
  66. </build>
  67. </project>

这是我整个服务所需要的所有依赖,可以根据需求添加;

接着在配置文件中配置uri:

先把配置文件修改一下把后缀名改成yaml结尾。

  1. spring:
  2. application:
  3. name: wisdom-
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/445285
推荐阅读
相关标签
  

闽ICP备14008679号