springboo连接redis哨兵集群原理

springboo连接redis哨兵集群原理,第1张

Spring Boot连接Redis哨兵集群的原理如下:

1 Spring Boot使用Jedis客户端连接Redis哨兵集群。Jedis是一个Java Redis客户端,它支持连接Redis哨兵集群。

2 Jedis客户端会向Redis哨兵集群发送SENTINEL get-master-addr-by-name命令,获取当前Redis主节点的IP地址和端口号。

3 Jedis客户端会使用获取到的IP地址和端口号连接Redis主节点,并发送PING命令测试连接是否正常。

4 如果连接正常,Jedis客户端会将连接信息保存在连接池中,以便后续使用。

5 如果连接失败,Jedis客户端会向Redis哨兵集群发送SENTINEL get-master-addr-by-name命令,获取新的Redis主节点的IP地址和端口号,然后重复步骤2-4。

6 如果Redis主节点发生故障,Redis哨兵会自动将从节点升级为主节点,并通知Jedis客户端更新连接信息。

总之,Spring Boot连接Redis哨兵集群的原理是通过Jedis客户端向Redis哨兵集群发送命令获取当前Redis主节点的IP地址和端口号,然后使用获取到的信息连接Redis主节点。如果连接失败,Jedis客户端会重新获取新的Redis主节点的IP地址和端口号,直到连接成功为止。如果Redis主节点发生故障,Redis哨兵会自动将从节点升级为主节点,并通知Jedis客户端更新连接信息。

1、修改docker服务器配置文件

vim /usr/lib/systemd/system/dockerservice

将ExecStart这一行后面加上 -H tcp://0000:2375 -H unix:///var/run/dockersock,改完后如下所示:

ExecStart=/usr/bin/dockerd -H tcp://0000:2375 -H unix:///var/run/dockersock

2、保存后退出,重新加载配置文件并重启docker

systemctl daemon-reload && systemctl restart docker

3、查看docker监听的端口是否已开启

netstat -anp|grep 2375

若无信息输出代表未开启,如上图代表已开启

4、查看远程API信息

curl 127001:2375/info

若无信息输出代表docker远程API开启失败,如上图代表已开启成功

5、在本机windows系统环境变量中新建DOCKER_HOST,值为tcp://xxxxxxxxxxxx:2375,(你改成你自己的docker服务器ip地址)

6、maven项目工程main目录下新增/docker/Dockerfile文件,同时需要将springboot配置文件中的IP改为docker服务器IP。

FROM java

VOLUME /tmp

ADD microservice-discovery-eureka-001-SNAPSHOTjar /appjar

EXPOSE 8082

ENTRYPOINT ["java","-Djavasecurityedg=file:/dev//urandom","-jar","/appjar"]

7、maven项目工程修改pom文件,build下新增插件:

<plugin>

<groupId>comspotify</groupId>

<artifactId>docker-maven-plugin</artifactId>

<version>0413</version>

<executions>

<execution>

<id>build-image</id>

<phase>package</phase>

<goals>

<goal>build</goal>

</goals>

</execution>

</executions>

<configuration>

<imageName>eureka</imageName>

<dockerDirectory>${projectbasedir}/src/main/docker</dockerDirectory>

<resources>

<resource>

<targetPath>/</targetPath>

<directory>${projectbuilddirectory}</directory>

<include>${projectbuildfinalName}jar</include>

</resource>

</resources>

</configuration>

</plugin>

8、执行指令打包镜像推送到docker服务器

mvn clean package docker:build

eclipse中maven继承没有索引:

原因:应该是maven自动下载index组件的功能没有开启,查看

这一步很重要:

"Window"

--> "Preferences" and choose Maven in the left side勾选Download repository index updates on

startup

解决:

"Window" ---> "Show View" ---> "Maven Repositories" ---> "Global

Repositories"

选择 "central" click right and "Update Index"解决问题。

问题产生如下:

因为单位使用了过滤,访问Internet时,超过10M的内容就拒绝。

因为maven插件在初始时,需要下载Maven的index文件,这个文件比较大,有38M多,下载不成功。

所以造成使用Maven添加依赖项时(Add Dependency)时,没有提示项目可用,并且在Console中,输出:

Unable to update index for central|>

决办法,手动下载索引文件,本地模拟部署中央仓库,更新索引后,关闭本地模拟部署中央仓库

1、首先手动去官网下载这两个文件,

>

[html] view plain copy

<proxies>

<!-- proxy

| Specification for one proxy, to be used in connecting to the network

|

<proxy>

<id>optional</id>

<active>true</active>

<protocol>>

<username>proxyuser</username>

<password>proxypass</password>

<host>proxyhostnet</host>

<port>80</port>

<nonProxyHosts>localnet|somehostcom</nonProxyHosts>

