自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 资源 (2)
  • 收藏
  • 关注

原创 mac m1安装transformers时报错,tensorflow依赖无法安装

执行命令 python3 -m pip install tensorflow-macos。查询tensorflow的issue,发现已经解决了python3.9的安装问题。该错误可能与在带有 M1 芯片的 64 位 Mac 上工作有关。最后在stackoverflow上查找到该问题的解决方案。按照提示安装了几次tensorflow,始终安装不上。查询python版本,满足64位架构。

2023-05-04 17:35:10 379 1

原创 代理模式和策略模式的差别

策略模式的主要目的是将一组相关算法封装到一系列策略类中,使它们可以互相替换,并让客户端代码可以根据需要选择合适的策略。总结一下,代理模式关注的是如何在访问实际目标对象时添加额外功能,而策略模式关注的是如何在运行时动态地选择合适的算法或行为。代理模式主要解决的问题是关注点的分离,而策略模式主要解决的问题是算法和行为的可替换性和扩展性。代理模式的核心是替代和控制对原始对象的访问,而策略模式的核心是选择合适的算法或策略来解决问题。总结:从代码示例可以看出,代理模式和策略模式的关键差别在于它们的目的和应用场景。

2023-04-23 10:20:09 684

原创 MacOS 使用SwitchHosts修改 hosts 不生效的原因及解决方法

mac下默认不是root用户的文件修改,可能不会立刻起效。

2022-10-12 17:23:55 5472

原创 最近遇到几个小问题总结

这个配置的意思是设置cookie的域,只有以yto56.com.cn结尾的域名,才能共享cookie。子iframe一直没有获取到上层传递的cookie信息,导致需要重新登录。升级到https后,有些静态资源,好像无法访问了,找不到相应的静态资源。下面添加如下内容,可从 http 跳转到 https。https不允许同一页面中,出现http的请求。项目中涉及到iframe传递cookie信息的。的值为之前生成的 *.pfx文件,的值为生成.pfx文件时输入的密码,最后注意到项目里的一个配置。...

2022-08-30 20:42:04 565

翻译 Mac上搭建ELK

本篇翻译自此篇博客https://medium.com/@pablo_ezequiel/installing-elk-stack-on-osx-74b132ad1498https://links.jianshu.com/go?to=https%3A%2F%2Fmedium.com%2F%40pablo_ezequiel%2Finstalling-elk-stack-on-osx-74b132ad1498已经授权,你也可以参考https://blog.csdn.net/ywheel1989/artic

2022-05-23 14:56:49 754

原创 Sharding-JDBC分库分表学习笔记

什么是分库分表 分库分表就是为了解决由于数据量过大而导致数据库性能降低的问题,将原来独立的数据库拆分成若干数据库组成,将数据大表拆分成若干数据表组成,使得单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的。分库分表的方式...

2022-02-20 17:34:41 622 1

原创 多用户并发操作的解决方案,同步锁的具体实施方法

一:并发操作出现的原因原因:多个动作在一瞬间同时操作同一数据现象:多人在某一瞬间通过相同的方式操作同一条数据 多人在某一瞬间通过不同的方式操作同一条数据 在某一瞬间,同一动作,多次执行二:并发举例及解决办法针对上述的三种的情况,分别以实际情况进行举例。【多人在某一瞬间通过相同的方式操作同一条数据】1.某仓库系统有一品牌商品A,商品A在数据库中只允许存在一条记录,库存的数量是这条数据的一个字段,现有库存100件,在某一天到货了1000件。由于数量比较大,现在需要10名操作员去

2022-02-03 20:59:09 5739

原创 java API接口签名授权安全认证问题—基于HMAC的rest api鉴权处理

