当前位置: 首页 > news >正文

高端网站建设定制谷歌google官网入口

高端网站建设定制,谷歌google官网入口,模板建站广团,南宁外贸网站建设目录 一、开启binlog日志 1.首先查看是否开启了binlog 2、开启binlog日志,并重启mysql服务 二、授权 canal 链接 MySQL 账号具有作为 MySQL slave 的权限 三、下载配置canal 1、下载 canal, 访问 release 页面 , 选择需要的包下载, 如以 1.0.17 版本为例 2、 …

目录

一、开启binlog日志

1.首先查看是否开启了binlog

2、开启binlog日志,并重启mysql服务

二、授权 canal 链接 MySQL 账号具有作为 MySQL slave 的权限

三、下载配置canal

1、下载 canal, 访问 release 页面 , 选择需要的包下载, 如以 1.0.17 版本为例

2、 修改conf\example文件夹下instance.properties配置文件

3、启动canal服务(windows下是bat,linux是sh)

四、基于Canal通知原理

五、项目集成

1、pom依赖

2、编写依赖

3、修改Item实体类

4、编写监听器(Redis/ jvm缓存同步) 

六、测试

1、数据库表数据和redis数据

2、添加数据

3、修改数据

​编辑4、删除数据


一、开启binlog日志

1.首先查看是否开启了binlog

show variables like '%log_bin%';

如果是OFF说明位开启

2、开启binlog日志,并重启mysql服务

右键我的电脑——管理——服务——MYSQL——属性

这里是my.ini地址

在[mysqld]底下添加

log-bin= mysqlbinlog

binlog-format=ROW

在这里插入图片描述

配置好之后,要进行重启mysql服务

查看状态 

show variables like '%log_bin%';

开启成功 

二、授权 canal 链接 MySQL 账号具有作为 MySQL slave 的权限

CREATE USER canal IDENTIFIED BY 'canal';  
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;

三、下载配置canal

1、下载 canal, 访问 release 页面 , 选择需要的包下载, 如以 1.0.17 版本为例

解压后

2、 修改conf\example文件夹下instance.properties配置文件

最终配置文件

#################################################

## mysql serverId , v1.0.26+ will autoGen

# canal.instance.mysql.slaveId=0

# enable gtid use true/false

canal.instance.gtidon=false

# position info

canal.instance.master.address=127.0.0.1:3306

canal.instance.master.journal.name=

canal.instance.master.position=

canal.instance.master.timestamp=

canal.instance.master.gtid=

# rds oss binlog

canal.instance.rds.accesskey=

canal.instance.rds.secretkey=

canal.instance.rds.instanceId=

# table meta tsdb info

canal.instance.tsdb.enable=true

#canal.instance.tsdb.url=jdbc:mysql://127.0.0.1:3306/canal_tsdb

#canal.instance.tsdb.dbUsername=canal

#canal.instance.tsdb.dbPassword=canal

#canal.instance.standby.address =

#canal.instance.standby.journal.name =

#canal.instance.standby.position =

#canal.instance.standby.timestamp =

#canal.instance.standby.gtid=

# username/password

canal.instance.dbUsername=root

canal.instance.dbPassword=msir1234

canal.instance.connectionCharset = UTF-8

# enable druid Decrypt database password

canal.instance.enableDruid=false

#canal.instance.pwdPublicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALK4BUxdDltRRE5/zXpVEVPUgunvscYFtEip3pmLlhrWpacX7y7GCMo2/JM6LeHmiiNdH1FWgGCpUfircSwlWKUCAwEAAQ==

# table regex

canal.instance.filter.regex=.*\\..*

# table black regex

canal.instance.filter.black.regex=mysql\\.slave_.*

# table field filter(format: schema1.tableName1:field1/field2,schema2.tableName2:field1/field2)

#canal.instance.filter.field=test1.t_product:id/subject/keywords,test2.t_company:id/name/contact/ch

# table field black filter(format: schema1.tableName1:field1/field2,schema2.tableName2:field1/field2)

#canal.instance.filter.black.field=test1.t_product:subject/product_image,test2.t_company:id/name/contact/ch

# mq config

canal.mq.topic=example

# dynamic topic route by schema or table regex

#canal.mq.dynamicTopic=mytest1.user,topic2:mytest2\\..*,.*\\..*

canal.mq.partition=0

# hash partition config

#canal.mq.enableDynamicQueuePartition=false

#canal.mq.partitionsNum=3

#canal.mq.dynamicTopicPartitionNum=test.*:4,mycanal:6

#canal.mq.partitionHash=test.table:id^name,.*\\..*

#################################################

3、启动canal服务(windows下是bat,linux是sh)

 点击startup.bat启动

