自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

csucoderlee的专栏

你不必是专家,也可以分享知识,初学者也能帮助初学者

  • 博客(210)
  • 资源 (21)
  • 收藏
  • 关注

原创 用sql教你什么是mysql的四种隔离级别

事务的基本要素A 原子性、C 一致性、I 隔离性、D 持久性。事务并发产生的问题脏读,不可重复读幻读mysql事务隔离级别读未提交 read-uncommitted读已提交 RC read-committed可重复读 RR repeatable-read (mysql默认的隔离级别为 RR)串行化 serializable读未提交事务A读取到了事务B未提交的数据。首先,在开启两个query的窗口,都执行下面的两行sql-- 先执行下,可以看到mysq

2020-09-18 00:04:54 1906 2

原创 自旋锁以及Java中的自旋锁的实现

什么是自旋锁多线程中,对共享资源进行访问,为了防止并发引起的相关问题,通常都是引入锁的机制来处理并发问题。获取到资源的线程A对这个资源加锁,其他线程比如B要访问这个资源首先要获得锁,而此时A持有这个资源的锁,只有等待线程A逻辑执行完,释放锁,这个时候B才能获取到资源的锁进而获取到该资源。这个过程中,A一直持有着资源的锁,那么没有获取到锁的其他线程比如B怎么办?通常就会有两种方式:1...

2018-08-07 00:45:18 21382 3

原创 MySQL 5.7升级8.0空间索引不生效

- 修改字段的 SRID。

2024-07-04 11:00:42 107

原创 mysql5.7升级到mysql8.0遇坑

mysql5.7升级到mysql8.0发现生产环境服务会报错Error querying database. Cause: java.sql.SQLSyntaxErrorException: FUNCTION GeomFromText does not exist在MySQL 8.0中,`GeomFromText`函数已经被弃用,取而代之的是`ST_GeomFromText`函数。你可以将你的查询从`GeomFromText`更新为`ST_GeomFromText`。这是因为MySQL 8.0引入

2024-06-20 12:54:23 254

原创 添加webpack.config.js配置

所以,在前面的博客中,我们初始化了一个空的项目,当执行webpack打包时,需要先手动在src目录下创建一个index.js文件,这样在执行npm run build后,在dist的目录下生成了一个main.js文件,这个也验证了上面零配置打包规则的第1点和第2点。上述配置,指定了入口文件,同时指定了dist文件夹下输出的文件名为bundle.js,执行npm run build,会看到在dist文件下多了一个bundle.js文件。

2024-05-20 13:00:30 358

原创 使用npm script运行webpack

Npm Script 还有一个重要的功能是能运行安装到项目目录里的 node_modules 里的可执行模块,比如之前安装了webpack,是无法直接在项目根目录下通过命令 webpack 去执行 Webpack 构建的,直接执行webpack命令会报错 command not found: webpack。可以向 npm 脚本传递参数,这些参数可以通过 `--` 分隔符传递给脚本,比如 npm run test -- --verbose,这将向test脚本传递 --verbose参数。

2024-05-07 11:30:39 434 2

原创 初始化创建一个webpack项目

执行npm install webpack webpack-cli --save-dev,安装webpack和webpack-cli。git的变更里,package.json中可以看到新增了两个依赖项目,安装了webpack和webpack-cli。git变更里,新增了一个package.json的文件,初始化了一个空的npm项目,将这个改动提交commit。安装后的webpack,实际上是放到了node_module下,可以执行以下命令来验证webpack的版本。执行nvm use 19.2.0。

2024-05-05 12:23:53 417

原创 使用nvm管理node版本

那我应该是用brew install node执行安装的,可以使用brew info node来查看node是否有安装过,显示如下有一行Installed说明,node是使用brew install安装的,版本是19.2.0,跟我上面执行node -v输出的版本是一致的,那这样就好办了,直接执行brew uninstall。npm:是 node.js 默认的包管理系统(用 JavaScript 编写的),在安装的 node 的时候,npm 也会跟着一起安装,管理 node 中的第三方插件。

2024-05-05 00:21:20 732

原创 mysql使用st_distance_sphere函数报错Incorrect arguments to st_distance_sphere

