- Linux的命令总结:
- 连接redis不成功可能是防火墙:(当然在公司不可能采用如此极端的方式)systemctl stop firewalld.service
- 查看所有一个应用的pid: ps -ef |grep ngix
- 开启nginx:在nginx 的文件夹下进入到nginx 的sbin的目录下,开启nginx: ./nginx -t
- 关闭nginx:查找进程号 pid 并且用pid kill -9 pid
- 开启redis(相当于缓存存储数据):redis-server /etc/redis/redis.conf
- 关闭redis : kill -9 进程号 pid
- 开启tomcat:进入到usr/local/tomcat/bin/start.h ---> ./start.h
- 开启tomcat的日志文件:usr/local/tomcat/logs/-----> tail -f catalina.out
- zookeeper的开启方式:进入到usr/local/zookeeper/bin ----> ./zkServer.sh start
- 检验是否开启成功: netstat -ano|grep 2181 (任何应用的端口都可以查出来)
- 关于MQ的整理的内容:

- 消息队列(Mq):
- 其实就是在原本的业务上附加一个与主业不相关的业务,而这个业务仅仅就是一个附属品而已,他的实现与否对这个主业务并不能造成影响
-配置Spring-ioc。xml的配置文件:(这个bean的id一定redisConnectionFactory)不可以更改只要使用到了mq的id
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <!-- redis 配置 --> <!-- 配置redis的连接工厂 --> <bean id="redisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:host-name="10.0.152.229" p:port="6379"> <!-- <property name="hostName" value="10.0.152.204"></property> --> <!-- <property name="post" value="6379"></property> --> </bean> <!-- 操作redis的封装类 --> <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate" p:connection-factory-ref="redisConnectionFactory"> <!-- <property name="connectionFactory" ref="jedisConnectionFactory"></property> --> <!--配置两个序列化的工具,一个key,一个是value --> </bean>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| package springdata;
import java.io.Serializable;
public class MessageModel implements Serializable{ private String message; private String puUser; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String getPuUser() { return puUser; } public void setPuUser(String puUser) { this.puUser = puUser; } @Override public String toString() { return "MessageModel [message=" + message + ", puUser=" + puUser + "]"; } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| package springdata;
import java.io.Serializable;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component;
/** * 消息的发送者 * @author Administrator * */ @Component public class SendMessage { @Autowired private StringRedisTemplate redisTemplate; /** * 发送消息的方法 * message 要发送的消息 * channel 队列的名字 */
public void sendMessage(String channel,Serializable message){ redisTemplate.convertAndSend(channel, message); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| package springdata;
import java.io.Serializable;
import org.springframework.stereotype.Component;
/** * 消息的接收者 * @author Administrator * 削峰 * */ @Component public class Listener { /** * 创建监听的方法,接收消息并且处理 * 方法的名字,没有具体的要求 * sdr 会默认调用监听的handleMessage方法 */ public void handleMessage(Serializable message){ if (message instanceof MessageModel) { { MessageModel messageModel= (MessageModel) message; //逻辑可以在这实现 System.out.println(message); } } } }
|
- 一上的功能就使用StringRedisTemplate 的convertAndSend(指定队列名和message)