自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 “Go程序员面试笔试宝典”复习便签

map在扩容时会触发搬迁。一个bucket中的元素会分散到2个。这个过程不能保证元素的顺序。操作nil chanclosepanicpanic正常关闭读

2023-08-24 14:21:16 1008

原创 confluent-kafka-go依赖库编译体验优化

Go社区主流Kakfa客户端简要对比:https://tonybai.com/2022/03/28/the-comparison-of-the-go-community-leading-kakfa-clients/​ 在项目中使用了go的kafka库confluent-kafka-go,go run运行正常。因为开发环境是MacOS,部署环境是基于centos的docker镜像使用二进制运行,在使用。为了避免环境的影响以及本机安装依赖库的繁琐,选择了通过在docker镜像进行打包来规避。

2022-11-17 10:16:17 1570 3

原创 猿创征文|创作工具一览

​ 好的工具帮助我们在工作学习中事半功倍。创作,在程序员的工作生活中地位越来越突出,为我们提供帮助。选择好的创作工具可以帮助我们在创作的道路上走的更远,让学习受益匪浅。

2022-11-14 09:42:44 445

原创 猿创征文|工具为场景而生

​ 作为后端工程师,Shell和JS平时使用不多,基本属于现学现用,它们语法并不复杂,上手简单,开发的几个工具却大大改善了日常的效率,是一个性价比极高的事情。通过上面几个例子不难发现,工具在执行流程化、大批量操作时作用明显,我们在开发过程中遇到问题或者特定场景时,通过开发小工具改善工作效率也是一个很好的选择。

2022-11-10 10:30:59 357

原创 mysql如何修改为大小写不敏感?

我们有时会面临需要对mysql数据库设置为大小写不敏感,比较常见的例如:在Linux下,MySQL的表名区分大小写,而在Windows下是不区分,有时候在Linux上查询大写表名时就会出现找不到表的情况,比较常用的做法就是将Linux的Mysql设置为大小写不敏感。以下是操作步骤。

2022-11-02 09:21:30 4506

转载 阿里云冯诗淳:ACK容器服务生产及可观测体系的建设与实践

再者,密集的集群资源访问也可能打满APIServer带宽,API Server的请求延时,RT会升至高位,一次API的访问可能需要几十秒,这会严重影响用户业务,同时,API Server的只读请求数也会飙升。ACK集群中部署了冬奥的多个核心业务系统,包括冬奥的国际官网、比赛场馆、票务系统等,为多个核心系统保驾护航。比如,用户在大规模集群中频繁密集地访问集群资源,会使APIServer,API Server的Mutating请求量较高,负载过高会导致出现丢弃请求的情况,影响用户业务的发布或用户的变更。

2022-10-24 23:31:25 228 4

原创 go并发之context

会返回一个channel,当该context被取消的时候,该channel会被关闭,同时对应的使用该context的routine也应该结束并返回。函数的返回值是一个空的context,经常作为树的根结点,它一般由接收请求的第一个routine创建,不能被取消、没有值、也没有过期时间。中的方法是协程安全的,这也就代表了在父routine中创建的context,可以传递给任意数量的routine并让他们同时访问。1.一般函数使用 Context 的时候,会把这个参数放在第一个参数的位置。

2022-09-05 14:56:00 184

原创 centos安装mysql5.7(2022年更新)

提供远程访问时,首先mysql账号的Host需要开放IP访问。其次需要服务器的端口需要支持远程访问,需要通过防火墙设置。包括:安装步骤、账号登陆、添加账号、远程访问4个部分。注意此时mysql设置的密码校验是高要求的,需要设置为12位包含大小写、数字、符号才能通过。以下演示设置一个低校验的账号,限测试环境使用,在生产环境时请选择校验严格的方式。安装成功后启动mysql,mysql会创建一个root账号并分配一个初始密码。首次以root账号登陆后,需要修改root密码才能继续操作。解决办法:执行第一条命令。.