</proxy>

-->

<proxy>

<id>optional</id>

<active>true</active>

<protocol>>

<host>localhost</host>

<port>8080</port>

</proxy>

</proxies>

4、在Eclipse中,更新setting文件,打开 Maven Repositories 面板,在 Global Repositories --> central 项上,点右键,Rebuild Index 即可。

     注意:           如果发现索引没有更新,请检查是否开启了启动eclipse自动更新索引。

"Window" ---> "Show View" ---> "Maven Repositories" ---> "Global

Repositories"

选择 "central" click right and "Update Index"解决问题。

然后再次Rebuild Index 或者重启eclipse。

5、移除之前在 hosts 文件中添加的内容。

6、(可选)把Properties中Maven项的 Download repository index updates on starup 选项去除。

需要手动安装IKAnalyzer jar包到本地maven仓库

1进入到你的本地仓库,手动创建一个文件夹repository/com/lucene/

2把ikAnalyzer-2012FF_u1jar包放到文件夹下

3命令窗口执行:

mvn install:install-file -Dfile=D:\SSHTools\repository_sshzip\repository_ssh\com\lucene\IKAnalyzer2012FF_u1jar -DgroupId=comlucene -DartifactId=ikAnalyzer -Dversion=2012FF_u1 -Dpackaging=jar -DgeneratePom=true

4在你的pomxml中导入

<dependency>

<groupId>comlucene</groupId>

<artifactId>ikAnalyzer</artifactId>

<version>RELEASE</version>

</dependency>

最后就ok了

tomcat 启动maven项目失败

maven的日志在哪里看_听说你还不会在服务器上部署项目?看这一篇文章就够了

weixin_39664995

关注

1点赞·1792人阅读

作为一名资深(fu xiu)的程序猿来说,一直不想向IDEA低头可能是我对MyEclipse最大的尊重。最近利用SSM框架搭建了一个项目后台。但是由于开发人员并不能处于同一个局域网中,于是将后台需要部署到公网服务器中。但是与普通的javaweb项目不同的是该项目是一个基于maven的多模块工程。其实刚开始笔者一直在担心不知如何部署,在网上搜到的资料也是零星半点。通过网上的一些思路,加上自己半天的摸索,终于将后台成功部署到服务器上。下面就具体讲解一下如何部署maven多模块工程到公网服务器上。PS:笔者服务器选用某云服务器(服务器只要是公网运行的就可以了!)

1、对maven项目进行打包,文件格式为war包

我们在使用SSM框架进行构建项目的时候, 父工程的打包方式是pom,common工程的打包方式是jar,主要的项目工程是我们的聚合工程,打包方式是pom, 聚合工程中又包括dao、pojo、interface、service、web工程,其中前四个打包方式都为jar,web工程的打包方式为war,那么我们的思路就很清晰了——就是将web工程打包出来。下图给出项目文件的整体架构图。

项目结构图

对父工程、common工程、项目工程文件进行安装,安装方法就是对工程进行右键---> Run as ---> Maven install, *** 作过程如下图所示:

安装maven项目

如果项目没有同步更新的话,在这一步可以对项目行update,具体 *** 作过程可以见下图。

更新maven项目

安装成功后在console框中可以看到安装成功之后的war包的路径,如下图所示。

war包所在文件夹

从计算机中打开这个路径,就会看到一个web工程的war包,我们可以记住这个路径,然后登陆上我们的云服务器。项目需要部署到tomcat容器中,因此需要在服务器上安装tomcat容器,运行tomcat的前提还是需要保证服务器上具有jdk环境。因此还需要在服务器上安装jdk,安装jdk以及tomcat容器的步骤实质非常简单,配置环境变量的步骤稍稍有些复杂,如果有不清楚的读者还不清楚怎么安装,可以自行百度或者评论留言,如果有必要我也会一步一步地将安装过程整理成一个帖子发出来。

打包后的war文件

在此假设我们的服务器已经有了jdk环境以及tomcat容器。将我们上步的war包通过文件上传工具上传到我们的服务器环境,然后进入服务器中的tomcat安装包中。

tomcat安装包

将上传到服务器的war包复制到tomcat的webapps目录下(使用cp命令进行复制),复制之后的结果如下图所示:

复制成功自动解压文件

我们退回到启动bin目录下,也可以直接输入命令(这种需要我们对tomcat的安装包目录比较熟悉后使用),启动之后我们可以查看tomcat的启动日志

//启动tomcat的命令 进入bin目录下 运行startupsh文件(假设我们目前在webapps目录下)/bin/startupsh//查看tomcat启动日志的命令(假设在webapps目录下)tail -f /logs/catalinaout

登录后复制

看到如下的结果说明我们的tomcat启动成功:

tomcat启动成功

