springboot+redis+angular+zookeeper+kafka等实战
很遗憾,看了很多文章都没有我想要很多实际中能切合。脱离了环境的说明我不认为是有效的。
基础环境要有,这里使用docker构建基础环境。没有基础就不要看这篇文章了,不然浪费时间,其次东西完全是个人研究用,不保证100%对。
保证docker虚拟机已有。
1、redis集群配置:下面的一切依照官网而来。
dockerhub官网
搜索redis。选择适合你虚拟机的版本。
这是我的版本。并确保环境干净。
Connecting to 192.168.253.129:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.15.0-112-generic x86_64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/advantage
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
我们先来装一个redis,并尝试调试成功,再来集群化,并将过程dockerFile脚本化。
按照官网一步步来:
# 安装最新redis
root@ubuntu:~# docker pull redis
Using default tag: latest
latest: Pulling from library/redis
d121f8d1c412: Pull complete
2f9874741855: Pull complete
d92da09ebfd4: Pull complete
bdfa64b72752: Pull complete
e748e6f663b9: Pull complete
eb1c8b66e2a1: Pull complete
Digest: sha256:a05a8a1ebbef72690034a77451e6e83f4d899779190d1c00d8ab1a3a4fbbbd22
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest
# 查看已安装镜像
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 84c5f6e03bf0 39 hours ago 104MB
# 启动容器,要做端口映射,如果不了解网络原理,自己去查。
root@ubuntu:~# docker run --name myredis -p 6379:6379 -d redis redis-server
11d70622fcb1bf6985423f94c2afbd7b390609656985193997cbb2bf3a9dd02f
# 查看已启动容器
root@ubuntu:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
11d70622fcb1 redis "docker-entrypoint.s…" 28 seconds ago Up 27 seconds 0.0.0.0:6379->6379/tcp myredis
# 服务其上测试安装成功,并可使用
root@ubuntu:~# docker exec -it 11d70622fcb1 /bin/bash
root@11d70622fcb1:/data# redis-cli
127.0.0.1:6379> set mykey "test ok"
OK
127.0.0.1:6379> get mykey
"test ok"
127.0.0.1:6379>
测试本地如何连接上我们服务器上的docker:
首先redis desktop manager连接成功:
本地新建一个springboot工程:
pom.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.docker</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- 这个包是必须的 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId><version>2.6.2</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
配置文件application.properties:
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=192.168.253.129
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制) 默认 8
spring.redis.lettuce.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
spring.redis.lettuce.pool.max-wait=-1
# 连接池中的最大空闲连接 默认 8 使用lettuce
spring.redis.lettuce.pool.max-idle=8
# 连接池中的最小空闲连接 默认 0
spring.redis.lettuce.pool.min-idle=0
测试类:
package com.docker.demo;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;@RestController
public class DemoController {@Autowiredprivate StringRedisTemplate redisTemplate;@RequestMapping("/test")@ResponseBodypublic String test() {return redisTemplate.opsForValue().get("mykey");}
}
测试结果如下:
到此说明这一切是通,我们这一系列过程是对的。那么接下里就是复杂化,并编写脚本实现。
首先我要创建给redis创一个network: 这是为了保证了集群化在一个网段内。
root@ubuntu:~# docker network create redis --subnet 172.38.0.0/16
root@ubuntu:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
ba7152491897 bridge bridge local
6c14996eff23 host host local
dcce898c2df5 none null local
868ef963e47e redis bridge local
创建6个redis的脚本:
root@ubuntu:/home/script# vim redis.sh
root@ubuntu:/home/script# sh redis.sh
root@ubuntu:/home/script# pwd
/home/script
root@ubuntu:/home/script# cd /mydata
root@ubuntu:/mydata# cd redis/
root@ubuntu:/mydata/redis# ls
node-1 node-2 node-3 node-4 node-5 node-6
root@ubuntu:/mydata/redis# cd node-1
root@ubuntu:/mydata/redis/node-1# ls
conf data
脚本:
# 脚本创建6个redis
for port in $(seq 1 6);\
do \
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat <<EOF> /mydata/redis/node-${port}/conf/redis.conf
protected-mode no
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
requirepass useaverystrongpasswordfoobared666useaverystrongpassword888useaverystrongpassword999useaverystrongpassword110
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
# 集群配置
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
EOF
done
root@ubuntu:/home/script# vim redis-start.sh# 启动脚本
for port in $(seq 1 6); \
do \
docker run -d -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \
-v /mydata/redis/node-${port}/data:/data \
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.1${port} redis:5.0.9 redis-server /etc/redis/redis.conf; \
done
然而并不是那么顺利,我们发现启动了就立马退出了。来变量控制是什么导致这个原因的。
root@ubuntu:/etc# docker run --name myredis -p 6379:6379 -p 16379:16379 -d redis redis-server /etc/redis/redis.conf;
6ae8653bab807a05bb7717b2cefa112e582d4580ce9d096c1c5e3fd40ae37a1e
root@ubuntu:/etc# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@ubuntu:/etc# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6ae8653bab80 redis "docker-entrypoint.s…" About a minute ago Exited (1) About a minute ago myredis
root@ubuntu:/etc# docker run --name myredis -p 6379:6379 -p 16379:16379 -d redis redis-server
docker: Error response from daemon: Conflict. The container name "/myredis" is already in use by container "6ae8653bab807a05bb7717b2cefa112e582d4580ce9d096c1c5e3fd40ae37a1e". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.
root@ubuntu:/etc# docker rm -f $(docker ps -aq)
6ae8653bab80
root@ubuntu:/etc# docker run --name myredis -p 6379:6379 -p 16379:16379 -d redis redis-server
a0dc6522d49ed8d93841e7ab8affad5f69c37287511d85f5a71e0d109285c1ff
root@ubuntu:/etc# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a0dc6522d49e redis "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:6379->6379/tcp, 0.0.0.0:16379->16379/tcp myredis
通过上面我们可以发现,启动不加配置文件是可以启动的。启动加上配置文件,启动就立马停止了,所以问题应该出在/etc/redis/redis.conf
配置中,
root@ubuntu:/# find -name "redis.conf"
./mydata/redis/node-2/conf/redis.conf
./mydata/redis/node-6/conf/redis.conf
./mydata/redis/node-3/conf/redis.conf
./mydata/redis/node-1/conf/redis.conf
./mydata/redis/node-4/conf/redis.conf
./mydata/redis/node-5/conf/redis.conf
可以发现,并没有这个文件。从官网下载(是指下载对应的redis打开安装好后,找到该文件放上去)
放上去后就可以看到该目录文件了。个人建议不要用最新版,不好查版本。
root@ubuntu:/# find -name "redis.conf"
./mydata/redis/node-2/conf/redis.conf
./mydata/redis/node-6/conf/redis.conf
./mydata/redis/node-3/conf/redis.conf
./mydata/redis/node-1/conf/redis.conf
./mydata/redis/node-4/conf/redis.conf
./mydata/redis/node-5/conf/redis.conf
find: ‘./run/user/1000/gvfs’: Permission denied
./etc/redis/redis.conf
我们再来试一试:结果还是失败。
检查配置文件是否设置了daemonize yes,如果是,就要改为daemonize no,因为该选项让redis成为在后台运行的守护进程,而docker容器必须要有一个前台进程才能留存。我们启动的时候又使用了-d命令。
然而也不是这个原因。
清空环境。从头再来,我们去先去下载一个tar包
再去docker pull redis:5.0.9
,从而保证变量一致性。
将上面配置文件脚本改为:
protected-mode no
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
# requirepass 123456
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
主要改了:(密码不重要)
# bind 127.0.0.1
protected-mode no
# 可以不设,配置前可以设置,后面一定要设置
requirepass 123456
daemonize no
结果如下:
root@ubuntu:/mydata# docker run -p 6371:6379 -p 16371:16379 --name redis-1 -v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf -d --net redis --ip 172.38.0.11 redis:5.0.9 redis-server /etc/redis/redis.conf;
64055d4b6eb8d19841da7ad09e6ba42481f21bfb26730fb6aec6725ecca3066d
root@ubuntu:/mydata# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
64055d4b6eb8 redis:5.0.9 "docker-entrypoint.s…" 9 seconds ago Up 7 seconds 0.0.0.0:6371->6379/tcp, 0.0.0.0:16371->16379/tcp redis-1
反过去修改上面的脚本。
运行脚本的最终结果如下面:
root@ubuntu:/home/script# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
15a0b18c9b9a redis:5.0.9 "docker-entrypoint.s…" 7 seconds ago Up 6 seconds 0.0.0.0:6376->6379/tcp, 0.0.0.0:16376->16379/tcp redis-6
d097f6d6050c redis:5.0.9 "docker-entrypoint.s…" 8 seconds ago Up 7 seconds 0.0.0.0:6375->6379/tcp, 0.0.0.0:16375->16379/tcp redis-5
acd8389e8f4f redis:5.0.9 "docker-entrypoint.s…" 10 seconds ago Up 8 seconds 0.0.0.0:6374->6379/tcp, 0.0.0.0:16374->16379/tcp redis-4
976040c90afb redis:5.0.9 "docker-entrypoint.s…" 11 seconds ago Up 9 seconds 0.0.0.0:6373->6379/tcp, 0.0.0.0:16373->16379/tcp redis-3
ce1e9d501b74 redis:5.0.9 "docker-entrypoint.s…" 12 seconds ago Up 11 seconds 0.0.0.0:6372->6379/tcp, 0.0.0.0:16372->16379/tcp redis-2
ab69091e80ac redis:5.0.9 "docker-entrypoint.s…" 13 seconds ago Up 12 seconds 0.0.0.0:6371->6379/tcp, 0.0.0.0:16371->16379/tcp redis-1
重点注意:一定要保证环境的版本的一致性。控制变量的一致性
集群的配置,可以在这里配置,但是只是一次有效。所以我们还是在springboot中依赖配置文件去配置比较好。
还是上面的环境。来配置集群和哨兵模式。
前面我们学习redis的时候我们介绍过:Redis哨兵(Sentinel)和自动分区(Cluster)
集群方案 —— 包括主从复制模式、哨兵模式、Cluster模式,其中主从复制模式由于不能自动做故障转移,当节点出现故障时需要人为干预,不满足生产环境的高可用需求,所以在生产环境一般使用哨兵模式或Cluster模式。
采用自动分区(Cluster)模式:
你需要仔细阅读官网或者英文官网
官网的一句原话:要让集群正常运作至少需要三个主节点,不过在刚开始试用集群功能时, 强烈建议使用六个节点: 其中三个为主节点, 而其余三个则是各个主节点的从节点。
所以先来规划主从的设置:这是前面已经配好的节点。
192.168.253.129:6371 主 -> 192.168.253.129:6374 从
192.168.253.129:6372 主 -> 192.168.253.129:6375 从
192.168.253.129:6373 主 -> 192.168.253.129:6376 从
去一个认老大的例子,不想累述:
root@ubuntu:~# docker exec -it acd8389e8f4f /bin/bash
root@acd8389e8f4f:/data# redis-cli
127.0.0.1:6379> info replication
NOAUTH Authentication required.
127.0.0.1:6379> auth useaverystrongpasswordfoobared666useaverystrongpassword888useaverystrongpassword999useaverystrongpassword110
OK
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_replid:a6917a80cc325dbc44e73b5e68babd1db455dd65
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379>
每个节点都是如此,就难受了。区分不开。上面的脚本有问题。没有集群化处理,集群化参数官网说明。重新写的脚本依旧在上面。
脚本添加:
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
为了方便重来新建清除脚本 clear-redis.sh:
for cid in $(docker ps -aq);
do
docker stop $cid
done
docker rm -f $(docker ps -aq)
rm -rf mydata/
发现需要密码验证,修改脚本注释密码或者脚本验证密码。重新执行一遍。个人建议脚本验证密码。如果不会就注释掉吧。
在执行如下语句:分析下面的语句。
root@ubuntu:/home/script# docker exec -it 17f8a1f0e182 /bin/bash
root@17f8a1f0e182:/data# redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1
# 有6个基点插槽 选项–replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。如果自定义–replicas 1 172.38.0.11:6379 他后面跟的全部就是master
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
# 给了默认的推荐方式,即三主三从。你选择yes即可,当然你也自定义你想要的方式。不过一般默认推荐,实际环境有要求除外。
Adding replica 172.38.0.15:6379 to 172.38.0.11:6379
Adding replica 172.38.0.16:6379 to 172.38.0.12:6379
Adding replica 172.38.0.14:6379 to 172.38.0.13:6379
M: 67fd9000233cfaee016e1f71e2d1c4415b962eae 172.38.0.11:6379slots:[0-5460] (5461 slots) master
M: 9452f6832d53eafe3d9766ac3926f1064bcaba45 172.38.0.12:6379slots:[5461-10922] (5462 slots) master
M: 5543b59af158f22ae763896742500fe78e83ebdb 172.38.0.13:6379slots:[10923-16383] (5461 slots) master
S: 79e3cf433d91f1a5584271c6df395a02d726ce29 172.38.0.14:6379replicates 5543b59af158f22ae763896742500fe78e83ebdb
S: 2297ccf2b9aaeb99c90f50f1db8d7fc951ee91e9 172.38.0.15:6379replicates 67fd9000233cfaee016e1f71e2d1c4415b962eae
S: 10f0bdfef9df4501ac78e604171b67025ee3b89a 172.38.0.16:6379replicates 9452f6832d53eafe3d9766ac3926f1064bcaba45
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
....
# 选择yes后,最后主从结果显示。
>>> Performing Cluster Check (using node 172.38.0.11:6379)
M: 67fd9000233cfaee016e1f71e2d1c4415b962eae 172.38.0.11:6379slots:[0-5460] (5461 slots) master1 additional replica(s)
M: 5543b59af158f22ae763896742500fe78e83ebdb 172.38.0.13:6379slots:[10923-16383] (5461 slots) master1 additional replica(s)
M: 9452f6832d53eafe3d9766ac3926f1064bcaba45 172.38.0.12:6379slots:[5461-10922] (5462 slots) master1 additional replica(s)
S: 2297ccf2b9aaeb99c90f50f1db8d7fc951ee91e9 172.38.0.15:6379slots: (0 slots) slavereplicates 67fd9000233cfaee016e1f71e2d1c4415b962eae
S: 10f0bdfef9df4501ac78e604171b67025ee3b89a 172.38.0.16:6379slots: (0 slots) slavereplicates 9452f6832d53eafe3d9766ac3926f1064bcaba45
S: 79e3cf433d91f1a5584271c6df395a02d726ce29 172.38.0.14:6379slots: (0 slots) slavereplicates 5543b59af158f22ae763896742500fe78e83ebdb
还是那句话,这里的配置并不是永久的配置,服务器重启,你就的在这样配置一次。所以还是要依赖springboot配置文件去配置。
测试外界连接:redis desktop manager连接成功.
注意:集群的连接需要在高级设置里面选择集群。
如果需求用集群方式链接的话,勾选集群完毕后,链接一个单点redis则相当于链接了整个redis集群,否则则认为只做单点链接。
另外如果有需要你需要添加一个新节点、添加一个从节点、删除一个节点、节点的迁移这是非常重要的研究点,官网已经给了一个完整的实例,不累述。
调试发现不能连接:😭😭
服务器上测试:
root@ubuntu:~# docker exec -it 51aa2d97848e /bin/bash
root@51aa2d97848e:/data# redis-cli
127.0.0.1:6379> set mykey "test ok"
(error) MOVED 14687 172.38.0.13:6379
127.0.0.1:6379> exit
# 解决方式
root@51aa2d97848e:/data# redis-cli -c
127.0.0.1:6379> set mykey "test ok"
-> Redirected to slot [14687] located at 172.38.0.13:6379
OK
172.38.0.13:6379> get mykey
"test ok"
172.38.0.13:6379>
没啥用啊!我要的是实际生成环境能连接上并且能用。该如何配置呢。
查看docker网络配置:
root@ubuntu:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
ba7152491897 bridge bridge local
6c14996eff23 host host local
dcce898c2df5 none null local
868ef963e47e redis bridge local
root@ubuntu:~# docker network inspect 868ef963e47e
[{"Name": "redis","Id": "868ef963e47e0b085f1cdf00c70344d3cfbb227d0995812ae688b107b8aeaeb9","Created": "2020-08-09T01:16:13.879953848-07:00","Scope": "local",# 使用的桥连接模式"Driver": "bridge","EnableIPv6": false,"IPAM": {"Driver": "default","Options": {},"Config": [{"Subnet": "172.38.0.0/16","Gateway": "172.38.0.1"}]},"Internal": false,"Attachable": false,"Ingress": false,"ConfigFrom": {"Network": ""},"ConfigOnly": false,"Containers": {"17f8a1f0e182220c845d354a75a5edfa947a29c4ca3cf4b22ff083b3929e1309": {"Name": "redis-4","EndpointID": "fb49fd87b68f8f351889f20381ddce1e6888dfbc4735bdfdede8cc1e5e095e3f","MacAddress": "02:42:ac:26:00:0e","IPv4Address": "172.38.0.14/16","IPv6Address": ""},"2e1b478691d9b95ca2904a49bfe131fa76c71e8a1c6867eac5ea35889d29e611": {"Name": "redis-6","EndpointID": "21db2ce82ca82e0d8b60fc38bf45938c057207f8b51c67fca9c5e55f6eabb833","MacAddress": "02:42:ac:26:00:10","IPv4Address": "172.38.0.16/16","IPv6Address": ""},"4d647a2beb707bcd7162cdbd76e0c9ad6105d17bc676e02f48458d40fd9458ed": {"Name": "redis-5","EndpointID": "64bfc2186c2372c3ff77355b1ab9b89ff9c611bb159aefca5e8c7e6c44b761b8","MacAddress": "02:42:ac:26:00:0f","IPv4Address": "172.38.0.15/16","IPv6Address": ""},"51aa2d97848ea8871464828f9b5599d437e2afca2d49b62984df9028945a29b7": {"Name": "redis-1","EndpointID": "f6dd99c820d97f72d2a8ad9e64701c416e755dde409348962b530c8835b02d41","MacAddress": "02:42:ac:26:00:0b","IPv4Address": "172.38.0.11/16","IPv6Address": ""},"8ee555e7c91cc0f80901b0f2cc2eab9ea259255720c6a509c88ba16903271ee7": {"Name": "redis-3","EndpointID": "bbe352a3bc1d3e04008d773aafe2ad5ec134345f505a761592255f9cdef26c88","MacAddress": "02:42:ac:26:00:0d","IPv4Address": "172.38.0.13/16","IPv6Address": ""},"eaa0722997970300a171795c1bc51c6416fce962aeaed973abee884331027809": {"Name": "redis-2","EndpointID": "c757e8b9b4e80d9d82a65f15681309335e3056906c51597058461ac5278741cd","MacAddress": "02:42:ac:26:00:0c","IPv4Address": "172.38.0.12/16","IPv6Address": ""}},"Options": {},"Labels": {}}
]
查看网络:
root@ubuntu:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:50:56:29:69:8a brd ff:ff:ff:ff:ff:ffinet 192.168.253.129/24 brd 192.168.253.255 scope global dynamic ens33valid_lft 1273sec preferred_lft 1273secinet6 fe80::d86d:a7f8:2c6f:ab9c/64 scope link valid_lft forever preferred_lft forever
# 没毛病172.38.0.1/16 有了呀。感叹网络原理学的太差了😭
3: br-868ef963e47e: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:9f:2c:a4:a2 brd ff:ff:ff:ff:ff:ffinet 172.38.0.1/16 brd 172.38.255.255 scope global br-868ef963e47evalid_lft forever preferred_lft foreverinet6 fe80::42:9fff:fe2c:a4a2/64 scope link valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:a5:f1:31:77 brd ff:ff:ff:ff:ff:ffinet 172.17.0.1/16 brd 172.17.255.255 scope global docker0valid_lft forever preferred_lft foreverinet6 fe80::42:a5ff:fef1:3177/64 scope link
也没啥毛病啊!但是就是ping不通。
继续排查,尝试windows能操作或路由有问题?
打开window上的cmd。注意集群-c
是一定要的。下面需要注意我ip了以下。
下面的ip+端口如下划线部分。
C:\Users\zy962>redis-cli -h 192.168.253.139:6371 -p 6371 -c
Could not connect to Redis at 192.168.253.139:6371:6371: 不知道这样的主机。
not connected> c^C
C:\Users\zy962>redis-cli -h 192.168.253.139 -p 6371 -c
192.168.253.139:6371> set key11 123
OK
192.168.253.139:6371> get key11
"123"
192.168.253.139:6371>
如果有密码
redis-cli -h 192.168.253.139:6371 -p 6371 -c -a 123456
运行结果:这说明windows上是可操作的。注意这里操作没有重定向,可能导致问题。后面如果有遇到再说。
添加路由关系:
结果:注意要用管理员权限启动cmd
重新启动原先的测试程序:测试成功。
到此cluster集群测试完毕。redis框架已搭好。
在这里一点哨兵模式:以下说关于哨兵的没有实践。正确性自己保重。
服务器的配置:
1、同上是面的目录(可以随便建目录)/etc/redis/sentinel.conf
官网上说了,最简单的配置:
# 第一行配置指示 Sentinel 去监视一个名为 mymaster 的主服务器,
# 这个主服务器的 IP 地址为 127.0.0.1 , 端口号为 6379 ,这个2的意思
# 将这个主服务器判断为失效至少需要 2 个 Sentinel 同意
sentinel monitor mymaster 127.0.0.1 6379 2
# down-after-milliseconds指定了 Sentinel 认为服务器已经断线所需的毫秒数。
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
# parallel-syncs执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就越长。
sentinel parallel-syncs mymaster 1
这个配置文件需要挂载几份取决于你计划要几个哨兵。
个人建议:下面部分最好加进去。
# bind 127.0.0.1
protected-mode no
# 可以不设,配置前可以设置,后面一定要设置
requirepass 123456
daemonize no
关于主从:可以只在从服务器下加上这个。 上面可以指定端口,也可以默认。当进入去认老大也是可以的。
# 指定主服务器,注意:有关slaveof的配置只是配置从服务器,主服务器不需要配置
slaveof 127.0.0.1 6379
还可以设置:
# 注意他和requirepass区别
sentinel auth-pass mymaster 123456
启动三个容器:举一个例子。
docker run -d -p 6371:6379 --name redis-1 \
-v /mydata/redis/node-1/data:/data \
-d --net redis --ip 172.38.0.11 redis:5.0.9 redis-server
解释:
1、启动就用默认配置redis.conf
2、端口不需要+10000
注意:记得主从设置
启动哨兵:
docker run -p 6371:6371 --restart=always --name sentinel-6371 \
-v/home/docker/redis/sentinel-6371.conf:/etc/redis/sentinel.conf \
-v /home/docker/redis/sentinel-6371-data:/data -d redis redis-sentinel /etc/redis/sentinel.conf
window端配置只有配置文件上的一点小差距:
将上面cluster的部分为下面的
#redis 哨兵监听的Redis Server的名称
spring.redis.sentinel.master=mymaster
# comma-separated list of host:port pairs 哨兵的配置列表
spring.redis.sentinel.nodes=127.0.0.1:26379,127.0.0.1:36379,127.0.0.1:46379
zookeeper + kafka的搭建:kafka依赖于zookeeper
首先你要有基本的概念:拿日志举例子
常见问题:
1、如何区分服务,服务名。给每个微服务取名比如filter、manage
2、缺点:当发生JVM内存泄漏、内存溢出等情况无法定位到具体服务器
首先,如果条件允许,建议3个vm模拟较好。采用先搭建好一个,其余克隆修改配置文件即可。(由于电脑垃圾,这里我只说明过程不演示,后面我会用docker模拟)
vm过程:
1、下载zookeeper的tar包,解压tar -zxvf zookeeper-3.4.14.tar.gz
,重命名mv zookeeper-3.4.14 zookeeper
。
2、进入解压后的目录,修改配置文件名mv zoo_sample.cfg zoo.cfg
3、配置文件后添加:vim zoo.cfg
server.0=192.168.253.174:2888:3888
server.1=192.168.253.175:2888:3888
server.2=192.168.253.176:2888:3888
4、创建服务器标识:
创建文件vim /usr/local/zoo/data/myid
该文件存你的id即可
0
5、配置环境变量:vi /etc/profile
export ZOOKEEPER_HOME=/usr/local/zoo
export PATH=$PATH:$ZOOKEEPER_HOME/bin
6、下载kafka的tar包,并解压。去版本号命名。先检查是否安装了jdk,没有则安装。
7、修改配置文件:vim /kafka/config/server.properties
dataDir=/usr/local/zoo/data
# 对应的ip:端口
listeners=PLAINTEXT://192.168.253.131:9092
# zk集群连接
zookeeper.connect=192.168.253.174:2888,192.168.253.175:2888,192.168.253.176:2888
# 对应你zk的myid文件的值
broker.id=0
8、系统环境变量配置kafka的路径:vim /etc/profile
添加:如果是其他写法,参考别人怎么写的即可。
export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:$KAFKA_HOME/bin
修改后,重启动:source /etc/profile
(这个命令待确认)
9、zk启动等脚本:去到对应的bin下,zk集群是要先启动的。不要着急启动,先克隆另外两个vm配置好后,在统一启动zk,在启动kafka。参考第11点。
# 1、启动zk
sh zkServer.sh start
# 2、关闭zk
sh zkServer.sh stop
# 3、重启zk
sh zkServer.sh restart
# 4、查看zk 运行状态 (可以判断是leader还是follower)
sh bin/zkServer.sh status
10、kafka启动等脚本:
# 启动
bin/zookeeper-server-start.sh config/zookeeper.properties &
11、在启动之前,克隆结构如下。我们需要修改的地方:
# 192.168.253.131:9092 改为下面对应的ip
listeners=PLAINTEXT://192.168.253.131:9092
# 0 改为下面对应的值myid
broker.id=0
还要修改zk集群下的data目录中指定的myid。
现在可返回9、10启动。先将zk集群全部启动好,在启动kafka。主要启动失败可能是防火墙或者端口未打开。至于测试这里就先不管了。
我们来利用docker模拟zk+kafka上述过程:
docker拉取:docker pull zookeeper:3.4.14
内部测试:
# always 一直启动是一定要的
root@ubuntu:~# docker run --name some-zookeeper --restart always -d zookeeper:3.4.14
54446ac6f3f2184e7fd569ba2f1dbdf065b7ab6172a3d2ba84e15973d0ab261c
root@ubuntu:~# docker ps | grep 'zookeeper'
54446ac6f3f2 zookeeper:3.4.14 "/docker-entrypoint.…" 6 minutes ago Up 5 minutes 2181/tcp, 2888/tcp, 3888/tcp some-zookeeper
root@ubuntu:~# docker exec -it 54446ac6f3f2 /bin/bash
root@54446ac6f3f2:/zookeeper-3.4.14# ls
LICENSE.txt build.xml lib zookeeper-3.4.14.jar.md5 zookeeper-it
NOTICE.txt conf pom.xml zookeeper-3.4.14.jar.sha1 zookeeper-jute
README.md dist-maven src zookeeper-client zookeeper-recipes
README_packaging.txt ivy.xml zookeeper-3.4.14.jar zookeeper-contrib zookeeper-server
bin ivysettings.xml zookeeper-3.4.14.jar.asc zookeeper-docs
创建zookeeper的docker网络:
root@ubuntu:/home/script/zookeeper# docker network create zookeeper --subnet 172.28.0.0/16
816a08963f357b38f720e86e52e73bdbf8c4f62b9ddf8b4ed6c012ea0f48fb64
脚本化处理:
创建放zk的脚本的目录:
root@ubuntu:/home/script# mkdir zookeeper
root@ubuntu:/home/script# ls
redis zookeeper
root@ubuntu:/home/script/zookeeper# vim zoo.sh# zookeeper创建数据data和配置文件conf目录
for port in $(seq 1 3);\
do \
mkdir -p /mydata/zookeeper/node-${port}/conf
mkdir -p /mydata/zookeeper/node-${port}/data
touch /mydata/zookeeper/node-${port}/conf/zoo.cfg
cat <<EOF> /mydata/zookeeper/node-${port}/conf/zoo.cfg
clientPort=2181
dataDir=/data
dataLogDir=/data/log
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
# 脚本server.1数字范围在0-255
server.1=172.28.0.11:2888:3888
server.2=172.28.0.22:2888:3888
server.3=172.28.0.23:2888:3888
EOF
done
创建myid文件:其余目录类似。
root@ubuntu:/mydata/zookeeper/node-1/data# vim myid1root@ubuntu:/mydata/zookeeper# find -name 'myid'
./node-2/data/myid
./node-3/data/myid
./node-1/data/myid
有空继续
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- angular6 操作dom节点需类型转换HTMLInputElement
文章目录问题背景原因分析解决办法问题总结问题背景 使用angular发送邮件,其中有个表单是上传附件,这个是异步传递的数据,因此希望发送成功之后清空数据,因此就要单独对file表单做处理,然后做了如下代码document.getE…...
2024/5/2 12:26:11 - angular2及其他项目中遇到的问题和解决方法
1. Module not found: Error: Cant resolve ./$$_gendir/app/app.module.ngfactory ng build --prod 编译时报上述错误 命令更改为ng build --envprod 2. angular-cli修改域名及端口号 找到node_modules/angular-cli/lib/config/schema.json default值就是默认的端口 3. 解决i…...
2024/4/21 7:43:34 - 将input file的选择的文件清空
上传文件时,选择了文件后想清空文件路径,搜索了一下,用两种方法解决<input type"file" id"fileupload" name"file" />第一种:var obj document.getElementById(fileupload) ; obj.select(); document.selection.…...
2024/4/21 7:43:33 - 双眼皮手术五个月
...
2024/4/20 18:45:00 - 解决file change 上传只触发一次问题
问题描述: 界面和代码如下图所示,点击“浏览”按钮,第一次能触发change事件,第二次点击就不触发了。 在网上找了很多种方案,如清空input内容,把on改成live,还有replaceWith等方法,尝…...
2024/4/26 19:54:23 - Angular_02_入门_中篇_Service_Routing
最终效果如下:附录: github地址: https://github.com/ixixii/angular_tutorial_demo.git cd /Users/beyond/sg_angular/angular_01/angular-tutorial-demo git status git add src/app/ git commit -m first commit git push https://github.com/ixixii/angular_tutorial_demo…...
2024/4/23 6:34:12 - 拉双眼皮那家医院好吗
...
2024/4/23 16:27:50 - 埋线双眼皮后遗症吗
...
2024/4/20 18:44:56 - 双眼皮手术哪个好
...
2024/4/20 18:44:55 - 双眼皮手术事故
...
2024/4/20 18:44:54 - ubuntu16 wifi连接
lspci -knn | grep Net -A2 //使用该命令查看网卡型号 //注意Network controller后面内容即可,如果我们的型号不一样,你可以复制后去网上找这个型号的肯定有兄弟已经解决了找到网卡型号,寻找相应驱动,运行就行了,不需要重启电脑就有了;我的网卡刚好参照这篇文章得到解决ht…...
2024/4/20 18:44:53 - Angular基础知识---模块、装饰器、组件、如何创建组件、事件处理机制、插值表达式(双括号)...
1、angular介绍 2、搭建开发环境 安装angular cli的前提 要安装如下(angular不像vue一样还有通过script标签引用的形式,他一开始走的就是‘全家桶式’设计思路,所以要安装angular cli) 3、启动项目 npm start (具体命…...
2024/4/22 10:34:48 - 开双眼皮益阳
...
2024/4/28 9:32:03 - 翘睫双眼皮就是埋线吗
...
2024/4/21 7:43:30 - 双眼皮平扇开扇
...
2024/4/23 15:19:44 - 全切双眼皮切口硬
...
2024/4/21 7:43:29 - Angular CLI(开发工具库) v11.0.7
简介: Angular CLI是个能够帮助开发者们提高编程效率的一个专业编程开发工具库,您可以利用它轻松创建一个可以运行的应用程序,用一个简单的命令生成组件、路由、服务和管道,在开发过程中轻松地在本地测试您的应用程序,…...
2024/4/28 10:32:31 - 上海做双眼皮保证艺星
...
2024/4/22 23:45:14 - .NET开发常用工具大汇总
1.Visual Studio Visual Studio Productivity Power tool:Visual Studio专业版(及以上)的扩展,具有丰富的功能,如快速查找,导航解决方案,可搜索的附加参考对话框等ReSharper:提高.NE…...
2024/4/22 8:20:27 - TypeScript开发工具配置
Typescript 介绍、安装、开发工具 一、Typescript 介绍 TypeScript 是由微软开发的一款开源的编程语言。TypeScript 是Javascript 的超级,遵循最新的ES6、Es5 规范。TypeScript 扩展了JavaScript 的语法。TypeScript 更像后端java、C#这样的面向对象语言可以让js …...
2024/4/24 20:30:14
最新文章
- SpringBoot中阿里OSS简单使用
官方文档:Java跨域设置实现跨域访问_对象存储(OSS)-阿里云帮助中心 1.pom中引入依赖 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.1</version> </dependency> 如…...
2024/5/2 15:03:25 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - Linux命令-dpkg-reconfigure命令(Debian Linux中重新配制一个已经安装的软件包)
说明 dpkg-reconfigure命令 是Debian Linux中重新配置已经安装过的软件包,可以将一个或者多个已 安装的软件包传递给此指令,它将询问软件初次安装后的配置问题。 当用户需要再次对软件包配置的时候,可以使用dpkg-reconfigure命令来对指定的软…...
2024/4/30 4:15:04 - 深入浅出 -- 系统架构之微服务中Nacos的部署
前面我们提到过,在微服务架构中,Nacos注册中心属于核心组件,通常我们会采用高性能独立服务器进行部署,下面我们一起来看看Nacos部署过程: 1、环境准备 因为Nacos是支持windows和Linux系统的,且服务器操作…...
2024/5/1 13:05:05 - 数据结构——二叉树——二叉搜索树(Binary Search Tree, BST)
目录 一、98. 验证二叉搜索树 二、96. 不同的二叉搜索树 三、538. 把二叉搜索树转换为累加树 二叉搜索树:对于二叉搜索树中的每个结点,其左子结点的值小于该结点的值,而右子结点的值大于该结点的值 一、98. 验证二叉搜索树 给你一个二叉树的…...
2024/5/1 9:45:26 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/1 17:30:59 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/30 18:14:14 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/29 2:29:43 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/2 9:28:15 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/30 9:43:09 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/29 20:46:55 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/30 22:21:04 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/1 4:32:01 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/30 9:42:22 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/2 9:07:46 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/30 9:42:49 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57