创建一个拦截器public class AkSkAuthInterceptor implements ClientHttpRequestInterceptor { private static final String HEADER_X_CONTENT_MD5 = "X-Content-MD5"; private static final String HEADER_X_VERSION = "X-Sign-Version"; private static final Stri

2022-01-26 18:18:34 2462

原创 Lombok对与Java-16不兼容的jdk.compiler‘s内部包的访问

只需将我的一个项目从Java8升级到17(使用这里的最新版本)。在编译使用lombok的项目时,例如:<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId></dependency>maven编译器报告如下异常:[ERROR] Failed to execute goal org.apache.m

2022-01-20 00:03:41 2286 1

原创 面试套路问题总结6

1.数据库为什么使用B+树而不是B树B树和B+树的区别B树和B+树的区别主要有两点:在B树中,你可以将键和值存放在内部节点和叶子节点,但在B+树中,内部节点都是键,没有值。叶子节点同时存放键和值 B+树的叶子节点有一条链相连,而B树的叶子节点各自独立。使用B+树的好处1.由于B+树的内部节点只存放键,不存放值,因此,一次读取,可以在内存页中获取更多的键,有利于更快地缩小查找范围。2.B+树的叶节点由一条链相连,因此,当需要进行一次全数据遍历的时候,B+树只需要使用O(logN)时

2022-01-04 15:45:57 111 1

原创 Django-链接数据库时遇到AttributeError: module ‘djongo.models‘ has no attribute ‘ListField‘

1.问题最开始查询看到说是要把djongo降到1.3.2版本。于是改成djongo==1.3.2改了以后又报新的错误了。django.core.exceptions.ImproperlyConfigured: 'django-pyodbc-azure' isn't an available database backend.Try using 'django.db.backends.XXX', where XXX is one of: 'mysql', 'oracle', 'po

2021-12-31 14:04:58 1395

原创 java8 CompletableFuture使用示例

/** * 并发请求接口 将数据整理到一起处理 */ @SuppressWarnings("unchecked") private void parallelReqBigData(SegmentUVArgs segmentUVArgs, Map<Integer, Tag> tagMap, AreaTag areaTag) { List<SegmentTagsReply> list = Collections.synchroni..

2021-12-20 17:25:03 588

原创 Retrofit2+Okhttp3网络请求

一、引入依赖 <dependency> <groupId>com.squareup.retrofit2</groupId> <artifactId>retrofit</artifactId> <version>2.0.0-beta4</version> </dependency> <

2021-11-28 16:22:36 529

原创 验证码生成 EasyCaptcha

验证码生成 EasyCaptchaJavaWeb图形验证码,支持gif验证码,可用于基于的session的web项目和前后端分离的项目。源码地址:https://gitee.com/jeesys/EasyCaptcha/一、引入依赖引入EasyCaptcha<dependency> <groupId>com.github.whvcse</groupId> <artifactId>easy-captcha</artifac.

2021-11-15 13:33:10 1204

原创 SpringAOP+注解实现简单的日志管理

一、写一个自定义注解注解中包括配置方法所在模块名称,以及功能名称,当然我们在注解里可以自定义。@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD,ElementType.PARAMETER})public @interface LogInfoAnnotation { //模块名 String moduleName(); //操作内容 String desc();}二、建切面类.

2021-11-12 11:38:02 767

原创 Spring Cloud Gateway(读取、修改 Request Body)

Spring Cloud Gateway(以下简称 SCG)做为网关服务,是其他各服务对外中转站,通过 SCG 进行请求转发。在请求到达真正的微服务之前,我们可以在这里做一些预处理,比如:来源合法性检测,权限校验,反爬虫之类…之前是在各个微服务的拦截器里对来解密验证的,现在既然有了网关,自然而然想把这一步骤放到网关层来统一解决如果是使用普通的 Web 编程中(比如用 Zuul),这本就是一个 pre filter 的事儿,把之前 Interceptor 中代码搬过来稍微改改就 ..

2021-11-02 15:25:40 2476

原创 Django项目连接MongoDB的三种方法

有三种方法连接Django到MongoDB数据库1.PyMongo:PyMongo 是 MongoDB 与 Django 交互的标准驱动程序。这是在 Python 中使用 MongoDB 的官方和首选方式。 PyMongo 提供了执行所有数据库操作的功能,例如搜索、删除、更新和插入。由于 PyMongo 可与 PyPI 一起使用,您可以使用 pip 命令快速安装它。2....

2021-09-24 23:15:36 10579 2

原创 mysql varchar能不能超过255个字节及产生的问题。

项目里突然varchar字段设置255也不够用了,记得规定不能超过255,今天查了一下,现总结如下:MySQL要求一个行定义长度不能超过 65535 bytes(所有字符串类型字段包括其字段名称占用空间都计算在内, text、blob等大字段类型除外)。所有如果一个表有很多varchar字段的时候,不应该把varchar设置的特别大,会影响后面的字段InnoDB存储引擎的表索引的前缀长度最长是767字节(bytes)(前缀长度适用于mysql5.6及以前,后续版本有变化)你如果需要建索引,就

2021-08-23 10:23:27 12940 4

原创 单表几百万数据怎么在线修改表结构?

项目背景 项目中因为我们产品设计的时候只要用户打开app,就根据用户设备号自动生成一个账号存储在表里,所以短期内我们项目的用户表就达到了几百万的数据量,并且随着项目的运行,每年在几百万的数据量增加。这是修改字段的数据类型这种操作,就变的很麻烦起来,目前主要有三种操作方式:方式一:使用mysql5.6+提供的在线修改功能 所谓的mysql自己提供的功能也就是mysql自己原生的语句,例如我们要修改原字段名称及类型。 mysql> ALTER TABLE table_name CHAN..

2021-08-16 15:36:01 697

原创 ‘The client noticed that the server is not a supported distribution of Elasticsearch‘ 报错及解决办法

django项目运行的好好的,突然接口查询错误。观察报错信息{ "code": 400102, "message": "请求错误", "data": { "detail": "The client noticed that the server is not a supported distribution of Elasticsearch" }}搜索百度无果,随搜索谷歌查询到新闻链接链接如下:https://www.there

2021-08-11 13:16:49 6285

原创 ThreadLocal存List遇到的坑

背景项目有个需求,存储一个类成员变量。供类中的各个方法使用,是在easyexcel 中最一开始没有注意到service是单例模式的,所以每回存取requiredColIndexs的需要验证的列索引有可能是上一个模版的。后来加了threadlocal后,发现还是有异常。@Slf4jpublic class TemplateExcelListener extends AnalysisEventListener<Map<Integer, String>> {

2021-07-31 22:34:45 1728

转载 责任链模式学习总结

责任链模式顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。如何解决:拦截的类都实现统一接口。实现我们创建抽象类AbstractLogger,带有详细的日志记录级别。然后我们创建三种类型的记录器,.

2021-07-24 16:49:16 78

原创 记录select for update mysql 死锁问题

背景项目要求某表单个列自增,但是where条件,并不是这个列所有的值都符合自增想用select for update mysql 锁表后,查询最大值自增,后发现有死锁问题,先记录一下。实例以下代码在可重复读隔离级别下执行,表中原来只有1~10的rank。假如A、B两个事务同时试图插入rank为21和22的rank;@Transactional public void createBannerDeadlock(Banner banner) { banner.r

2021-07-22 18:05:03 4281 2

原创 抽象工厂和建造者模式实现rpc调用小框架

public interface SdkClient { <T> SdkResponse<T> execute(SdkRequest<T> request);}创建jie

2021-06-10 16:26:48 213 1

原创 读spring-cloud-netflix-eureka-server项目源码笔记

InstanceRegistry实体注册类中实现springevent事件private void publishEvent(ApplicationEvent applicationEvent) { this.ctxt.publishEvent(applicationEvent); }写一个发布事件方法,让所有的事件都传递给一个父类ApplicationEvent 从而发布事件统一了事件发布代码的编写风格。...

2021-05-11 16:49:02 89

原创 多节点服务器定时任务重复处理的几种方案

1.使用zookeeper做分布式锁@Componentpublic class MutexConfig { @Value(value = "${zookeeper.host}") private String zkHost; public Boolean getLock(String lock, Integer acquireTime, Integer sleepTime) throws Exception { RetryPolicy retryPolicy = new Expone

2021-05-07 18:16:45 1820

原创 rocketmq学习总结

rocketmq发送同步消息2.异步消息3.发送单向消息消费消息负载均衡顺序消息同一个业务的消息 发送到同一个队列当中去就可以了同一个订单id对应的消息 发送到同一个队列当中去消息的长度大于4mb时,最好把消息进行分割sql过滤事务消息事务消息生产者总结:mq的作用1.结耦2.流量的削峰3.数据的分发集群的搭建双主双从监控:1 mqadmin管理工具2.集群的监...

2021-04-18 14:02:07 142

原创 将excel导入转化为json格式数据

运用gson将每个表格第一行作为列名public static JsonObject getExcelDataAsJsonObject(File excelFile) { JsonObject sheetsJsonObject = new JsonObject(); Workbook workbook = null; try { workbook = new XSSFWorkbook(excelFile); } catch (InvalidForma

2021-04-16 17:59:14 558

原创 SpringCloudGateway自定义Predict—实现根据不同域名切换不同鉴权方式

背景项目相同的接口想同时提供给外部和内部调用,因为外部调用采用的是签名校验,内部调用采用的是token校验,因为签名校验可以有效起到防止用户多次调用同一个接口的作用,想同一个url,只是域名不同,起到不同的鉴权方式考虑在网管层实现这一功能。Spring Cloud Gateway自带的一些断言参数列表项目中有用到path - id: openapi order: 2 uri: ${domain.openapi}

2021-04-16 17:46:04 994 1

原创 Docker 容器的学习笔记

Docker 容器使用容器使用获取镜像如果我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入 ubuntu 镜像:docker pull ubuntu启动容器以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:$ docker run -it ubuntu /bin/bash参数说明:-i: 交互式操作。 -t: 终端。 ubuntu: ubuntu 镜像。 /bin/bash:放在镜像名后的是命令,

2021-03-31 14:06:02 63

原创 监控神器-普罗米修斯Prometheus的学习总结

Prometheus架构:Prometheus 中文名称为普罗米修斯,受启发于Google的Brogmon监控系统,从2012年开始由前Google工程师在Soundcloud以开源软件的形式进行研发,2016年6月发布1.0版本。Prometheus 可以看作是 Google 内部监控系统 Borgmon 的一个实现prometheus是一个用Go编写的时序数据库,可以支持多种语言客户端,架构如下:Prometheus监控模式目前,监控系统采集指标有两种方式,一种是『推』,另一种就是『

2021-03-30 13:26:55 2428

原创 Kibana 日志查询语法

2 Lucene 语法查询2.1 简易查询若是查询的时候没有明确查询的字段,会默认为_all字段,也就是全文查询。也能够指定一个字段,又称为field来查询。ja# 全文查询 ExceptionException# 指定查询字段 message 里的 Exceptionmessage: Exception# 查询短语message: "java.lang.NullPointerException" # 任何 message 字段都包含 Exception message\...

2021-03-29 17:49:47 902

原创 m1芯片的macbook使用问题总结

1.protobuf 语言编译问题protobuf 语言编译的时候会报错,控制台打印错误日志如下[ERROR] Failed to execute goal org.xolstice.maven.plugins:protobuf-maven-plugin:0.6.1:compile (default-cli) on project grpc: Unable to resolve artifact: Missing:[ERROR] ----------[ERROR] 1) com.googl

2021-03-29 15:48:31 3170

转载 mongdb学习总结

1.MongoDB主键:使用ObjectId()设置_id字段在MongoDB中,_id字段是集合的主键,以便可以在集合中唯一地标识每个文档。_id字段包含唯一的ObjectID值。默认情况下,在集合中插入文档时,如果您没有在字段名称中添加带有_id的字段名称,则MongoDB将自动添加一个Object id字段,下图所示当查询集合中的文档时,可以看到该集合中每个文档的ObjectId。如果要确保在创建集合时MongoDB不会创建_id字段,并且要指定自己的ID作为集合的_id,则需要在

2021-03-23 14:23:38 248

原创 mysql锁和事务的实现原理1

MySQL中的Redo log Undo log都在干啥1 undo1.1 undo是啥undo日志用于存放数据修改被修改前的值,假设修改 tba 表中 id=2的行数据,把Name='B' 修改为Name = 'B2' ,那么undo日志就会用来存放Name='B'的记录,如果这个修改出现异常,可以使用undo日志来实现回滚操作,保证事务的一致性。对数据的变更操作,主要来自 INSERT UPDATE DELETE,而UNDO LOG中分为两种类型,一种是 INSERT_UN...

2021-03-23 14:13:30 87

原创 JSON Web Token 入门教程(jwt)

一、跨域认证的问题互联网服务离不开用户认证。一般流程是下面这样1、用户向服务器发送用户名和密码。2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。3、服务器向用户返回一个 session_id,写入用户的 Cookie。4、用户随后的每一次请求,都会通过 Cookie,将 session_id 传回服务器。5、服务器收到 session_id,找到前期保存的数据,由此得知用户的身份。这种模式的问题在于,扩展性(scaling)不好。单机当然

2021-03-18 11:01:44 130

原创 抽象类和接口的区别

1.语法层面上的区别  1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;  2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;  3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;  4)一个类只能继承一个抽象类,而一个类却可以实现多个接口。2.设计层面上的区别 1)抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象

2021-03-16 18:29:25 1446

原创 面试套路问题总结5

1.elasticsearch的问题1.为什么要使用Elasticsearch?  因为在我们商城中的数据,将来会非常多,所以采用以往的模糊查询,模糊查询前置配置,会放弃索引,导致商品查询是全表扫面,在百万级别的数据库中,效率非常低下,而我们使用ES做一个全文索引,我们将经常查询的商品的某些字段,比如说商品名,描述、价格还有id这些字段我们放入我们索引库里,可以提高查询速度。2.elasticsearch 的倒排索引是什么传统的我们的检索是通过文章,逐个遍历找到对应关键词的位置。而倒排索引,

2021-02-26 21:18:37 244

原创 面试套路问题总结4

1.理解synchronized底层原理synchronized有两种形式上锁,一个是对方法上锁,一个是构造同步代码块。他们的底层实现其实都一样,在进入同步代码之前先获取锁,获取到锁之后锁的计数器+1,同步代码执行完锁的计数器-1,如果获取失败就阻塞式等待锁的释放。只是他们在同步块识别方式上有所不一样,从class字节码文件可以表现出来,一个是通过方法flags标志,一个是monitorenter和monitorexit指令操作。1.1 同步方法首先来看在方法上上锁,我们就新定义一个同步方法然后

2021-02-06 10:32:46 247

原创 Mac下配置alias,zsh终端命令别名 出错解决记录

在~/.zshrc中配置abrew='/opt/homebrew/bin/brew' # ARM Homebrewibrew='arch -x86_64 /usr/local/bin/brew' # X86 Homebrew然后source ~/.zshrc 命令发现并不起效。后来对比其他博客发现,这是细小问题。改为alias go-work="cd ~/Document/work"双引号,在执行source ~/.zshrc 命令好了。...

2021-02-02 19:03:55 622

黑暗中的大脑:神经模拟学习和推理的设计原则

迈赫兰·H·巴扎尔加尼*1西蒙·乌巴斯*2卡尔·弗里斯顿3 值得注意的是,尽管大脑位于我们头⻣中纯粹的黑暗中, 但它仍然能够理解和分析世界在那里,规划看不⻅的未 来,甚至做出可能影响和改变世界的决定。几十年来,人 们普遍认为大脑是一台预测机器,不断推断其感官输入背 后隐藏的原因。

2023-07-26

Advanced_Calculus_Woods

费马推荐的高等数学书

2016-03-12

数字量输入输出模块7000_dio

数字量输入输出模块 7000系列 dio可以控制数字量的输入输出 rs485控制

2015-10-21

空空如也

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

TA关注的人

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