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

门户网站建设和管理情况自查常见的网络营销类型有

门户网站建设和管理情况自查,常见的网络营销类型有,中铁建设集团门户网站,常州外贸网站目录 一、认识Canal二、安装和配置Canal1、安装mysql2.开启MySQL主从3.安装Canal 三、监听Canal1.引入依赖#xff1a;2.编写配置#xff1a;3.修改Item实体类4.编写监听器 学习Redis 高级篇多级缓存【缓存同步】时#xff0c;相关canal的知识 一、认识Canal Canal [kə’… 目录 一、认识Canal二、安装和配置Canal1、安装mysql2.开启MySQL主从3.安装Canal 三、监听Canal1.引入依赖2.编写配置3.修改Item实体类4.编写监听器 学习Redis 高级篇多级缓存【缓存同步】时相关canal的知识 一、认识Canal Canal [kə’næl]译意为水道/管道/沟渠canal是阿里巴巴旗下的一款开源项目基于Java开发。基于数据库增量日志解析提供增量数据订阅消费。GitHub的地址https://github.com/alibaba/canal Canal是基于mysql的主从同步来实现的MySQL主从同步的原理如下 1MySQL master 将数据变更写入二进制日志( binary log其中记录的数据叫做binary log events2MySQL slave 将 master 的 binary log events拷贝到它的中继日志(relay log)3MySQL slave 重放 relay log 中事件将数据变更反映它自己的数据 而Canal就是把自己伪装成MySQL的一个slave节点从而监听master的binary log变化。再把得到的变化信息通知给Canal的客户端进而完成对其它数据库的同步。 二、安装和配置Canal 为了方便快捷mysql和canal都使用 docker的方式进行创建 1、安装mysql 1准备目录 为了方便后期配置MySQL我们先准备两个目录用于挂载容器的数据和配置文件目录 cd /mysoft mkdir mysql_docker运行命令 进入mysql_docker目录后执行下面的Docker命令 docker run \-p 3306:3306 \--name mysql \-v $PWD/conf:/etc/mysql/conf.d \-v $PWD/logs:/logs \-v $PWD/data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD134563175 \--privileged \-d \mysql:5.7.25# docker run -it -v /宿主机的绝对路径目录:/容器内的目录 镜像名修改配置 # 创建文件 touch /mysoft/mysql_docker/conf/my.cnf文件的内容如下 [mysqld] skip-name-resolve character_set_serverutf8 datadir/var/lib/mysql server-id1000重启 配置修改后必须重启容器 docker restart mysql2.开启MySQL主从 Canal是基于MySQL的主从同步功能因此必须先开启MySQL的主从功能才可以。 这里以之前用Docker运行的mysql为例 2.1 开启binlog 打开mysql容器挂载的日志文件我的在 /mysoft/mysql_docker/conf 目录: 修改文件my.cnf 添加内容 log-bin/var/lib/mysql/mysql-bin binlog-do-dbheima配置解读 log-bin/var/lib/mysql/mysql-bin设置binary log文件的存放地址和文件名叫做mysql-binbinlog-do-dbheima指定对哪个database记录binary log events这里记录heima这个库 2.2 设置用户权限 接下来添加一个仅用于数据同步的账户出于安全考虑这里仅提供对heima这个库的操作权限。 create user canal% IDENTIFIED by canal; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT,SUPER ON *.* TO canal% identified by canal; FLUSH PRIVILEGES;重启mysql容器即可 docker restart mysql测试设置是否成功在mysql控制台或者Navicat中输入命令 show master status;3.安装Canal 以docker的方式创建并运行canal 3.1 创建网络 我们需要创建一个网络将MySQL、Canal、MQ放到同一个Docker网络中 docker network create heima让mysql加入这个网络 docker network connect heima mysql然后运行命令创建Canal容器 docker run -p 11111:11111 --name canal \ -e canal.destinationsheima \ -e canal.instance.master.addressmysql:3306 \ -e canal.instance.dbUsernamecanal \ -e canal.instance.dbPasswordcanal \ -e canal.instance.connectionCharsetUTF-8 \ -e canal.instance.tsdb.enabletrue \ -e canal.instance.gtidonfalse \ -e canal.instance.filter.regexheima\\..* \ --network heima \ -d canal/canal-server:v1.1.5说明: -p 11111:11111这是canal的默认监听端口-e canal.instance.master.addressmysql:3306数据库地址和端口如果不知道mysql容器地址可以通过docker inspect 容器id来查看-e canal.instance.dbUsernamecanal数据库用户名-e canal.instance.dbPasswordcanal 数据库密码-e canal.instance.filter.regex要监听的表名称 表名称监听支持的语法 三、监听Canal Canal提供了各种语言的客户端当Canal监听到binlog变化时会通知Canal的客户端。 我们可以利用Canal提供的Java客户端监听Canal通知消息。当收到变化的消息时完成对缓存的更新。 不过这里我们会使用GitHub上的第三方开源的canal-starter客户端。地址https://github.com/NormanGyllenhaal/canal-client 与SpringBoot完美整合自动装配比官方客户端要简单好用很多。 1.引入依赖 dependencygroupIdtop.javatool/groupIdartifactIdcanal-spring-boot-starter/artifactIdversion1.2.1-RELEASE/version /dependency2.编写配置 canal:destination: heima # canal的集群名字要与安装canal时设置的名称一致server: 192.168.150.101:11111 # canal服务地址3.修改Item实体类 通过Id、Column、等注解完成Item与数据库表字段的映射 package com.heima.item.pojo;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 lombok.Data; import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Transient;import javax.persistence.Column; import java.util.Date;Data TableName(tb_item) public class Item {TableId(type IdType.AUTO)Idprivate Long id;//商品idColumn(name name)private String name;//商品名称private String title;//商品标题private Long price;//价格分private String image;//商品图片private String category;//分类名称private String brand;//品牌名称private String spec;//规格private Integer status;//商品状态 1-正常2-下架private Date createTime;//创建时间private Date updateTime;//更新时间TableField(exist false)Transientprivate Integer stock;TableField(exist false)Transientprivate Integer sold; }4.编写监听器 通过实现EntryHandlerT接口编写监听器监听Canal消息。注意两点 实现类通过CanalTable(tb_item)指定监听的表信息EntryHandler的泛型是与表对应的实体类 package com.heima.item.canal;import com.github.benmanes.caffeine.cache.Cache; import com.heima.item.config.RedisHandler; import com.heima.item.pojo.Item; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import top.javatool.canal.client.annotation.CanalTable; import top.javatool.canal.client.handler.EntryHandler;CanalTable(tb_item) Component public class ItemHandler implements EntryHandlerItem {Autowiredprivate RedisHandler redisHandler;Autowiredprivate CacheLong, Item itemCache;Overridepublic void insert(Item item) {// 写数据到JVM进程缓存itemCache.put(item.getId(), item);// 写数据到redisredisHandler.saveItem(item);}Overridepublic void update(Item before, Item after) {// 写数据到JVM进程缓存itemCache.put(after.getId(), after);// 写数据到redisredisHandler.saveItem(after);}Overridepublic void delete(Item item) {// 删除数据到JVM进程缓存itemCache.invalidate(item.getId());// 删除数据到redisredisHandler.deleteItemById(item.getId());} }
http://www.zqtcl.cn/news/76708/