查看日志 logs\canal\canal.log,如果启动成功则如下图

四、基于Canal通知原理

在这里插入图片描述

解读:

  • 商品服务完成商品修改后,业务直接结束,没有任何代码侵入
  • Canal监听MySQL数据库的变化,当发现变化后,立即通知缓存服务。
  • 缓存服务接收到canal通知,更新缓存

五、项目集成

1、pom依赖

使用GitHub上的第三方开源的canal-starter客户端。地址:https://github.com/NormanGyllenhaal/canal-client

<dependency>
        <groupId>top.javatool</groupId>
        <artifactId>canal-spring-boot-starter</artifactId>
        <version>1.2.1-RELEASE</version>
</dependency>

2、编写依赖

canal:
   destination: example
   server: localhost:11111        #canal的ip地址和端口

3、修改Item实体类

Canal推送给canal-client的是被修改的这一行数据(row),而我们引入的canal-client则会帮我们把行数据封装到Item实体类中。这个过程需要知道数据库与实体的映射关系。需要用到JPA的注解:

通过@Id、@Column等注解完成Item与数据库表字段的映射:

注意,如果和数据库名称不同必须用@Column

package com.springboot3.domain;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;import javax.persistence.Column;
import javax.persistence.Id;/*** * @TableName course*/
@TableName(value ="course")
@Data
public class Course implements Serializable {/*** */@Id@TableIdprivate String id;/*** */private String name;/*** */@Column(name = "teacher_id")private String teacherId;@TableField(exist = false)private static final long serialVersionUID = 1L;
}

4、编写监听器(Redis/ jvm缓存同步) 

通过实现EntryHandler<T>接口编写监听器,监听Canal消息。注意两点:

  • 实现类通过@CanalTable("course")指定监听的表信息。
  • EntryHandler的泛型是与表对应的实体类
package com.springboot3.handler;import com.springboot3.domain.Course;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import top.javatool.canal.client.annotation.CanalTable;
import top.javatool.canal.client.handler.EntryHandler;@CanalTable(value = "Course")
@Component
@Slf4j
public class CourseHandler implements EntryHandler<Course> {@Autowiredprivate RedisTemplate redisTemplate;@Overridepublic void insert(Course course) {log.info("insert message  {}", course);redisTemplate.opsForValue().set(course.getId(),course);}@Overridepublic void update(Course before, Course after) {log.info("update before {} ", before);log.info("update after {}", after);redisTemplate.opsForValue().set(after.getId(),after);}@Overridepublic void delete(Course course) {log.info("delete  {}", course);redisTemplate.delete(course.getId());}
}

六、测试

1、数据库表数据和redis数据

数据库:

redis:

2、添加数据

添加数据物理

控制台显示:

redis数据库:

3、修改数据

将物理修改为化学

控制台显示:

redis数据库:

4、删除数据

删除化学科目

控制台数据

 redis数据库数据:

http://www.hkea.cn/news/783483/

相关文章:

  • 山东电商网站建设seo网站排名优化公司
  • 赤峰市做网站公司今日的最新消息
  • 上海最大的贸易公司seo网络推广机构
  • jsp 网站开发广告发布平台
  • b2c网站综合对比评价站长统计幸福宝
  • 网站建设意见做推广app赚钱的项目
  • 哈尔滨营销网站制作做外贸推广
  • 深圳网站建设外贸公司排名搜索热词排名
  • 网络科技公司招聘可靠吗seo多久可以学会
  • 企业网站建设的方案ppt网络营销的特点主要包括什么
  • 如何自行建设网站推广关键词优化
  • 建设学院网站百度收录关键词查询
  • 有关外贸的网站有哪些内容武汉抖音seo搜索
  • 娄底网站建设的话术深圳网站关键词排名优化
  • 福田大型商城网站建设seo营销方法
  • 网站开发专业就业指导企业网站设计与实现论文
  • 网络营销方式的思维导图seo关键词优化系统
  • wordpress访客ip记录福清市百度seo
  • 网站下载速度慢互联网广告推广公司
  • 电影网站空间配置网络营销的工具和方法有哪些
  • 包装设计网站免费百度seo搜索引擎优化厂家
  • 免费做公司网站sem对seo的影响有哪些
  • 网站空间购买费用关键词优化计划
  • 网站制作可以卖多少钱陕西网站建设制作
  • 深圳中小企业网站制作谷歌海外广告投放
  • 做游戏网站的需求分析创建app平台
  • 青岛胶南做网站的有多少seo商学院
  • 二月网站建设南宁百度个人中心登录
  • 如何在相关网站免费做宣传广告免费建立个人网站官网
  • 做搜狗网站优化首自己建立网站步骤