后端
文章平均质量分 59
程序员 beige
可以叫我北哥,我专注java领域技术分享,包括分布式,中间件,微服务,架构设计等,感谢各位关注,有技术问题可以交流交流哦
展开
-
记一次Java应用查询不到最新数据的问题
主备机房数据库做同步,redis可没做同步,那如果备机房之前测的时候把旧数据缓存起来了,之后在主机房管理平台修改配置数据库数据是改了,主机房redis是清了,数据库也同步到备机房了,但是备机房redis不会触发清除啊!其实这个问题的关键是,备机房也和主机房一起工作了,导致备机房的redis有了缓存数据,按正常使用方式,备机房只有主机房故障才会启用,不会也不建议同时使用,因为可能还会有其他问题。这不解决了一大半吗!复盘一下,首先是部署拓扑,做的主备机房异地灾备,主备机房数据库做同步,查看了两边数据是一致的!原创 2023-11-25 20:38:40 · 648 阅读 · 0 评论 -
为什么建议主键整型自增?
我们从查找过程可以看到,整个过程关键点就是在这棵树上不停的比较id值是否等于、大于还是小于2,即数据的大小比较。数据比较是消耗CPU的,而不同的数据类型耗时不同,常见的整型要小于字符型。整型的1原创 2022-11-06 15:56:31 · 630 阅读 · 0 评论 -
springcloud alibaba集成feign
我的猜想,因为写String类型,框架并不知道要用哪种格式,默认为text/plain,但是order服务的下单接口入参上加了@RequestBody,表明需要为application/json类型。这里的OrderCreateParam和order服务里的OrderCreateParam 是完全不同的类,在各自的工程里,Result也是。这里的入参和出参都可以改为String,也可以任意组合,及入参为String,出参为对象,或入参为对象,出参为String。至此,Order服务的下单接口已完毕。....原创 2022-08-29 18:58:07 · 529 阅读 · 0 评论 -
几款ZooKeeper可视化工具,最后一个美炸了~
本文首发于公众号BiggerBoy。通过人为操作去查看、管理ZK上的数据时,就亟需一个可视化操作界面。下面给大家介绍几款目前市面上流行的ZK可视化工具,有需要时就可以直接用啦。原创 2022-07-17 12:23:37 · 13049 阅读 · 3 评论 -
mysql使用存储过程实现批量插入
MARK一下mysql使用存储过程实现批量插入-- 删除存储过程DROP PROCEDURE IF EXISTS proc_initData;-- 1、创建 follow_type 1信息部 0技术部 status 1提交 3通过CREATE PROCEDURE proc_initData()BEGINDECLARE i INT DEFAULT 0;WHILE i<=100 DO INSERT INTO t_test( status, create_time, user_id,原创 2022-02-23 16:10:13 · 540 阅读 · 0 评论 -
etcd和Zookeeper孰优孰劣?
etcd和zookeeper对比背景最近在看到Pachyderm的介绍时,看到作者拿YARN和Kubernetes做类比,拿Zookeeper和etcd做对比。YARN和Kubernetes的类比还相对比较好理解,毕竟他们都有资源管理和调度的职能,只不过YARN上运行的对象是JVM,而Kubernetes上运行的是容器。但是拿Zookeeper和etcd来类比我就有些不懂了,在我之前的概念里zookeeper并不是一个存储组件啊,因此有了本文的过程。ZK和etcd可以做类比吗?etcd的官网介绍是一翻译 2022-02-12 14:25:32 · 1842 阅读 · 0 评论 -
ETCD及其应用场景
一、什么是etcd?etcd 发音为/ˈɛtsiːdiː/,名字的由来,“distributed etc directory.”,意思是“分布式etc目录”,说明它存的是大型分布式系统的配置信息。官网的一句话A distributed, reliable key-value store for the most critical data of a distributed system.翻译并理解过来就是:一个用于存储分布式系统中最关键的数据的仓库,它是分布式的、可靠的键值对仓库。首先它是个转载 2022-02-12 14:11:14 · 862 阅读 · 0 评论 -
apisix和apisix dashboard安装docker版
安装apisix先下载apisix的镜像文件在docker的镜像库搜一下docker search apisix第一个就是,如果要下载最新版的,直接执行docker pull apache/apisix即可。选择其他版本的话需要访问https://hub.docker.com/r/apache/apisix/tags,我是用的2.10.0-alpine版本。启动etcd下载完之后不着急启动,因为apisix依赖etcd,所以要先保证etcd启动。创建配置文件然后,在宿主机本地创建api原创 2022-02-08 16:16:32 · 3757 阅读 · 2 评论 -
获取不到http请求头自定义参数
对外提供的API,需在http请求头传app_id(下划线分割),服务端通过request.getHeader("app_id")获取不到对应的参数值,排查原因,是因为nginx默认将带下划线的header自定义参数中的下划线去掉了(有的说过滤掉了,这个没有去查证)解决办法:将nginx的配置underscores_in_headers参数设置成on。该参数默认为off会替换下划线,导致服务端通过request.getHeader("app_id")获取不到对应的参数值。...原创 2022-01-26 19:14:51 · 3239 阅读 · 0 评论 -
【RocketMQ】常见问题(1)
本地测试RocketMQ时报错如下:Caused by: org.apache.rocketmq.client.exception.MQBrokerException: CODE: 14 DESC: service not available now, maybe disk full, CL: 0.90 CQ: 0.90 INDEX: 0.90, maybe your broker machine memory too small.根据错误信息可知,broker的内存太小导致的。查看runbr原创 2021-10-13 15:18:33 · 1698 阅读 · 0 评论 -
RocketMQ深入浅出-03-集群搭建
3. RocketMQ集群搭建3.1 各角色介绍Producer:负责发送消息到消息队列;Consumer:从消息队列获取消息进行消费;Broker:暂时存储和传输消息的平台;NameServer:管理Broker;Topic:区分消息的种类;一个发送者可以发送消息给一个或者多个Topic;一个消息的接收者可以订阅一个或者多个Topic消息Message Queue:相当于是Topic的分区;用于并行发送和接收消息3.2 集群搭建方式3.2.1 集群特点NameServer是一个几乎无原创 2021-10-11 14:59:45 · 170 阅读 · 0 评论 -
springboot使用log4j2且配置文件中引用pom变量
springboot在log4j2配置文件中引用pom变量引入log4j2首先需要引入log4j2,而spring boot默认使用的是logback,需要排除默认的log组件。logback性能不如log4j2优秀,所以我们换成log4j2。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifa原创 2021-10-09 15:03:25 · 2616 阅读 · 0 评论 -
SQLserver新增字段及注释
SQLserver对已有表添加新的列并给列添加注释:-- 添加字段alter table 表名 add 字段名 type null default null;-- 加注释EXEC sp_addextendedproperty'MS_Description', N'注释','SCHEMA', N'数据库名','TABLE', N'表名','COLUMN', N'字段名'GO...原创 2021-09-13 12:56:36 · 4297 阅读 · 1 评论 -
RocketMQ深入浅出-02-详细介绍与安装
RocketMQ快速入门RocketMQ是阿里巴巴2016年开源的MQ中间件,捐献给了apache软件基金会,现在已经成为apache下的顶级项目。它使用Java语言开发,在阿里内部,RocketMQ承接了例如“双11”等高并发场景的消息流转,能够处理万亿级别的消息。2.1 准备工作2.1.1 下载RocketMQRocketMQ最新版本:4.5.1下载地址2.2.2 环境要求Linux64位系统JDK1.8(64位)源码安装需要安装Maven 3.2.x2.2 安装RocketMQ2原创 2021-09-13 11:15:13 · 175 阅读 · 0 评论 -
Connection to debugger failed: Interrupted function call: accept failed解决
idea中debug启动Tomcat报错Connection to debugger failed: Interrupted function call: accept failed解决办法:配置面板中检查AJP port填写了端口,填了就删掉,保存后重新debug启动就OK了原创 2021-09-13 10:54:50 · 821 阅读 · 0 评论 -
中国省市区乡县名称代码对照表
很多时候页面要展示省市区下拉框三级联动,这里找到了中国省市区乡县名称代码对照表可以维护到字典库里原创 2021-09-08 13:08:30 · 2425 阅读 · 0 评论 -
老板:把系统从单体架构升级到集群架构!
https://mp.weixin.qq.com/s?__biz=MzUxNTQyOTIxNA==&mid=2247484696&idx=1&sn=8ca82f22b13a3df7d06f1baa7d26ba25&chksm=f9b78329cec00a3f97b48e344de118e8ef9446df28e0991b546dcd52d3a606e7c1fd5ab79744&token=232708165&lang=zh_CN#rd原创 2021-08-19 09:50:39 · 601 阅读 · 0 评论 -
springboot返回对象报No serializer found for class xxx and no properties discovered to create BeanSerializ
springboot项目自定义类,controller层直接返回这个类报如下错误,也实现了Serializable接口com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.springframework.context.expression.StandardBeanExpressionResolver and no properties discovered to c原创 2021-08-05 14:51:45 · 14052 阅读 · 2 评论 -
Nacos用做配置中心时启动报错SocketTimeoutException http://localhost:8848
当使用nacos作为注册中心时,很顺利,进如下配置(仅仅配置了ip和端口)启动类加@EnableDiscoveryClient注解nacos作为配置中心当继续将nacos作为配置中心时添加加依赖<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><原创 2021-08-05 13:16:03 · 13330 阅读 · 6 评论 -
Nacos忘记密码Nacos密码加密方式
忘了Nacos控制台的登录密码,打开数据库密码是加密的,想修改就得知道它的加密方式Nacos账户密码的加密方式从源码得知,当修改密码时调的api对应的是UserController.updateUser方法,第155行update前先加密点进去看到,使用的是org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder#encode,为spring security包下的密码加密实现类。Bcrypt加密算法什么是Bcrypt加原创 2021-08-05 13:03:42 · 12715 阅读 · 0 评论 -
Nacos源码启动报错找不到符号com.alibaba.nacos.consistency.entity
如果报错找不到符号com.alibaba.nacos.consistency.entity原创 2021-08-05 11:35:34 · 9986 阅读 · 6 评论 -
springcloud alibaba、springcloud、springboot版本关系
原创 2021-08-04 18:01:10 · 185 阅读 · 0 评论 -
jenkins部署聚合项目报错[FATAL] Non-resolvable parent POM for xxx: Could not find artifact xxx
项目改为聚合工程后使用jenkins部署时报错,如下[ERROR] The build could not read 2 projects -> [Help 1]org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:[FATAL] Non-resolvable parent POM for com.wenbei.member:memb原创 2021-08-04 14:50:53 · 2860 阅读 · 0 评论 -
...jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server问题原因之一
开发需求时反复启动Tomcat,某次在idea中启动时突然报错com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection去网上百度,很多都是说版本问题,我没有换connectors的版本,也没用拉别人提交的代码,突然就报错了。我尝试修改驱动的版本,也是不行,重新编译,清理缓存,删除target都是不行。搞了两个小时还不是OK,于是我就想着把项目打成war包,放到Tom原创 2021-08-03 15:40:26 · 3685 阅读 · 0 评论 -
[需求设计]从一个小需求感受Redis的独特魅力
分享一个简单的小需求应该怎么设计实现以及有关Redis的使用Redis在实际应用中使用的非常广泛,本篇文章就从一个简单的需求说起,为你讲述一个需求是如何从头到尾开始做的,又是如何一步步完善的。之前写过一篇《如何实现页面广告随时上下线、过期自动下线及到时自动上线》,也涉及到了Redis在项目中的实际应用,有兴趣的可以看一下。需求设定,现在我们有一个APP,产品新提出一个叫“程序员树洞...原创 2019-12-02 13:08:35 · 166 阅读 · 0 评论 -
Java并发编程之CAS原理及用法详解
在Java并发编程的世界里,synchronized 和 Lock 是控制多线程并发环境下对共享资源同步访问的两大手段。其中 Lock 是 JDK 层面的锁机制,是轻量级锁,底层使用大量的自旋+CAS操作实现的。学习并发推荐《Java并发编程的艺术》那什么是CAS呢?CAS,compare and swap,即比较并交换,什么是比较并交换呢?在Lock锁的理念中,采用的是一种乐观锁的形式,即多线程去修改共享资源时,不是在修改之前就加锁,而是乐观的认为没有别的线程和自己争锁,就是通过CAS的理念去原创 2020-08-24 13:36:34 · 400 阅读 · 0 评论 -
什么是消息队列?MQ简介
大家好,我是walking,原文首发于公众号@编程大道。今天我们来聊一聊什么是消息队列,为什么要用消息队列,有什么好处呢?同样使用消息队列有什么坏处?我们的项目要引入消息队列了,之前只是听说使用消息队列有什么什么好处,感觉挺高大上的,自己也只是看过各种消息队列的技术文章,流行的几种消息队列中间件也都自己搭建过,写过demo,所以现在要引入消息队列了,好激动啊,要用新技术了。出于大家都不了解消息队列,所以要在项目组内部对各位开发进行一个简单的科普。以下就是我自己整理的消息队列的科普知识,希望对大家.原创 2020-07-03 14:42:49 · 542 阅读 · 2 评论 -
近期Java高级开发岗面试总结
原文出处:公众号:编程大道作者:walking近期Java高级开发岗面试总结哈喽大家好,我是walking,这是我的公众号:编程大道。很久没和大家见面了,文章更新的速度略有延后。这个公众号断断续续的也维护了有三年了,其实实际开始专心维护的时间也就从1年多前开始的,总是忙于工作,没有太多的时间静下心来好好写,好在有400多个小伙伴关注着,不离不弃的,加油,继续努力。上周抽空开放了一下招聘网站上的简历,抱着试一试的态度,主要是想检验一下自己这段时间学的怎么样,如果有好的工作机会还是会.原创 2020-06-29 09:20:39 · 641 阅读 · 0 评论 -
最近面试遇到的种种应聘者,你是这样的吗?
原文很久没有写文章了,一时间竟不知如何开篇?为什么没有写呢?是因为太忙了。最近在忙什么呢?工作学习还有就是招人。上班时间不忙的时候大多是在看技术文章、技术文档,上下班公交车上也是,还有就是最近两个月在面试一些人。其实我是不太想面的,原因有三。一是耽误我自己的时间,二是面了十几个只有一两个能让我很称心的。还有就是太费钱了公司又不给报销,所以我最近都会用一些会议软件来面试。昨天面试了一个2012年开始工作的30岁程序员,面试前我心里打鼓,毕竟我才工作三年????但是说实话面下来不太理想,首先简历写的原创 2020-06-09 13:35:26 · 241 阅读 · 0 评论 -
mybatis在mysql的innoDB下批量插入无效
我们的批量插入的SQL:<!-- 批量插入 --><insert id="saveUsers" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> insert into user (name,email,phone,sex) values <foreach collection="list" separator="," item="item"> (#{item.name},#{i原创 2020-05-24 18:35:26 · 989 阅读 · 0 评论 -
springboot使用spring initializr创建超时问题
记录一次创建springboot项目失败的问题,以便以后查看使用IDEA创建SpringBoot项目是,File-new-project-spring initializr-next时卡着,过一会儿提示超时我们可以点击setting,如图找到http proxy,按图中操作然后点击OK,如果像下图这样就还是失败我们可以试试把https改为http试试,下图这样才是成功了如果一直不成功,可能是网络的问题,换换网(如手机热点)试试,或者过一会就好了...原创 2020-05-12 16:05:30 · 1867 阅读 · 0 评论 -
新晋面试官对近期面试的感想与总结
文章首发于公众号:编程大道欢迎关注原文链接最近帮公司面试,前前后后面了有六七个,结果不太理想。以下是我自己对近期面试的一些感想和总结。建议先点赞、收藏再看,以免找不到了。作为面试官,我总结了这几次面试,发现好几个应聘者存在以下几个问题:1、搞不清楚问题,对基本概念没吃透。2、准备不够充分,对面试不够重视。3、简历花里胡哨,甚至看不清字。4、写在简历上的技术却毫无准备。5、对自己做过的东西描述不清。下面就针对以上几个问题简要地聊聊。1、搞不清楚问题,对基..原创 2020-05-11 10:41:33 · 598 阅读 · 0 评论 -
阿里Java开发手册泰山版来袭
阿里Java开发手册自2016年12月7日发布公开版以来,距今已发布7个版本,被越来越多的公司拿来直接或略微修改后作为公司的Java开发规范手册,嫣然成为行业的标杆。就在昨天早上8点,阿里Java开发手册泰山版正式发布。(文末附下载方式)《Java开发手册》始于阿里内部规约,在全球Java开发者共同努力下,已成为业界普遍遵循的开发规范。手册涵盖编程规约、异常日志、单元测试、安全规约、My...原创 2020-04-23 11:36:18 · 1208 阅读 · 0 评论 -
Windows下给RabbitMQ添加virtualHost
Windows下给Rabbit添加virtualHost虚拟机登录到rabbitmq管理界面,点击admin,右侧virtual Host,点击 add a newvirtual host,填写Name,点击addvirtual host即可然后点击这个虚拟机,设置一些权限即可...原创 2020-04-21 22:41:19 · 1258 阅读 · 0 评论 -
Redis入门(一)-Redis简介
最近几年,Rddis非常的火,受到广大中大型公司,特别是互联网公司的青睐。而作为后端开发,如果你不知道Redis或不会用,没用过,你都不好意思出去找工作。可想而知Redis对于IT行业意义多么重大。对于一些初学者可能并不了解Redis,所以,我们接下来一起来学习一下Reids的一些基本概念,进而加深对Redis的理解。Redis是什么?首先看官网的解释:Redis是一个开源(BSD许可),...原创 2019-07-08 10:57:38 · 146 阅读 · 0 评论 -
Redis入门(二)-Redis能够做什么
引言在上篇文章中,我们讲述了Redis的基本知识让读者对Redis有了基本的了解。那么这一节我们就来看一下Redis究竟能做什么。上一节我们提到了Redis可用作数据库,高速缓存和消息队列代理。这句话不错,Redis确实可以做这些事情,但是不够具体,下面我们就从这三点展开来看一下具体怎么使用,用在哪些场景。数据库说Redis可以做数据库,那一点也不假。具体怎么做呢?不是说Redis没有表结...原创 2019-07-12 21:36:21 · 132 阅读 · 0 评论 -
Redis入门(三)-Redis的安装及操作key的命令介绍
前两节对Redis做了一些详细的介绍,那么接下来开始我们就正式进入Redis的学习阶段。安装RedisWindows下安装redis非常方便, 下载压缩包解压即可使用。链接:https://pan.baidu.com/s/1uvneRgpfiS35qtAdkGKfIQ提取码:qcmx解压后就是这样然后双击 redis-server.exe 启动redis服务端,看到如下界面就是启动成...原创 2019-07-12 21:40:44 · 122 阅读 · 0 评论 -
我在生产项目里是如何使用Redis发布订阅的?(一)使用场景
导语Redis是我们很常用的一款nosql数据库产品,我们通常会用Redis来配合关系型数据库一起使用,弥补关系型数据库的不足。其中,Redis的发布订阅功能也是它的一大亮点。虽然它不是一款专门做发布订阅的产品,但其自带的发布订阅功能已经满足我们日常需求了。那Redis的发布订阅功能都可以用在哪些场景呢?我在生产项目里又是如何使用Redis发布订阅的?今天我们就来探讨一下这个问题。什么是发...原创 2019-07-13 14:41:07 · 2206 阅读 · 0 评论 -
我在生产项目里是如何使用Redis发布订阅的?(二)Java版代码实现(含源码)
上篇文章讲了在实际项目里的哪些业务场景用到Redis发布订阅,这篇文章就讲一下,在Java中如何实现的。图解代码结构发布订阅的理论以及使用场景大家都已经有了大致了解了,但是怎么用代码实现发布订阅呢?在这里给大家分享一下实现方式。我们以文章讲述的第三种使用场景为例,先来看一下整体实现类图吧。发布订阅实现类图解释一下,这里我们首先定义一个统一接口ICacheUpdate,只有一个updat...原创 2019-07-13 14:46:23 · 266 阅读 · 0 评论 -
不要再问我Java程序是怎么执行的了!
什么是Java虚拟机?要弄明白Java程序的执行过程首先要了解一下Java虚拟机。虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运...原创 2019-07-16 11:41:06 · 270 阅读 · 0 评论