在浏览器中验证服务是否正常启动后台,在地址栏中输"公网ip:端口号(默认8080,可以自行设置端口80)/ 工程名/ controller文件下请求的路径",成功如下图所示。写到这里,说明我们的后台服务已经能够正常启动,相对于一个前后端分离的项目,日后我们只需对后台进行维护和添加相应的服务,前端可以根据自己的需求进行请求服务,不受距离限制,保证网络即可。在整个配置过程中笔者还遇到一些其他的问题,但都不是很难受的问题,只要我们认真看启动日志,就能够解决一多半的问题。在此期间我遇到一个无法连接jdbc的问题,问题描述很清晰:"can‘t not connect the jdbc"。遇到这种问题首先很容易想到是不是网络问题,但是对于本项目而言,数据库是使用的公网的oracle数据库,同一个服务器上的应该不存在这种问题,想想既然会在同一台机器那么我们是不是可以使用localhost或者127001这种连接地址进行连接数据库(因为数据库相对于服务器来说应该说是本地环境),但是试了一下发现还是不可以,但是我觉得我想的道理应该没错,可能受于云服务器的安全限制。于是我又改回来原来的ip。使用本地服务器连接公网数据库,发现还是同样的错误,于是我就想到了公网的数据库很有可能没有跑起来,再然后我去服务器上查看oracle的进程以及端口都没有开启监听,使用navicat for oracle连接数据库都显示没有开启监听问题,这种更加确定了问题的所在--数据库没有启动。于是在服务器上又开始开启数据库,由于第一次在云服务器上 *** 作oracle数据库显然也是遇到了许多困难,对一些命令不熟悉不知道如何开启监听,也害怕哪个命令会搞坏这个东西,但最终还是摸索开启了数据库(如果大家这部分还有疑问的话可以评论留言,我有空还是会把这部分的经验步骤写出来,虽然不可能面面俱到的讲解,但起码我们有了解决问题的能力!),最终数据库连接成功。至此mavne多模块项目也就成功部署到了云服务器上!

浏览器验证成功

如果这篇经验贴对您有帮助或者有点启发,那么笔者写这么多的内容也算没有白费,请您一定不吝点赞或者评论,有问题我们可以一起解决!

maven的日志在哪里看

myeclipse部署tomcat

tomcat 启动maven项目失败

tomcat 部署war 访问路径去掉war包名

微服务项目怎么部署到服务器上

怎么把部署到服务器上

二手进口功放机,正品保证!

精选推荐

广告

如何将项目部署到服务器上(全套教程)

4934阅读·4评论·5点赞

2022年7月31日

JavaWeb - Maven基础

86阅读·0评论·1点赞

2019年10月8日

linux 执行maven项目jar包,并指定日志路径

597阅读·0评论·0点赞

2022年10月2日

maven项目打包部署到虚拟机测试和生产环境上及查看日志 *** 作

2826阅读·0评论·0点赞

2018年4月27日

Maven项目配置Log日志

2551阅读·0评论·1点赞

2019年8月8日

maven的日志在哪里看_SpringBoot统一日志处理原理

1541阅读·0评论·0点赞

2020年11月20日

功放机什么牌子好 功放机选购攻略分享

精选推荐

广告

maven的log日志文件的配置

10W阅读·6评论·1点赞

2019年4月7日

Maven错误日志:Maven简介、使用过程、注意事项、错误解决方案

232阅读·0评论·0点赞

2022年5月4日

Maven 项目添加Log日志

5225阅读·0评论·1点赞

2018年11月29日

maven 调试日志的命令

199阅读·0评论·1点赞

2022年9月6日

maven的日志在哪里看_日志管理领域研究现状(2)

256阅读·0评论·0点赞

2020年11月5日

maven的日志在哪里看_搭建私有Sentry日志收集系统并集成到springboot

182阅读·0评论·0点赞

2020年10月18日

idea maven项目日志配置

3714阅读·0评论·0点赞

2017年7月14日

logback修改日志内容_巧用maven profile动态修改logback日志目录

323阅读·0评论·0点赞

2020年11月28日

idea中查看maven信息

2252阅读·0评论·0点赞

2021年8月27日

log4j配置

92阅读·0评论·0点赞

2020年9月15日

maven工程引入日志

398阅读·0评论·0点赞

2021年7月5日

eclipse中maven项目配置日志输出

8985阅读·0评论·3点赞

2016年11月22日

maven插件日志保存处理

650阅读·0评论·1点赞

2019年2月20日

maven学习日志之一 Maven概念

1302阅读·0评论·0点赞

2016年8月17日

去首页

看看更多热门内容

以上就是关于springboo连接redis哨兵集群原理全部的内容,包括:springboo连接redis哨兵集群原理、dockermaven插件可以windows打包吗、eclipse中maven继承怎么没有索引等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10141799.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存