相关文章:

  • 做烧烤的网站网站建设捌金手指花总二五
  • 在线模版下载网站网页设计尺寸多少比较好
  • 天津市建设公司网站做彩票网站犯法吗
  • 临沂网站建设技术托管做电玩城设计的网站
  • 成都网站建设众成联邦如何介绍自己的网页
  • 经网站建设是什么经营范围软件开发流程图怎么做
  • 文山网站建设代理腾讯云wordpress建站
  • 做网站和做免费推广网站的区别大连工业大学是一本还是二本
  • 中国风古典网站模板品牌网站建设设计公司
  • 伍菲网站建设怎么样开发小程序
  • 界面做的最好的网站做qq链接的网站
  • 如何搭建一个简单的网站什么是企业网站pv
  • 爱站网是干什么的佛山新网站建设策划
  • 兰州网站排名优化公司北京百度推广
  • 企业网站建设的开发方式seoul什么意思
  • 微网站搭建教程英铭长沙网站建设
  • 网站首页制作实验报告中学网站管理系统下载
  • 大连网站如何制作wordpress有中文版吗
  • 手机怎么制作网站教程视频教程网上商城系统的设计与实现
  • 找人做网站注意什么问题网站备案表是什么
  • 锦州网站建设新闻贵州网站建设lonwone
  • 买源码做网站网站制作工作流程
  • 高端网站案例网站建设中国建材建设网站
  • wix做的网站在国内访问不wordpress 插件模板
  • 努比亚网站开发文档外贸网站建设报价差别那么大花钱多吃亏
  • 医疗图片做网站图片有什么做美食的视频网站
  • 烟台企业网站网站里的内容都是什么作用
  • 吉林省建设监理协会网站诚信建设wordpress做在线编辑图片
  • 网站知识架构phpcmsv9中英文网站
  • php安防企业网站源码重庆智能网站建设多少钱