st_distance_sphere函数报错

2023-09-01 09:45:10 1443

原创 浅谈Java中的观察者模式

如果要自己编码实现,我们通常定义一个主题接口(Subject)和一个观察者接口(Observer)。主题接口中包含注册观察者、移除观察者和通知观察者的方法,而观察者接口中则定义了更新状态的方法。考虑到实现简单点,我们假定有一个广播类,这个广播类实际上就是一个主题Subject,有多个听众收听这个广播,这里每个听众就是一个观察者Observer。观察者模式是软件开发中常用的一种设计模式,它通过定义一对多的依赖关系,使得一个对象(主题)的状态变化可以通知多个其他对象(观察者)。写一个测试类来测试结果。

2023-08-24 13:14:32 718

原创 win11系统激活修复

激活问题

2023-07-20 23:46:24 384

原创 macbook golang版本升级

如何查看mac上是通过pkg安装包安装的go语言,还是通过brew install go安装的go语言。不同的安装方式,升级go语言版本方式会有不同。

2023-07-19 22:59:05 6590

原创 OpenStreetMap实战-准备postgresql

个人推荐,下载Postgres.app的方式,这样后续不需要了,直接在应用程序中,将这个Postgres.app删除掉即可。打开Postgres的应用程序,默认是创建了一个postgres的数据库,双击这个数据会出现命令行。而后我们进入到这个osm的数据命令行中,执行创建拓展的命令。下载后,直接双击dmg文件,将app拖入到应用程序中即可。我是macos的系统,点击macos链接,进入下载页。在命令行中创建一个名为osm的数据库。下载postgresql。

2023-05-25 11:05:51 156

原创 OpenStreetMap初探与实战

OpenStreetMap(OSM)是一个由志愿者创建并维护的免费和开源的地图数据库。其目的是为全球任何人提供可自由使用、编辑和分发的地图数据。OpenStreetMap数据库中的地理要素包括道路、建筑、河流、森林、山脉、公共设施等。由于OpenStreetMap是开放的平台,任何人都可以添加新的地理信息,从而使其不断发展和更新。OpenStreetMap已经成为诸如Google地图等商业地图的一个重要替代品。

2023-05-24 22:40:22 4007

原创 brew install 报错

brew install 报错

2022-10-20 16:53:34 277

原创 macbook 安装多个版本的php,安装低版本php

macbook 安装多个版本的php,安装低版本php

2022-05-28 22:36:06 761 1

原创 macbook brew install 经常遇见 No such file or directory @ rb_sysopen

安装php : brew install php ,在执行过程中经常报错,比如以下==> Installing php dependency: openldap==> Pouring openldap-2.5.8.arm64_monterey.bottle.tar.gzError: No such file or directory @ rb_sysopen - /Users/li.xiang/Library/Caches/Homebrew/downloads/93f5617b379ba

2022-05-15 21:52:47 4748 2

原创 使用Semaphore 实现一个简单的限流器

# 使用Semaphore 实现一个简单的限流器## java apiJava的api中,提供了semaphore这个线程同步的辅助类,用来控制同时访问共享资源的线程数量。Semaphore提供的主要方法如下:void acquire():获取一个信号量,在获得信号量前线程会一直阻塞。void release():释放一个信号量。int availablePermits(): 返回当前可用的信号量数。boolean hasQueuedThreads(): 查询是否有等待获取信号量

2021-10-27 23:01:39 231

转载 springboot mock controller和log4j 单元测试实践1