2022-08-04 15:21:13 1929

原创 kong网关熔断插件

kong网关熔断插件初体验

2022-07-29 09:02:41 802

原创 mysql面试复习题

针对mysql知识点整理的面试复习题,可以参考作为日常复习和面试准备。

2022-07-15 00:12:16 232

原创 ES快速上手

如果你像我开始一样好奇ElasticSearch究竟能干什么?那么文章可能适合你看看。本文对ElasticSearch做一个简介及快速上手,主要例子来源于官网。本文只需要你安装有docker、可发送curl请求即可操作。二话不说,先在本地通过docker搭建一个可访问的ElasticSearch服务(以下简称ES)docker安装ESdocker network create elasticdocker pull docker.elastic.co/elasticsearch/elasticsea

2022-04-28 23:28:58 2701

原创 读数据结构与算法之美(四)

4.散列表&哈希&树18 - 散列表(上):Word文档中的单词拼写检查功能是如何实现的?散列表:Hash Table,又称哈希表,或者hash表。散列表,用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,由数组演化而来。可以说,没有数组就没有散列表。关键字:键(key)、哈希函数、散列值(value)哈希函数的三个基本要求:1.散列值是一个非负正数2.key1==key2 则hash(key1)==hash(key2)3.key1!

2022-02-20 09:52:39 793

原创 读数据结构与算法之美(三)

