未来AI编程
硕士毕业从事GIS行业致力于将GIS融入互联网为大众提供更深层次的GIS应用
展开
-
美团点评基于MGR的CMDB高可用架构搭建之路
MySQL Group Replication(以下简称MGR),于5.7.17版本正式GA,由Oracle官方出品,为MySQL的高可用方案注入了新血液。其一致性,以及不依赖外部组件实现的自动切换、多点写入,给DBA带来了不少期待。一、背景以MHA作为切换工具,CMDB管理元数据,结合中间件的高可用方案在MySQL生态中是比较常见的架构。在这个体系中,CMDB作为基础组件之一,不能再依赖这个架构实现自身的高可用,而需要一套自成体系的高可用架构保障。2017年下半年开始,美团点评数据库计..原创 2022-03-19 22:26:32 · 652 阅读 · 0 评论 -
MySQL 8.0 MGR自动安装配置脚本
mysql_installMySQL8.0 自动安装脚本mysql8_install.sh(执行前修改一下脚本里的配置参数,改成你自己的)my_test.cnf(这个是模板文件,基本上不用改,mysql8_install.sh脚本执行的时候会自动替换里面的port,server_id,innodb_buffer_pool_size等)mysql-8.0.28-linux-glibc2.12-x86_64.tar.xzshell> wgethttps://dev.mysql.com.原创 2022-03-19 22:21:22 · 3693 阅读 · 0 评论 -
MySQL HA 方案 MMM、MHA、MGR、PXC 对比
MySQL高可用架构MMM(Multi Master Replication Manager)资源 数量 说明 主DB 2 用于主备模式的主主复制 从DB 0~N台 可以根据需要配置N台从服务器 IP地址 2n+1 N为MySQL服务器的数量 监控用户 1 用户监控数据库状态的MySQL用户(replication) 代理用户 1 用于MMM代理端改变read_only状态 故障转移步原创 2022-03-19 21:58:53 · 4902 阅读 · 0 评论 -
企业IT技术架构总规划及建设思路
原创 2021-12-21 09:30:29 · 1214 阅读 · 0 评论 -
Redis exception; nested exception is io.lettuce.core.RedisException: java.io.IOException: 你的主机中的软件中止
Redis exception; nested exception is io.lettuce.core.RedisException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。修改sshd_configvim /etc/ssh/sshd_configClientAliveInterval 600ClientAliveCountMax 10重启service sshd restart程序运行就不报错了...原创 2021-12-17 10:19:28 · 14311 阅读 · 2 评论 -
架构设计-谈谈架构
1、什么是架构和架构本质在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。 此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。Linux有架构,MySQL有架构,JVM也有架构,使用Java开发、MySQL存储、跑在Linux上的业务系统也有架构,应该关注哪一个?想要清楚以上问题需要梳理几个有关系又相似的概念:系统与子系统、模块与组建、框架与架构:原创 2021-10-20 09:13:49 · 586 阅读 · 0 评论 -
nginx+nginx-upsync-module实现动态负载及自定义验证
一、说明nginx一般直接在配置文件里配置upstream即可实现负载均衡,但有些特定的环境下此种方式就显得有些局限性。比如后端服务器无法依据端口占用检查存活的时候;后台动态调整节点的时候;调整节点后不想修改配置文件重启nginx的时候等等。此文的思路是将配置文件从nginx本地迁移到其他第三方服务上如etcd、consul上,然后时候拉取配置到本地。理论上说任何第三方配置中心都可以实现该功能,但需要对应的nginx模块。本文采用nginx-upsync-module,主要支持consul、etcd原创 2021-08-26 09:56:27 · 929 阅读 · 0 评论 -
软件架构设计的6个步骤及工作内容
如何有序、高效、全面做好软件架构设计呢?作为一名软件架构师,应该具备的基本素质是:掌握架构设计的基本步骤,且清晰每个步骤的工作内容。本文结合实际项目经验,将对软件架构设计的步骤及工作内容进行介绍。在整个软件架构设计过程中,笔者结合自身项目经验将架构设计步骤罗列为6个大步骤,依次是需求分析、领域建模、确定关键需求、概念架构设计、细化架构设计、架构验证。在实际项目过程中,也是遵循这6个大步骤进行软件架构设计的。软件架构设计步骤如下图所示:架构设计的6个步骤 ...原创 2021-07-30 10:22:09 · 3591 阅读 · 1 评论 -
SpringBoot入门到精通-三步整合knife4j
knife4j的比较好看Knife4j的前身是swagger-bootstrap-ui,前身swagger-bootstrap-ui是一个纯swagger-ui的ui皮肤项目一开始项目初衷是为了写一个增强版本的swagger的前端ui,但是随着项目的发展,面对越来越多的个性化需求,不得不编写后端Java代码以满足新的需求,在swagger-bootstrap-ui的1.8.5~1.9.6版本之间,采用的是后端Java代码和Ui都混合在一个Jar包里面的方式提供给开发者使用.这种方式虽说对于集成swa原创 2021-07-13 18:14:49 · 5302 阅读 · 1 评论 -
SonarQube教程-指标定义
指标定义复杂Complexity(complexity)它是根据通过代码的路径数计算的圈复杂度。每当函数的控制流分裂时,复杂度计数器就会增加 1。每个函数的最小复杂度为 1。该计算因语言而异,因为关键字和功能确实如此。特定于语言的详细信息认知复杂度(cognitive_complexity)理解代码的控制流有多难。有关用于计算此度量的数学模型的完整说明,请参阅认知复杂性白皮书。重复Duplicated blocks(duplicated_blocks)行的重复块数。...原创 2021-06-16 19:14:29 · 1488 阅读 · 2 评论 -
Sonarqube Openldap配置了但 登录401无法授权
#--------------------------------------------------------------------------------------------------# LDAP CONFIGURATION# Enable the LDAP featuresonar.security.realm=LDAP# Set to true when connecting to a LDAP server using a case-insensitive setup.so原创 2021-05-10 16:48:43 · 1458 阅读 · 0 评论 -
Gitlab 实现仓库完全迁移,包括所有提交记录、分支、标签
cd <项目目录>git fetch --allgit fetch --tagsgit remote rename origin old-origin #可以不保留git remote add origin http://***(项目的新仓库地址)#git remote set-url origin <项目的新仓库地址>git push origin --allgit push --tags有多个分支的话,就切换到另一个分支提交:git checkout de...原创 2021-03-24 10:25:31 · 1850 阅读 · 0 评论 -
SpringCloud入门到精通- Error attempting to get column ‘create_time‘ from result set. Cause: java.sql.SQL
百度原因是Mybati-plus与druid数据源,由于druid数据源的版本太低,不支持JDK8中的LocalDate、LocalTime、LocalDateTime等日期类型,所以解决方案就是下载新版本的druid依赖,查询到自己的版本:已经是1.1.21了,那怎么办呢?解决方案:1、关闭idea;2、删除项目;3、重新git clone4、idea open file5、mvn clean install6、run application7、succes原创 2021-03-11 19:05:36 · 1712 阅读 · 0 评论 -
Java入门到精通-List集合元素去重的8种方法
这一篇文章我想写一下List集合元素去重的8种方法,实际上通过灵活的运用、排列组合不一定是8种,可能有18种方法。对象元素整体去重的4种方法 按照对象属性去重的4种方法为了在下文中进行测试内容讲解,我们先做一些初始化数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21...转载 2021-03-11 10:32:09 · 935 阅读 · 2 评论 -
JAVA入门到精通- 重写方法实现集合对象去重
建个工具类 重写方法实现集合对象去重 比较实用方法一、根据某个字段去重 /** * 根据某个字段去重 * * @param carList * @return * @author preference */ public static List<Car> distinctBycar(List<Car> carList) { Set<Car> set = new TreeSe...原创 2021-03-11 10:28:04 · 582 阅读 · 0 评论 -
性能之颠-应用程序性能技术
5.2 应用程序性能技术本节讨论了一些提高应用程序性能的常用技术:选择I/O 大小、缓存、缓冲区、轮询、并发和并行、非阻塞I/O 和处理器绑定。参考应用程序文档看看这些技术哪些在应用,看看有没有应用程序其他的独有特性。5.2.1 选择I/O 尺寸执行I/O 的开销包括初始化缓冲区、系统调用、上下文切换、分配内核元数据、检查进程权限和限制、映射地址到设备、执行内核和驱动代码来执行I/O,以及,在最后释放元数据和缓冲区。“初始化开销”对于小型和大型的I/O 都是差不多的。从效率上来说,每次I/O 传原创 2021-03-04 08:29:30 · 889 阅读 · 1 评论 -
IDEA部署tomcat 引入三方jar包不能输出lib导致启动失败,看如何解决的
springboot 一统了,突然维护前几年的项目,下载代码居然启动不了主要有两个问题的1、引用了三方jar 也就是仓库里下不到的jar;2、引用的jar没输出到WEB-INF下面的lib下。首先来看第一个问题有几种方法1、安装本地仓库,但是要写bat脚本,每个开发下载下来都要安装;2、手动传到私有仓库,嫌麻烦3、本地jar路径引用,方便统一管理,择之实现起来比较简单<dependency> <groupId>com.ckfinder&原创 2020-10-13 18:58:10 · 1319 阅读 · 0 评论 -
SpringBoot入门到精通-springboot 富文本字段返回结果 respone html标签丢失了
基于Springboot controller开发时富文本存储到库中,但接口查询返回时结果中html的标签都被过滤掉了;查询源码跟踪也找不出有特殊的设置;存储格式如下:返回结果如下:脑回路猛转Strings=HtmlUtils.htmlEscape("<div>helloworld</div><p> </p>");System.out.println(s);<div...原创 2020-07-17 10:27:36 · 2279 阅读 · 4 评论 -
短视频SDK技术选型
七牛短视频特效SDKhttps://www.qiniu.com/products/plesdkhttps://www.qiniu.com/products/svesdk阿里云短视频sdkhttps://promotion.aliyun.com/ntms/act/shortvideo.html?spm=a2c4g.11186623.2.18.1a882e86Rhy6Xn腾讯短视频sdkhttps://cloud.tencent.com/product/ugsv...原创 2020-07-12 21:46:38 · 679 阅读 · 0 评论 -
高性能短链设计-URL Shortener:详细设计说明
https://dzone.com/articles/url-shortener-detailed-explanation介绍URL缩短器是一种用于从很长的URL创建短链接的服务。通常,短链接的大小是原始URL的三分之一甚至四分之一,这使得它们更易于键入,呈现或发布。单击短链接用户将自动重定向到原始URL。在线提供了许多URL缩短服务,例如tiny.cc,bitly.com,cutt.ly等。实现URL缩短服务并不是一项复杂的任务,并且通常是系统设计访谈的一部分。在这篇文章中,我将尝试解释实现.原创 2020-07-04 22:55:48 · 1772 阅读 · 0 评论 -
好文收藏- nginx upstream timeout参数配置说明
·【场景描述】HTTP1.1之后,HTTP协议支持持久连接,也就是长连接,优点在于在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。如果我们使用了nginx去作为反向代理或者负载均衡,从客户端过来的长连接请求就会被转换成短连接发送给服务器端。为了支持长连接,我们需要在nginx服务器上做一些配置。 ·【要求】使用nginx时,想要做到长连接,我们必须做到以下两点:从client到nginx是长连接 从nginx到server是长连接 ...原创 2020-07-01 10:21:56 · 1516 阅读 · 0 评论 -
Nexus 配置 https证书 过程 /bin/nexus start 启动不起来
1、下载证书生成 keystore.jksopenssl pkcs12 -export -out keystore.pkcs12 -inkey nexus.key -in nexus.crtcrt 也可以是 pem密码需要记住2、keytool -v -importkeystore -srckeystore keystore.pkcs12 -srcstoretype PKCS12 ...原创 2020-04-16 08:56:35 · 1835 阅读 · 0 评论 -
分布式事务解决方案-Seata介绍
什么是Seata?Seata是一个开源的分布式事务解决方案,致力于提供高性能和易于使用的分布式事务服务。Seata将为用户提供AT,TCC,SAGA和XA交易模型,以为用户创建一站式分布式解决方案。AT模式先决条件支持本地ACID事务的关系数据库。 通过JDBC访问数据库的Java应用程序。整体机制从两个阶段提交协议的演变:阶段1:在同一本地事务中提交业务数据和回滚日志,然后释放本地锁和连接资源。 阶段2: 对于提交情况,异步快速地完成工作。 对于回滚情况,请根据阶段1中原创 2020-06-28 10:17:07 · 890 阅读 · 0 评论 -
fastJson序列号问题 com.alibaba.fastjson.JSONException: autoType is not support.
ParserConfig.getGlobalInstance().setAutoTypeSupport(true);com.alibaba.fastjson.JSONException: autoType is not support. l.dto.WpContentHomePageResp at com.alibaba.fastjson.parser.ParserConfig.checkAutoType(ParserConfig.java:1185) at com.alibaba.fastj.原创 2020-06-18 20:39:21 · 2542 阅读 · 0 评论 -
Sonar学习笔记-手动安装checkstyle插件
版本:sonarqube6.7.7在sonar应用市场中安装插件时报错,没有找到合适版本,于是手动安装插件第一步:下载对应版本的checkstyle插件https://github.com/checkstyle/sonar-checkstyleCheckstyle Plugin Sonar min Sonar max Checkstyle Jdk 4.32 7.9 7.9+ 8.32 1.8 4.31 7.9 7.9+原创 2020-06-09 10:53:19 · 2172 阅读 · 0 评论 -
Nginx 集群 tomcat7&8 session 共享配置有源码
使用nginx配置集群后,存在serverA上登录创建session,请求路由到server2时发现没有session,导致重新登录问题,原因是session没有共享,那该怎么共享呢?通常有两种方法实现,一种集成spring-session,另一种在tomcat中集成session共享,核心思想都是将session存储到一个公用库(redis,mangdb等)本文主要介绍tomcat sessio...原创 2018-06-04 10:13:26 · 822 阅读 · 0 评论 -
分布式系统的基本问题:可用性与一致性
分布式系统的挑战 一致性可理解为所有节点都能访问到最新版本的数据,这在单机场景下非常容易实现,使用共享内存和锁即可解决,但数据存储在单机会有两个限制: 1)单机不可用系统整体将不可用;2)系统吞吐量受限于单机的计算能力。 消除这两个限制的方法是用多机来存储数据的多个副本,负责更新的客户端会同时更新数据的多个副本,于是问题就来了,多机之间的网络可能无法连接,当负责更新的客...转载 2018-10-26 08:25:16 · 1653 阅读 · 0 评论 -
Failed to pull image "k8s.gcr.io/fluentd-elasticsearch:v2.0.4"
Failed to pull image "k8s.gcr.io/fluentd-elasticsearch:v2.0.4": rpc error: code = Unknown desc = Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for co...原创 2019-01-22 17:50:10 · 2814 阅读 · 1 评论 -
centos7 按照 sonar
sonar这个玩应,捅咕了好几天,太坑了。0.0坑的都无语了,决定写一篇分享一下经验,之前也写了一个,不过那个版本有点低,删了重写。1.环境系统环境:centos7.0 -x86_64(精简安装) 前置条件:jdk1.8 , mysql-5.7软件下载目录:/usr/local/软件安装目录:/usr/local/软件版本:sonarqube-6.7.5,sonar-runner-d...转载 2019-01-28 09:30:11 · 723 阅读 · 0 评论 -
kubeernetes节点资源限制
kubeernetes节点资源限制实际应用中发现,部分节点性能不足,某些较大的服务如果跑在这些机器上。会很快消耗该机器的内存和cpu资源,如果用uptime看一下的就会发现负载特别高(合理的范围这个值应该等于cpu个数),高到一定值就会导致该节点挂了。比较好的方式是1:底层,采用性能高的服务器用openstack分出多个虚机,通过资源的自动伸缩,但是目前还没有这个条件。直接跑在低性能的...原创 2019-01-16 17:44:51 · 1127 阅读 · 0 评论 -
centos7.3 安装sonar异常
Java HotSpot(TM) Server VM warning: You have loaded library /wostore/sonar/sonarqube-6.7.6/bin/linux-x86-64/lib/libwrapper.so which might have disabled stack guard. The VM will try to fix the stack g...原创 2019-01-27 18:37:22 · 810 阅读 · 0 评论 -
k8s failed to get container status {"" ""}: rpc error: code = OutOfRange desc = EOF
原创 2019-01-22 15:43:20 · 1830 阅读 · 0 评论 -
k8s-nfs-server安装及使用
CentOS 7 安装配置 NFS服务器nps 192.168.136.18client 192.168.136.19安装nfsyum -y install nfs-utils rpcbindNFS 说明NFS 的套件结构:/etc/exports :这个档案就是 NFS 的主要设定档了!不过,系统并没有预设值,所以这个档案‘ 不一定会存在’,您可能必须要使用 vi 主动的建...原创 2019-01-22 11:30:55 · 2574 阅读 · 0 评论 -
k8s EFK 安装
第一部分:EFKEFK 插件是k8s项目的一个日志解决方案,它包括三个组件:Elasticsearch, Fluentd, Kibana;Elasticsearch 是日志存储和日志搜索引擎,Fluentd 负责把k8s集群的日志发送给 Elasticsearch, Kibana 则是可视化界面查看和检索存储在 Elasticsearch 的数据。准备下载官方最新release,进入目...原创 2019-01-16 15:12:30 · 2580 阅读 · 1 评论 -
docker修改默认存储存储路径 The "graph" config file option is deprecated. Please use "data-root" instead.
docker修改默认存储路径,默认路径在/var/lib/docker 目录下,但是空间比较小,修改成自己的指定路径原参数 --graph 过期了使用data-root路径可以使用 dockerd 查看日志1. 设置docker servicevim /etc/systemd/system/docker.service2.添加data-root、insec...原创 2019-01-16 13:51:32 · 7722 阅读 · 0 评论 -
k8s对外服务暴露方式-ingress配置
k8s 对外服务设置对外服务方式kube-proxy 只允许本地访问NodePort 使用物理机端口和k8s service虚拟ip:端口 映射LoadBalancer 使用NodeIp+Nodeport的方式实现, 配合云环境GCE、aws提供的负载地址ingress 使用开源的反向代理负载均衡器来实现对外暴漏服务,比如 Nginx、Apache、Haproxy等ingress...原创 2019-01-21 16:57:25 · 8927 阅读 · 2 评论 -
sonar启动的时候出现Process exited with exit value [es]: 143异常-让你拍大腿的解决方法
sonar启动的时候出现Process exited with exit value [es]: 143异常百度google了很久,发现都是一样的,也可能是解决方法之一,我遇到的问题不一样解决方法如下:查看 logs目录下的日志一直盯着 es的日志 但死活找不到问题;于是看了一眼 web.log2019.01.28 09:06:01 INFO web[][o.sonar...原创 2019-01-28 10:08:17 · 10446 阅读 · 2 评论 -
k8s-多节点部署efk-dial tcp 172.20.2.134:5601: getsockopt: connection refused
异常信息Error: 'dial tcp 172.20.0.145:5601: getsockopt: connection refused'Trying to reach: 'http://172.20.0.145:5601/'分析部署好efk后,通过kubectl cluster-info 查询 访问地址,访问后提示以上错误,由于之前成功访问到了kibana的界面,当时只有一个mas...原创 2019-01-23 11:12:56 · 1807 阅读 · 0 评论 -
通信行业专业词汇收集
SP是英文Service Provider的缩写,中文翻译为服务提供商,通常是指在移动网内运营增值业务的社会合作单位。它们建立与移动网络建立相连的服务平台,为手机用户提供一系列信息服务,如:娱乐、游戏、短信、彩信、WAP、彩铃、铃声下载、定位等等。CP是英文Content Provider的缩写,中文翻译为内容提供商。通常是指为电信运营商(包括固定网、移动网、因特网或其他数据网运营商)提供...原创 2019-03-29 10:07:06 · 1245 阅读 · 0 评论 -
安装SonarQube
安装SonarQube第一步:将下载的sonarqube-6.7.zip解压后移动到/usr/local目录下。具体步骤如下:Centos 7环境安装SonarQube和SonarQube Runner将文件解压到/usr/local/[root@localhost local]# unzip sonarqube-6.7第二步:配置环境变量[root@localhost local]#...原创 2019-02-13 17:25:09 · 533 阅读 · 0 评论