本文重点将讲述如何在单元测试中,mock controller的请求,测试controller请求,同时顺带着讲解如何在单测中测试代码日志中输出的内容。首先,新建spring boot的项目![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/950a825fe2cd4e05aa757d323551cbd7~tplv-k3u1fbpfcp-watermark.image?)![image.png](https://p3-j

2021-10-26 12:19:52 606 1

原创 macos 安装rust

官方建议使用rustup来安装,rustup可以方便的在不同的rust版本之间切换brew install rustup使用rustup安装Rust编译器(rustc)和Rust包管理器(cargo)rustup-init安装完成后,会提示如下关闭shell窗口重新打开,或者直接当前shell下执行下面语句,即可生效source $HOME/.cargo/env...

2021-08-30 20:15:18 372

原创 推送同一份代码到两个不同的仓库

想把同一份代码推送到两个不同的仓库,比如推送到github和gitee。有一份代码放在了github上,也想把这份代码同时推送到gitee上。有两种方式:一种方式gitremote add gitee git@gitee.com:csucoderlee/leetcode.git在推送代码的时候,再额外git push gitee xxxxx 就可以了。这么搞,其实比较麻烦,每次提交的时候都需要push两次git push origin xxxxx / git push ...

2021-07-18 21:01:57 1249

原创 spring-data-jpa报错,‘hibernate_sequence‘ doesn‘t exist

学习spring-data-jpa的时候,写了一个entityimport javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType

2021-05-25 23:45:55 2601 1

原创 windows 使用docker安装elasticsearch报错

2021-05-11 20:10:44 154

原创 修改git提交历史中的作者信息

新建了一个仓库,提交了修改并push,发现提交历史的作者信息使用的是全局的配置,即~/.gitconfig中[user]的信息。想只要针对这个仓库配置另外的作者信息,到这个仓库下vi .git/config,编辑了额外的[user]信息,这样这个仓库下的每次提交都会使用当前仓库的配置。但是,之前已经使用全局的配置提交了一次,所以想要修改历史这次提交的作者信息。执行git rebase -i HEAD~1返回fatal: invalid upstream 'HEAD~1'原

2021-05-05 23:07:12 1362

原创 org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder 找不到依赖包

org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder 找不到依赖包,发现高版本的spring boot已经移除了这个类需要改成以下这个org.springframework.boot.jdbc.DataSourceBuilder经验证spring-boot-starter-parent 2.4.5 可用...

2021-05-05 20:52:24 4868

原创 idea git is not installed

早上来了公司,发现windows下idea点击右键,查看annotate,也就是代码的提交记录,发现idea报错git is not installed找了半天原因也没有找到翻了下idea的官方文档https://www.jetbrains.com/help/idea/settings-version-control-git.html需要指定下执行的path,如下图...

2020-11-26 09:28:26 21594 7

原创 LocalCache客户端缓存本地缓存的实现

LocalCache,也被称为客户端缓存或者本地缓存。某些业务场景上,并不需要搭建一套复杂的分布式缓存如redis,只需要在单机上维护一套缓存配置即可。可以自己设计实现一个本地的缓存服务。设计实现一个本地缓存服务,主要考虑一下三点:1. 数据结构。选用的数据结构是什么,查找效率如何,一般都会选用hashmap的方式来存储数据2. 缓存失效策略。缓存失效了怎么办?是通过定时删除失效的数据,还是当访问某个数据,发现该数据到了过期时间,此时,来删除这个数据。3. 缓存淘汰策略。缓存写满了怎

2020-10-15 16:44:49 933

原创 程序员mac开发环境配置

拿了一台新的macbook pro。作为一个程序员,我把自己的开发环境给贴出来。1.输入法先把苹果的系统自带的中文输入法,换成自己习惯的搜狗输入法。2. 略3. jdk 7u71直接下载dmg文件安装4. git在terminal中,直接输入git --version,就会提示当前没有安装,确认一键安装么,直接点击确定。详细的一些git配置 在这个下面https://blog.csdn.net/u010372981/article/category/3134095..

2020-10-15 14:30:28 1498

原创 通过idea测试JVM内存回收

首先,写段psvm的代码public class Test { public static void main(String[] args) { }}执行下,这样在idea中就会出现 edit configurations选项点击进入编辑,主要修改的是VM options选项修改的内容如下-Xms20M-Xmx20M-Xmn10M-XX:+PrintGCDetails-XX:SurvivorRatio=8然后运行该main函数,就会打印如下

2020-09-15 17:13:13 471

原创 二叉树只看这一篇就够了,前/中/后序遍历(递归与非递归)

二叉树的遍历,分为前序遍历、中序遍历、后序遍历。其中注意两点:1. 前序,中序,后序遍历,这个"序"指的就是根2. 左子树优先于右子树拿前序遍历举例:前序遍历,这个"序"指的就是根。首先根要先遍历出来,然后是左子树,最后是右子树。左子树有自己的下级子树,所以也就按照根+左子树+右子树的套路来排列。右子树也是如此。下面代码注释中,构造了一个简单的二叉树,首先 6 -> 左子树(3/4/5)-> 右子树(7/8/9) ,左子树(5/4/3)也是按照套路来排列,即5 -&...

2020-09-04 22:06:34 304

原创 kafka之协调服务

kafka中是使用zookeeper来构建集群的。zookeeper相信大家都了解过,如果之前没接触过zookeeper的同学,可以参考学习下zookeeper的相关内容。知道zookeeper最核心的功能就是提供了一个分布式的存储系统,数据存储方式类似UNIX系统的文件树形结构。zookeeper保证了数据一致性。学习zookeeper,我觉得zookeeper中最主要的是抓住两个特性:临时节点和watcher机制。什么是临时节点?在zookeeper文件树形存储结构中,每个节点被称为ZN

2020-08-12 22:19:30 326

原创 kafka之消费

消费者客户端使用kafkaconsumer向broker订阅topic,接收消息进行消费。kafka中消息的消费,要知晓两个紧密相关的概念:消费者consumer和消费者组consumer group。消费者和消费者组每个consumer的实例只属于某一个consumer group。对于每个consumer group,在任意时刻,每个分区partition至多有一个consume实例在消费,反过来,consumer group中的每个consumer独占一个或多个partition分区。

2020-08-04 23:22:50 371

原创 kafka是如何实现高性能IO

kafka在众多消息队列中,性能肯定是第一梯队的,有着很高的吞吐量,每秒钟可以达到500M以上的吞吐量。而kafka能够做到这么高的吞吐量,离不开高性能的IO,kafka是从以下几个方面来提升高性能IO的。批处理从生产者发送到消费者消费,整个过程中,kafka都进行了批处理的操作。生产者发送一条消息,无论是同步还是异步发送的,kafka都不会立马把这条消息发送出去,而是先放到内存中,将多个单条消息组成一个批消息,发到broker端。到了broker端,这一个批消息并不会被拆解开,而是仍旧作

2020-08-02 23:04:22 540

原创 kafka是如何实现高可用的

HA,也就是高可用,kafka 0.8版本之前是没有HA的,如果一个broker挂了,那么这个分区也就是挂了,分区内的消息都没办法继续被消费。kafka 0.8版本之后引入了副本机制(replicas)。副本机制也是分布式系统中的常用的机制。副本机制:1. 提供了数据冗余,一旦分布式系统某部分出现问题,系统依然能够正常运转,保证了整体的可用性和数据的持久性。2. 提供伸缩性,可以动态的横向扩展,增加系统的吞吐能力3. 针对跨机房跨地域,可以选择就近的备份数据,降低系统的时延kaf

2020-08-01 22:51:45 1411

原创 kafka的一些术语

kafka是基于发布与订阅模型的分布式消息引擎。什么是发布与订阅(引用维基百科)在软件架构中,发布-订阅是一种消息范式,消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者)。而是将发布的消息分为不同的类别,无需了解哪些订阅者(如果有的话)可能存在。同样的,订阅者可以表达对一个或多个类别的兴趣,只接收感兴趣的消息,无需了解哪些发布者(如果有的话)存在。简单的来说,消息的生产者只需要通过发布,将消息分类发送到不同的地方,消息的消费者订阅指定的分类,消费其中的消息。主题就是