11 - 排序(上):为什么插入排序比冒泡排序更受欢迎?章节 排序算法 时间复杂度 是否基于比较 11 冒泡、插入、选择 O(n²) 是 12 归并、快排 O(nlogn) 是 13 桶、计数、基数 O(n) 否 如何分析一个排序算法?1.排序算法的执行效率最好、最坏、平均情况时间复杂度时间复杂度的系数、常数、低阶比较次数和交换次数2.排序算法的内存消耗(是否原地排序)3.排序算法的稳定性(值

2022-02-19 09:39:19 607

原创 读数据结构与算法之美(二)

2.数组&链表&栈&队列&递归05 - 数组:为什么很多编程语言中数组都从0开始编号?如何实现随机访问?数组,是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。线性表:数组、链表、队列、栈非线性表:二叉树、堆、图数组和链表的区别?数组适合查找操作,查找时间复杂度并不为O(1)。即便是排好序的数组,你用二分查找,时间复杂度也是O(logn)。正确的表述是,数组支持随机访问,根据下标随机访问的时间复杂度是O(1)。低效的”

2022-02-06 09:29:07 1145

原创 读数据结构与算法之美(一)

1.开篇(指导手册&复杂度分析)《数据结构与算法之美》学习指导手册1.复杂度分析掌握程度:自行分析专栏中大部分的数据结构和算法的时间、空间复杂度2.数组、栈、队列掌握程度:能自己实现动态数组、栈、队列3.链表掌握程度:能轻松写出经典链表题目代码4.递归理论知识不多,主要是多练。简单:斐波那契数列、求阶乘;中等:归并排序、快速排序、二叉树的遍历、求高度;复杂:回溯八皇后、背包问题掌握程度:轻松写出二叉树遍历、八皇后、背包问题、DFS的递归代码5.

2022-02-05 10:03:18 1137

原创 typora快速上手

文章目录1.第一步:正文、标题2.第二步:换行请用shift + enter3.[TOC]生成目录入门成功typora被安利多年,一直没有找对使用它的方法,今天简单入门了一下,记录之。1.第一步:正文、标题普通正文就是command+ 0标题就是command+数值(数值越小标题越大。其实这些看快捷键都很好入门的)2.第二步:换行请用shift + enter这可能是我用了一个月typora才知道的“秘密”。我一度以为是行距的原因。原来在typora里。enter是换两行的enter是换两

2021-10-30 22:59:12 1650

原创 读设计模式之美(六)

31:让你最快速改善代码质量的20条编程规范(上)?接下来三节课,分别介绍编码规范的三个部分。命名与注释、代码风格、编程技巧。命名的好坏,对于代码的可读性来说非常重要,甚至可以说是起到了决定性的作用。命名能力也体现了一个程序员的基本编程素养。一:命名1:命名多长合适?不同作用域区分处理。小作用域,可以使用相对短的;大作用域,推荐长命名。命名的一个原则就是:以能准确达意为目标。学会换位思考,从阅读者的角度考量命名是否足够直观。2:利用上下文简化命名3:命名要可读、可搜索4:如何命名接口和抽

2021-10-19 11:46:04 1594

原创 读设计模式之美(五)

27:什么情况下要重构?为什么要重构?又该怎么重构?真正进行代码重构的人不多,而把持续重构作为开发的一部分的人,更是少之又少。1:重构的目的,为什么重构?重构是一种对软件内部结构的改善,目的是在不改变软件可见行为的情况下,使其更易理解,修改成本更低。为什么重构?1.重构是保证代码质量的一个极其有效的手段。2.优秀的代码都是迭代出来的。3.避免过度设计的有效手段。重构对一个工程师技术的成长也有重要的意义。2:重构的对象,到底重构什么?1.大型重构:系统、模块、代码结构、类与类之间的关系。对

2021-10-18 18:02:35 1503

原创 读设计模式之美(四)

23:针对业务系统的开发,如何做需求分析和设计?1:需求分析技术人也要有产品思维,对应产品设计、需求分析,我们要学会“借鉴”。2:系统设计合理的将功能划分到不同模块。设计模块之间的关系。设计模块的接口、数据库、业务模型24:如何实现一个遵从设计原则的积分兑换系统?1:为什么要分MVC三层开发?1:分层能起到代码复用的作用。2:分层能起到隔离变化的作用。3:分层能起到隔离关注点的作用。4:分层能提高代码的可测试性。5:分层能应对系统的复杂性。2:BO、VO、Entity存在的意义是

2021-10-17 22:25:17 1427

原创 读设计模式之美(三)

15:对于单一职责原则,如何判断某个类的职责是否单一?1:概念单一职责原则:A Class or module should have a single reponsibily。一个类或者模块只负责一个职责。不要设计大而全的类,要设计粒度小,功能单一的类。2:如何判断类的职责是否单一?不同应用场景,不同阶段的需求背景下,对同一个类的职责是否单一的判定,可能是不一样的。我们可以先实现一个粗粒度的类,然后在业务发展过程中拆分成细粒度的类。也就是所谓的持续重构。提供几条判断原则:1:类中的代码行数

2021-10-16 14:25:03 1528

原创 redis如何优雅删除大量的key?

当我们需要批量删除redis的key时,很多时候都是依赖redis的client加上linux的xargs来做。比较常见的像是,通过keys匹配数据,然后进行del。相应的删除语句就是:redis-cli -h 地址 -p 6379 -a 密码 keys "匹配内容" | xargs ./redis-cli -h 地址 -p 6379 -a 密码 del但是如果是在线上服务器里,假设是百万、千万个key里面去进行keys匹配,很明显会引起阻塞可能CPU使用率就会上升很快。如何在不影响线上环境使

2021-10-15 19:07:50 4069

原创 读设计模式之美(二)

11:业务开发常用的基于贫血模型的MVC架构违背了OOP吗?1:什么是充血模型?什么是贫血模型?充血模型:只包含数据,不包含业务逻辑的类。(重Service轻BO)贫血模型:数据和业务逻辑在同一个类中。(轻Service重BO)2:为什么基于贫血模型的传统开发模式违背了OOP?贫血模型将数据和操作分离,违背了封装的特性。3:基于贫血模型的的传统开发模式既然违反了OOP,为什么还如此流行?1:开发系统比较简单,贫血模型足以应付。2:充血模型更有难度。3:思维固化,转型有成本。4:什么情况下

2021-10-14 14:17:00 1513

原创 读《设计模式之美》一

04:当谈论面向对象的时候,我们到底在谈什么?面向对象有两个非常重要和基础的概念,就是类和对象。以类和对象作为组织代码的基本单元。四大特性:封装、继承、多态、抽象。面向对象分析和设计:最后的产出是类,围绕对象和类来展开分析和设计。05:封装、抽象、继承、多态分别可以解决哪些编程问题?1:封装也叫数据访问保护。仅开放有限的接口。需要“访问权限控制”的语法机制支持。类比于冰箱而言就是功能按钮不要弄太多。2:抽象隐藏方法的具体实现。通过函数来实现。人类处理复杂问题的通用有效手段。很多原则提

2021-10-12 22:58:32 1538

原创 读《设计模式之美》零

最近准备对设计模式做一个整体的学习,补上这一块的技能空缺,之前虽然阅读了些《代码整洁之道》,也收益不少,而代码质量一直是现阶段比较重视的一个技能,设计模式作为编码中绕不开的一个技能包,值得投入精力学习一下。这次学习的内容,是极客时间上比较受读者喜欢的王争老师的《设计模式之美》,现对学习内容做一个笔记归纳,方便学习过程中加强理解,也为了后期复习时可以快速回忆起学习过的内容。第一部分主要是对整个专栏内容做一个概览,可以根据需要选择性入坑。01:为什么要学设计模式?1:应对面试中的设计模式相关问题(基本功

2021-10-11 23:07:38 1622

原创 kafka mac安装

笔者是直接通过Homebrew安装。安装时间:2021-01-31kafka版本:2.7.0(自带zookeeper无需额外安装)step 1:安装brew install kafka 一步到位安装完毕,有提示启动命令。zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties & kafka-server-start /usr/local/etc/kafka/server.properties.

2021-01-31 11:27:45 1813

原创 三十

不知不觉就已经是八月的第一天。 先说上一篇日记里的问题的答案。之前思考了一下员工能力与在公司留时间长短的疑惑。问题的根本在于当前公司的成长,和你的成长是否匹配。如果你的成长跟不上公司的成长,那你可能就面临被淘汰,如果是你的成长很快,公司的业绩提供不了你升职的岗位或者匹配的位置,那你就可以跳槽了。至于说经常跳槽的人,反而表现出来像是能力更高于在某个公司留的长的人,实际两者关联不是那么大,主要还是在于个人是否在舒适区,是否有意提高自己的能力,如果能力提高了,在公司内部也是...

2020-08-01 17:38:44 1532

原创 一张图搞定三大经典排序

三大经典排序,冒泡、选择、插入,一图对比之。

2020-07-14 22:45:58 1641 2

原创 java算法之N阶楼梯的走法

1. 前言最近找工作笔试,碰到一个算法笔试题,现将其分析记录并拓展下。题目:楼梯总共N阶,小明可以一次可以跨1步,2步,3步,请用递归求出小明总共有多少种跨法走完这个楼梯。2. 回溯法我自己在笔试中用的这种方法,将设任意一个状态,三种情况我都尝试下,如果可以就继续沿着路径往下走,不行就回溯尝试的这一步。//到达一个状态时,都先尝试走下所有的分支可能,然后再依次回...

2018-08-27 23:06:19 5446

原创 String, StringBuilder, StringBuffer三兄弟的差别

1. 前言疑问:String,StringBuffer,StringBuilder三者的区别是什么?应用场景分别是什么呢?疑问:String为啥要定义为不可变的呢?它是如何实现的呢? 三者的继承关系如下:2. String2.1 为什么不可变比如我们有n个变量指向的是同样内容的字符串,String one = "someString";String two...

2018-08-24 08:23:59 1632

原创 Java线程池ThreadPoolExecutor原理详解

目录 前言线程池的作用简单实例参数与原理线程池的常用创建方式参考链接前言最近java面试,基本都会考察多线程的,多线程就一定要问线程池的,然而我却在同一个问题上栽跟头两次,也是醉醉的。在懊悔之余所以专门花了一个下午的时间把它详细总结整理了一遍,也以此告诫自己学东西切不可浮躁,要静心专研,打扎实基础。 问题:问:新建线程池有哪几个参数,具体含义是什么呢...

2018-08-21 08:21:56 1947

原创 Java算法之两个大整数相加

1. 前言今天做了一家公司的在线笔试题,其中有道算法蛮有意思的,在此记录并拓展下知识点,以备以后复习之用。题目: Java中两个大整数(超过了long的表示范围)相加,不能用java已用的工具类。2. 分析既然long都表示不下了,那就是String来记录了,将String类型转为char数组,然后两个数的个位,十位等对齐相加,最终结果再转为String类型。本题想考察的...

2018-08-19 22:00:08 5405

原创 docker下终端无法输入中文问题

最近项目切换到docker管理,数据库查询也改成进docker容器访问mysql。使用时先是发现中文乱码,这个首先想到就是常见的mysql设置编码问题。临时处理的话先是应急的 set nams utf8 ;这样查询就暂时ok了的。上面只是应急,因为每次访问都需要set一次。根治的话还是得改mysql的my.cnf了。对应docker里的位置就是/etc/mysql/my.cnf(这里可

2017-10-29 17:36:04 6059

原创 mysql连接查询(A表某字段 like B表字段)

假设有A、B两表A表中有个字段column_aaB表中有个字段column_bb如果需要查询出B表中字段column_bb like A表中column_aa字段的纪录,可以使用如下语句select A.* from A left join B on column_aa like concat("%",column_bb,"%")  ;

2015-07-10 06:12:59 8534

原创 jquery基础学习

1.first-child怎么用

2013-08-12 16:14:29 2486

转载 配置jdk(classpath又忘了./;)

(1)设置好path变量,使得我们能够在系统中的任何地方运行java应用程序,比如javac、java、javah等等,这就要找到我们安装JDK 的目录,比如我们的JDK安装在C:\jdk1.6.0目录下,那么在C:\jdk1.6.0\bin目录下就是我们常用的java应用程序,我们就需要 把C:\jdk1.6.0\bin这个目录加到path环境变量里面。 在系统变量里找到path变量,选择-

2013-07-04 01:07:05 2922

转载 redis常用命令

启动 Redis 服务src/redis-server或者src/redis-server redis.confsrc/redis-server redis.conf 1>log.log 2>errlog.log1为标准输出,2为错误输出将 Redis 作为 Linux 服务随机启动vi /etc/rc.local, 加入代码:/root/install/r

2013-07-03 11:44:02 3007

转载 tomcat配置记录访问ip日志

配置http访问日志。Tomcat自带的能够记录的http访问日志已经很详细了取消下面这段的注释:                          directory="logs"  prefix="localhost_access_log." suffix=".txt"                 pattern="common" resolveHosts="false

2013-07-01 14:39:20 5076

转载 IllegalArgumentException

java.lang.IllegalArgumentException: Document base D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\struts2-mailreader does not exist or is not a readable directory 1.该项目的War文件从***\

2013-01-04 14:25:35 3091

转载 好工作不如好身体

程序员(包括软件工程师、系统分析师、系统架构师、项目经理、售后服务等所有从事电脑程序开发的工作人员),作为一种职业,也存在着与之相关的一系列职业疾病。软件项目开发是一个以人为本的事情,工具和过程等都只能起到一定的边界作用,其中起关键作用的是人,所以每个人承受的压力是可想而知的。     程序员大多都是理科出身,相信本身的生物知识都不算匮乏,能够想象得到,到底哪些东西、哪些过程会对我们的

2012-11-23 17:58:12 2995

原创 mysql 语句

启动:net start mySql;  进入:mysql -u root -p/mysql -h localhost -u root -p databaseName;  列出数据库:show databases;  选择数据库:use databaseName;  列出表格:show tables;  显示表格列的属性:show columns from tableName;

2012-11-23 17:47:07 3001

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除