solr集群:SolrCloud
同步索引库:消息队列
topic01 solrCloud
zookeeper集群管理器 自身高可用 投票机制
主从solr服务器,分片shard,组成collection
搭伪集群 内存大一些1G
学会zookeeper集群搭建(/usr/local/solr-cloud/zookeeper0x)
创建data目录 myid
改配置:
dataDir
节点列表:
server.1=192.168.230.200:2881:3881
server.2=192.168.230.200:2882:3882
server.3=192.168.230.200:2883:3883
start-all.sh脚本编写
solr集群
4个solr布置到tomcat(直接复制单机版的solr项目目录)
【未解之谜】*改tc conf/server.xml 三个端口号???!为什么呀
8005==》8105
8080==》8180
8009==》8109
solrhome四份,并且修改tomcat的solr的配置,关联上
web.xml的env-entry
solrhome的solr.xml:单机版不需要,集群版就需要配置了!
host hostport(8180 8280 8380)
solr和zookeeper关联:
tomcat0x/bin/catalina.sh 改JAVA_OPTS
加在$JAVA_OPTS是引用之前的一句话:
JAVA_OPTS=”-DzkHost=(三个zookeeper的host和port)”
便于tc运行solr工程时候找到zookeeper集群所在地
zookeeper管理一份配置文件;
./zkcli.sh -zkhost
192.168.230.100:2181,192.168.230.100:2182,192.168.230.100:2183
-cmd upconfig -confdir /usr/local/solr-
cloud/solrhome01/collection1/conf -confname myconf
使用zookeeper0x的bin/zkCli.sh -server
连接到集群
启动tomcat 可以使用批处理脚本
collection管理(页面)
创建新的(collection),并分片命令(浏览器中)
http://192.168.230.100:8180/solr/admin/collections?
action=CREATE&name=collection2&numShards=2&replicationFactor=2
不同collection之间:独立的索引库
也可以浏览器删除collection
http://192.168.230.100:8180/solr/admin/collections?
action=DELETE&name=collection1
使用solrj管理集群
配置文件切换单机/集群
要义:与单机版的区别类似redis和集群版的实现
topic02 new topic 消息队列 消息中间件
需求:manager添加商品时候发送消息同步到索引库
消息发布的方式:
点对点
广播
Activemq搭建
step0:jdk
step1:解压acticemq
jar:加入java项目5.12
spring的话不用这个版本的
客户端5.11版本spring可用
step3:bin/activemq start
bin/activemq stop
step4:后台:8161
step5:登陆:admin admin
*405错误:配置hosts
/etc/sysconfig/network
功能测试
step1:manager-service 添加客户端依赖 activemq 5.11
(queue,topic)
step2:发送者producer代码编写
step3:接受者者consumer代码编写
setMessageListener:
匿名内部类的方法:onMessage强转,得到消息,tc块
**bonus:持久化topic消息:在服务端注册客户端id
topic03 全局异常处理(异常全部抛给相应工程的表现层)
在表现层创建处理类:implements HandlerExceptionResolver
log4j.properties加在resources元目录下
最后别忘在springmvc.xml配置bean
注:sl4j 是对log4j的封装,底层还可以是commons-log等
写日志时必须的://sl4j
private static final Logger logger =
LoggerFactory.getLogger(GlobalExceptionResolver.class);
logger.xxx