2020-08-01 15:18:48 250

原创 如何设计实现幂等框架

1.定义幂等:就是对于同一个接口,同一个业务请求,无论发起多少次,保证业务只执行一次,也就是接口的逻辑只会被执行一次。2.使用场景场景:微服务A中调用微服务B中的接口,会有三种结果出现,即成功、失败、超时。成功和失败两种结果非常明确,如果是成功,那么表示此次调用是正常的。如果是失败,那么表示此次调用是失败的,可以由调用的发起方来根据失败的结果决定接下来要做的事情。但是超时就是一个非常不明确的事情了, 有可能是微服务B中的逻辑已经成功执行完成,但是返回成功的结果的网络传输过程中产生了超时;

2020-07-26 23:46:56 466

原创 mysql为什么不建议使用订单号或者其他形式的业务单号作为主键?

mysql为什么不建议使用订单号或者其他形式的业务单号作为主键?目前我们电商平台的订单号,或者其他业务单号,为了保证唯一,多数都选择的是雪花算法snowflake或者其他变种来生成的。生成分布式电商业务唯一id的实现,可以参考:https://tech.meituan.com/2017/04/21/mt-leaf.html美团点评的这篇博客,这篇博客基本涵盖了目前所有的方式方法。但是...

2019-11-16 22:09:52 2323 2

