技术标签: java zookeeper spring cloud
因项目使用的框架比较老,而且zk作为注册中心其实是有问题的,因为zk不是高可用的(详情请自行百度zk leader选举机制),经内部决定,将升级成nacos为注册中心(配置中心功能暂时不需要)
版本选择
Spring Cloud Alibaba Version | Sentinel Version | Nacos Version | RocketMQ Version | Dubbo Version | Seata Version |
---|---|---|---|---|---|
2.2.7.RELEASE | 1.8.1 | 2.0.3 | 4.6.1 | 2.7.13 | 1.3.0 |
2.2.6.RELEASE | 1.8.1 | 1.4.2 | 4.4.0 | 2.7.8 | 1.3.0 |
2021.1 or 2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE | 1.8.0 | 1.4.1 | 4.4.0 | 2.7.8 | 1.3.0 |
2.2.3.RELEASE or 2.1.3.RELEASE or 2.0.3.RELEASE | 1.8.0 | 1.3.3 | 4.4.0 | 2.7.8 | 1.3.0 |
2.2.1.RELEASE or 2.1.2.RELEASE or 2.0.2.RELEASE | 1.7.1 | 1.2.1 | 4.4.0 | 2.7.6 | 1.2.0 |
2.2.0.RELEASE | 1.7.1 | 1.1.4 | 4.4.0 | 2.7.4.1 | 1.0.0 |
2.1.1.RELEASE or 2.0.1.RELEASE or 1.5.1.RELEASE | 1.7.0 | 1.1.4 | 4.4.0 | 2.7.3 | 0.9.0 |
2.1.0.RELEASE or 2.0.0.RELEASE or 1.5.0.RELEASE | 1.6.3 | 1.1.1 | 4.4.0 | 2.7.3 | 0.7.1 |
SCA版本说明:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
因项目springboot版本使用的是1.5.9.RELEASE,最终选择nacos版本1.4.1
将原本的zk注册中心的包注释掉
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>-->
<!-- <version>1.2.0.RELEASE</version>-->
<!-- </dependency>-->
引入nacos注册中心的包
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependencyManagement>
<dependencies>
<!--整合springCloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Edgware.SR4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 整合springcloud-alibaba-nacos(服务管理中心) -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>1.5.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 暂时不需要配置中心 -->
<!-- <dependency>-->
<!-- <groupId>com.alibaba.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>-->
<!-- <version>1.5.1.RELEASE</version>-->
<!-- </dependency>-->
</dependencies>
</dependencyManagement>
最后修改项目的nacos配置
spring:
cloud:
nacos:
discovery:
server-addr: localhost:8848
1.项目部署到服务上 发现客户端没有注册功能并且没有注册日志打印,服务端服务列表没有显示改服务注册上来,后排查发现和部署方式有关,在打war包部署到外置tomcat的时候,nacos会获取不到外部tomcat端口,从而导致注册失败而且没注册日志打印,解决方法:
新增配置类
import com.alibaba.cloud.nacos.registry.NacosAutoServiceRegistration;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import javax.management.Query;
import java.lang.management.ManagementFactory;
import java.util.Set;
@Component
@Slf4j
public class NacosConfig implements ApplicationRunner {
@Autowired(required = false)
private NacosAutoServiceRegistration registration;
@Value("${server.port}")
Integer port;
@Override
public void run(ApplicationArguments args) {
if (registration != null && port != null) {
Integer tomcatPort = port;
try {
tomcatPort = new Integer(getTomcatPort());
} catch (Exception e) {
e.printStackTrace();
}
registration.setPort(tomcatPort);
registration.start();
}
}
/**
* 获取外部tomcat端口
*/
public String getTomcatPort() throws Exception {
MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
Set<ObjectName> objectNames = beanServer.queryNames(new ObjectName("*:type=Connector,*"), Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
String port = objectNames.iterator().next().getKeyProperty("port");
log.info("获取外部tomcat端口=={}", port);
return port;
}
文章浏览阅读3.7k次,点赞6次,收藏21次。华为ensp启动AR设备时40报错的解决近期因学习要求,需要使用华为的ensp模拟器,在安装并使用的过程中呢,遇到了最常见的AR设备启动时40报错,防火墙也设置了关闭,hyper-V在系统中也设置了关闭,不断的卸载和安装了各种VM VirtuallBox和eNsp的各种版本,还是无效,在VM VirtualBox中的AR_Base也一直启动不了,对于一直接触思科的我来说实属心累,在连续俩天的摸索中发现自己忽略了最根本的问题,因此,写下这个过程并解决,希望对你们也有帮助。此方法不代表所有的40报错问..._enso ar 40
文章浏览阅读2.2k次,点赞7次,收藏24次。在进行SIFT特征提取时,由于会提取数量较多的尺度空间特征点,会导致特征向量提取和特征点匹配环节的用时较长。在三维测量等应用条件下,角点是进行测量的关键点,因此采用Shi-Tomasi或Harris角点检测提取关键的特征点,可以减少冗余无效的特征点,提升运算的实时性。接下来介绍在编程时遇到的两个问题:1.如何用角点提取结果生成特征描述子Shi-Tomasi角点检测函数如下:goodFeatu..._opencv 4.0 shi-tomas c++
文章浏览阅读2.2k次。参考:https://twitter.com/ptswarm/status/1316016337550938122【安全风险通告】VMware vCenter任意文件读取漏洞安全风险通告安装:https://blog.csdn.net/shida_csdn/article/details/82863169https://www.miensi.com/352.html安装有点麻烦,算了。下载:https://my.vmware.com/en/web/vmware/downloads/det_vmware directory service 漏洞
文章浏览阅读2.7k次。windows似乎只提供了一种启动进程的方法:即必须从一个可执行文件中加载并启动。 而下面这段代码就是提供一种可以直接从内存中启动一个exe的变通办法。 用途嘛, 也许可以用来保护你的exe,你可以对要保护的 exe 进行任意切分、加密、存储, 只要运行时能将exe的内容正确拼接到一块内存中,就可以直接从内存中启动,而不必不安全地去 _delphi movememory(@pointer(baseaddress)[optionalheadersizeoffset], @subsyste
文章浏览阅读105次。markdown语法教程1. 标题一级标题(#)二级标题(##)三级标题(###)四级标题(####)五级标题(#####)六级标题(######) 2. 段落格式换行(两个空格+回车)斜体(*文本*)粗体(**文本**)粗斜体(***文本***)分割线(---)删除线(~~文本~ ~)下划线(<u>文本</u>)脚注([^文本..._markdown 颜色方块
文章浏览阅读3.8k次,点赞3次,收藏9次。linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。Linux进程状态:R (TASK_RUNNING),可执行状态。 只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态,这些进程的task_struct结构(进程控制块)被放入对应CPU的可执行队列中(一个进程最多只能出现在一个CP..._zl是什么进程
文章浏览阅读397次,点赞5次,收藏3次。PS:之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。一共十个专题,包括了Android进阶所有学习资料,Android进阶视频,Flutter,java基础,kotlin,NDK模块,计算机网络,数据结构与算法,微信小程序,面试题解析,framework源码!1、Html5项目实战。
文章浏览阅读31次。sql语句执行结果 从执行结果中可以看出,随着分页偏移量的增加,sql执行的时间会越来越长。这是为什么呢因为查询时 MySQL 并不是跳过 offset行,而是取 offset+N 行,然后放弃前 offset行,最后返回 N 行,当 offset特别大的时候,效率就非常的低下。拿 limit 10000, 10 这条语句来说明一下, MySQL在执行这条查询的时候,需要查询 10010 (10000 + 10) 条记录,然后只返回最后 10 条,并将前面的 10000 条记录抛弃,这样当翻页越靠
文章浏览阅读142次。The Apache Tomcat Servlet/JSP Container Apache Tomcat 7Version 7.0.103, Mar 16 2020 Apache LogoLinksDocs HomeFAQUser CommentsUser Guide1) Introduction2) Setup3) First webapp4) Deployer5)..._security considerations d.13.1 reasoning
文章浏览阅读1.2k次。文章目录前言题目详细题解写法1 O(nlogn)O(nlogn)O(nlogn)推导证明写法2 O(nlogn)O(nlogn)O(nlogn)推导证明写法3 O(nlogn)O(nlogn)O(nlogn)推导证明举一反三总结前言今天是一个简单题,就是复习一下比较函数的三种写法,分别是重载,自定义和lambda表达式。下面直接看题。题目某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果_某小学最近得到
文章浏览阅读1.1k次。使用 Spring Boot for MongoDB 实现批量写入_mongo 批量保存
文章浏览阅读264次。进入电脑终端后执行以下命令:siege -c 100 -r 5 -b'http://192.168.101.173:31003/demo/interface_name POST'没有安装siege的先安装,这里的“-c 100”指的是并发量是100,“-r 5”指的是发送请求的次数是5次,-b指的是请求等待时间默认为0,单引号中的内容便是接口的地址,尾部的POST表示请求方式,注意这里的引号是不能省略的,如果省略则默认的是GET请求了,测试返回的值会出错。..._siege测试参数关联的接口