原创 kafka书籍推荐

最近在看消息中间件的内容,自然不能避开kafka这门比较火的消息中间件,哦,当然,平时大家都习惯将消息中间件,说成是消息队列。学习一门新的技术,当然是翻看下官方文档,看看入门系列,至于如果要深入的话,建议可以看看书籍,目前为止可以看的书籍如下。第一本,我推荐《深入理解Kafka:核心设计与实践原理》作者:朱忠华推荐理由,这本书目前是我接触到最新出版的一本书。但是属于进阶系列的。...

2019-09-27 00:16:06 12243 2

原创 Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context

单元测试跑不起来Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles]新建的项目使用了testng,但是还引入了junit的依赖,在单元测试中@Test注解,引入的是org.junit.Test;而...

2019-05-14 20:27:40 8436 3

原创 springboot启动出现Access to DialectResolutionInfo cannot be null when ‘hibernate.dialect‘ not set

今天遇见了一个奇怪的问题,springboot2.0版本启动报这个错Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set。spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=j...

2019-05-05 22:51:13 45455 21

hystrix公司内部分享ppt

在公司内部做的一次分享,生产环境使用hystrix来进行调用dubbo服务的超时、熔断、重试、限流的Netflix框架

2018-03-21

最新官方Go语言Windows 64位操作系统安装包

资源现在不可以免费给别人了么,没看到设置0分的地方,如果你没有分,可以加我qq我免费传给你

2017-08-20

mysql必知必会

mysql必须会的内容

2017-07-10

领域驱动设计:软件核心复杂性应对之道

领域驱动开发,专门应对复杂企业软件开发模式下的领域设计

2017-06-29

git for windows 32bit

git for windows 32bit

2016-12-20

git for windows 64bit

git for windows 64bit

2016-12-20

numpy 1.8 for win7 64bit

win7 64bit已经安装了python2.7.9,打开这个numpy的安装文件,一直下一步,过程中会自动找到你的python路径,亲测可用

2015-06-02

apache服务器

apache服务器,类似于tomcat直接将zip解压就可以了,用来做zendstudio的服务器配置

2015-05-05

生物信息学算法与实践

生物信息学算法与实践

2015-05-01

J2EEAPI中文版

JSPAPI,javaweb开发API使用说明文档,如request、response都有哪些方法

2015-04-23

weka 3.6.2jre.exe安装包带word安装教程

weka 3.6.2jre.exe安装包带word安装教程 附带mysql连接jar包和weka软件的源代码

2015-04-06

zend studio11.0.2全过程破解文件

官网下载zend studio11.0.2安装,之后解压缩该资源,把里面的jar包复制替换到plugins目录下(多数的破解都是这样的),之后便可以打开软件,会提示你输入key,把压缩文件中的key值输入,即可完成破解,HELP-about zend studio-Expires on: Never,显示破解完成

2014-11-09

java1.6API.chm文件

javaAPI1.6 chm版本 比较jre官方说明 查看更方便

2014-10-19

汇编软件masm,win764位安装即可使用

亲测win7 64位安装即可使用 没有任何恶意软件插件

2014-09-04

中文版本的JavaTM Platform Standard Ed. 6API规范

JavaTM PlatformStandard Ed. 6 中文版本的API规范,查询和使用java的各种类。

2014-03-25

空空如也

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

TA关注的人

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