自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (1)
  • 收藏
  • 关注

原创 【Go Web】Go对接华为云obs代码

【代码】【Go Web】Go对接华为云obs代码。

2022-09-26 17:09:26 869 1

原创 【Go Web】文件传输系统-mulpart实现文件夹的传输

包设计文件存储系统的服务端和客户端。将上传的文件视为一个对象,客户端赋予它一个键,并上传到服务端。(2)命令行运行客户端,制定需要上传的文件夹及键值,键值为服务端接收文件夹下的子文件夹。1、客户端的处理函数。:需要传输的文件夹。:接收的文件夹目录。

2022-09-19 10:39:58 381

原创 【RbMQ】RabbitMQ概念辨析

RabbiMQ学习笔记,相关概念的辨析。

2022-09-11 20:39:08 1173

原创 【Go Web】Go原生实现数据流的传输

​ 当有较大的文件/大数据需要传输时,往往会采用数据流的形式发送请求。在Go中可以利用其原生的Web框架搭建数据流传送框架。对服务端进行的处理就是将请求体当成大的数据块,使用。分块地读取需要传送的文件(数据流),在。**那么可以利用这个特性,流库中有一个神奇的函数就是。中读取作为请求体传入。

2022-09-05 01:10:39 1077

原创 【Go并发】自旋锁及Go实现

在互斥地访问临界资源时,需要引入锁控制临界区,只有获取了锁的线程才能够对资源进行访问,同一时刻只能有一个线程获取到锁。那么没有获取到锁的线程应该怎么办?通常有两种处理方式:一种是没有获取到锁的线程就一直循环等待判断该资源是否已经释放锁,这种锁叫做**自旋锁**,它不用将线程阻塞起来(NON-BLOCKING);还有一种处理方式就是把自己阻塞起来,等待重新调度请求,这种叫做互斥锁。...

2022-08-28 12:33:19 730

原创 【Go并发】Go协程池

在实现协程池前需要明确任务是啥,这里模拟一个场景:将一个文件的文本转化为小写并输出到一个新的文件中。​

2022-08-22 01:51:17 444

转载 go-micro框架介绍

介绍go微服务框架go-micro

2022-08-15 00:31:50 6341 3

原创 【GORM】模型关系-HasMany关系

GORM hasMany关联

2022-08-08 09:38:54 508 1

原创 【GORM】存取数组/自定义类型数据

在`GORM`不支持数组类型、自定义类型变量的数据,可以通过`GROM`的自定义数据类型实现。

2022-07-30 18:59:38 6654 4

原创 【开发日志】Linux服务器配置Go Web环境

在Linux服务器搭建GoWeb环境,包括配置Go环境,配置Go安装,mysql的安装。

2022-07-24 21:19:11 515

原创 【GORM】模型关系-HasOne

`HasOne`与另外一个模型建立一对一的关联,这种关联表明一个模型的每个实例都包含或拥有另一个模型实例。

2022-07-17 21:41:25 429

原创 【Go并发】父goroutine关闭子goroutine

Go并发编程实战--父goroutine关闭子goroutine,使之被清理。

2022-07-11 09:03:39 492

原创 【Go并发】循环队列及条件锁实现goroutine间的通信

基于循环队列及条件锁实现goroutine间的通信。

2022-07-03 13:02:43 436

原创 【已解决】--go_out: protoc-gen-go: Plugin failed with status code 1.

解决grpc中proto转go的一些问题

2022-06-21 15:36:01 2940

原创 JWT简介

简单地介绍了Json Web Token

2022-06-20 00:50:00 627

转载 gRPC使用

grcp远程过程调用

2022-06-13 00:25:29 657

原创 git基础操作(一)

介绍Git的基础操作

2022-06-05 23:17:16 323

转载 Go语言性能分析

一、benchmark基准测试1. 性能分析Go语言优化代码的过程中,需要评估代码的性能如何。Go标准库内置的testing测试框架提供了基准测试(benchmark)工具,可以很容易地对某一段代码进行性能测试。2. 快速开始(1)初始化模块:go mod init benchmark_demo(2)需要测试的函数,这里以求解斐波那契数列为例:// benchmark_demo/fib.gopackage main// 需要测试的函数func fib(n int) int { if n

2022-05-29 22:12:12 978

原创 微服务管理(一)

微服务管理(一)一、微服务管理–服务发现1.1、为什么要使用服务发现设想下,我们写了一些通过REST API或者Thrift API调用某个服务的代码,为了发起这个请求,代码需要知道服务实例的网络地址(IP 地址和端口号)。在传统运行在物理机器上的应用中,某个服务实例的网络地址一般是静态的,比如,代码可以从只会偶尔更新的配置文件中读取网络地址。然而在现在流行的基于云平台的微服务应用中, 有更多如下图所示的困难问题需要去解决:服务实例需要动态分配网络地址,而且,一组服务实例可能会因为自动扩展、失败

2022-05-22 22:12:47 1122

原创 微服务简介及特性介绍

微服务特性一、微服务简介-构建单体应用互联网技术发展迅速的今天,微服务倍受关注:文章、博客、社交媒体讨论和会议演讲都在谈论。与此同时,也有持怀疑态度的软件社区人员认为微服务没什么新鲜可言。反对者声称它的思想只是面向服务架构的重塑。然而,无论是炒作还是怀疑,不可否认,微服务架构模式具有非常明显的优势 —- 特别是在实施敏捷开发和复杂的企业应用迭代开发方面。从本篇文章开始,我们来开学了解学习微服务的相关知识。1.1、单体应用我们先不问微服务是什么?微服务该如何实现?让我们从我们原本最熟悉的创建一个应用

2022-05-15 17:24:32 1218

原创 Go语言反射

#反射reflect一、引入先看官方Doc中Rob Pike给出的关于反射的定义:Reflection in computing is the ability of a program to examine its own structure, particularly through types; it’s a form of metaprogramming. It’s also a great source of confusion.(在计算机领域,反射是一种让程序——主要是通过类型——理解其自

2022-05-09 13:46:41 219

原创 springboot QuickStart

一、创建一个springboot web项目二、核心配置文件.yml与 .proprties文件核心配置文件必须命名applicationapplication.yml(或yaml)文件与application.proprties文件二选一,只有展现方式不一样两个文件同时存在时,proporties文件优先级更高#application.proprties文件必须为该名字与格式server.port = ...server.servlet.context-path = ... applic

2022-05-01 23:23:13 522

原创 这是一个指向指针变量地址的指针变量

这是一个指向指针变量地址的指针变量(指针变量的指针)一、前言在实现链表根据位置获取结点的方法(getByIndx)中,可以直接循环查询然后返回结点的指针。但由于之前的操作都是返回操作的状态码,如成功返回OK,索引越界返回OVERFLOW等,为了保持操作格式的规范,需要对方法进一步处理。#include <iostream>#define OK 200//#define ERROR -404#define OVERFLOW 300using namespace std;type

2022-03-27 16:17:26 698

原创 SpringBoot异常响应的处理

SpringBoot异常响应的处理一、前言在前后端交互的模式中,前后端会统一规范返回数据的格式。但在生产环境中,由于系统异常或bug的原因可能会产生异常,导致无法返回规定的格式数据。SpringBoot中规范数据的一个例子定义R类统一数据返回的格式@Datapublic class R { private Boolean flag; private Object data; private String msg; public R(Boolean flag

2022-03-20 17:05:30 882

原创 StratifiedShuffleSplit实现分层抽样交叉验证

StratifiedShuffleSplit()实现分层抽样交叉验证1. K-折交叉验证法交叉验证通常采用K-折交叉验证法–将训练数据拆分成K份,用其中K-1份进行训练,剩下的一份进行预测,从而检测模型的数据泛化能力。使用cross_val_score可以实现交叉验证,但在某些场景下,为了解决不同类别的样本间数量差异较大的问题,可以引入sklearn.model_selection下的StratifiedShuffleSplit类进行分层抽样验证和测试数据的分割,从而提高模型的说服力。2. St

2022-03-13 20:46:29 4772

原创 Pandas时序数据

Pandas时序数据前言在数据分析中,时序数据是一类非常重要的数据。事物的发展总是伴随着时间的推移,数据也会在各个时间点上产生。一、python中的时间表示-datetime模块​ Python的标准库datetime支持创建和处理时间,Pandas的时间时序模块是在datetime的基础上建立的。换取当前时间import datetimenow = datetime.datetime.now() # 2022-03-06 18:43:49.506048其中now的全貌如下,

2022-03-06 19:47:57 302

原创 SpringBoot查找pom依赖

通过在maven提供的网站上可查找到依赖配置项

2022-02-27 22:53:49 1054 1

原创 顺序表C语言实现-教材版解读及C语言相关知识复习

前言:(1)文章以数据结构经典教程《数据结构(C语言版)》为蓝本进行顺序表的实现及解读。(2)文章的代码尽量与教材保持一致。概述(1) 顺序表: 在存储结构上由一组地址连续的存储单元依次存储数据元素的数据结构称为顺序表。C语言相关知识的复习(1) typedef关键字:typeof关键字主要作用是实现自定义类型typedef关键字的两种用法:a. 为基本数据类型定义新的类型名:typedef int newName、typedef char* str…通过新的类型..

2022-02-27 20:31:07 535

原创 Scala学习笔记(1)

Scala学习笔记(1)一、Scala简介Scala是一门综合了面向对象和函数式编程概念的静态类型的编程语言。Scala的函数式编程概念让它很容易用简单的组件快速构建出有趣的应用。而它的面向对象编程概念让它能够轻松地构造出更大的系统,并不断地适配新的要求。Scala是一门静态语言,运行在标准的Java平台(即JVM)上,可以与所有Java类库无缝协作。Scala在与Java的语法比较相似,Scala可以看作在Java的基础上封装了更丰富的操作方法,比Java更具面向对象的特色,同时

2022-02-20 17:10:24 1039

原创 Linux服务器下PySpark环境安装

Linux服务器下PySpark环境安装一、JDK安装​ 1. 下载JDK安装包​ 进入Java官网下载对应的JDK版本,建议下载较早的版本,可能出现不兼容的。这里选择下载jdk-8u321-linux-x64.tar,下载完毕适用Xftp7上传至服务器并解压。tar -zxfv jdk-8u321-linux-x64.tar2. 修改 `/etc/profile` 文件,添加环境变量配置信息。vim /etc/profile​ 在文件末尾添加如下的配置信息export JAVA_HO

2022-01-30 20:05:42 11615 5

原创 Spark的操作算子

Spark的操作算子一、在Apache Spark中,RDD(弹性分布数据集)是一个非常重要的核心概念,很多计算必须依赖于RDD。一般来说,RDD包括两个操作算子:1. 变换:变换算子的特点是**懒执行**,变换操作并不会立即执行,而是需要等到有**动作操作**的时候才会真正进行计算,并得到结果。2. 动作:动作算子的特点是**立即执行**,动作算子会对`RDD`计算出一个结果,并把结果返回到**驱动器程序**中,或把结果存储到**外部存储系统**(如`HDFS`)中。二、Spark的操作算子(以

2022-01-23 15:21:43 1744

原创 动态规划初步

动态规划一、动态规划的核心​ 最近在力扣上刷多了几道动态规划问题的题,对动态规划形成了初步的了解。​ 动态规划问题与递归问题类似,都是基于将问题分解成更小的问题,求解小问题后得到最终的答案。动态规划与递归不同的是,动态规划是自底向上地求解问题,其小问题是相对于问题规模而言的,如求解最大子数组和问题,给定长度为n的数组求最大子数组和(问题规模为n),动态规划采用的是从数组长度为1(最小的问题规模)时开始设计,考虑下一阶段(长度为2)与何种因素相关,从而列得状态转移方程,即动态规划巧妙地利用之前计算过的结

2022-01-16 20:36:40 120

原创 A*算法及迪杰斯特拉算法求解最短路径问题

A*算法及迪杰斯特拉算法求解最短路径问题一、题目最短路径问题:求各节点到Bucharest的最小距离。二、数据表示在表示图的数据结构中,需要涵盖节点的相连关系和相连节点间的距离,以下为python数据结构表示记录图中的全部节点,用于循环遍历:vertex_list_ = ['Oradea', 'Zerind', 'Arad', 'Sibiu', 'Fagaras', 'Timisoara', 'Rimnicu Vilcea', 'Lugoj', 'Mechadia', 'Pitesti',

2022-01-08 17:19:46 1838 2

原创 Go面向对象编程(2)-值调用和指针调用的方法集

一、前言​ 在Go语言面向对象编程中,对象实例调用方法集有两种方式,一是值调用,二是指针调用,两者调用结果是一样的,因为编译器会对所调用的方法进行自动转换。二、对象实例调用的自动转换​ 首先看一个具体的示例package mainimport ( "bytes" "fmt" "os")type Data struct { name string val int}func (data *Data) addOne() { // 接收者为Data指针类型 data.val +

2022-01-02 14:10:35 489

原创 Go语言面向对象编程(1)-实现原理

Go面向对象编程一、前言​ 如果你沉迷于Python的简约代码风格,同时痴迷于C指针的特性,那么你会瞬间爱上Go。Python的代码风格简约,但作为一门动态语言,性能优化需要花费不少的努力,内存管理也存在麻烦。​ Go语言的代码风格简约,性能强大,有着有C指针等诸多迷人的特性,其中它的面向对象形式也很独特。二、Go面向对象的实现​ Go的面向对象主要依赖于struct结构体,首先自定义结构体(相当于一个自定义类,在Go中作为一个命名类型)的属性,再通过向结构体添加方法集(成员函数)的形式实现面向对

2021-12-25 15:53:00 1135

原创 最长回文子串-Python3

一、原题最长回文子串 - 最长回文子串 - 力扣(LeetCode) (leetcode-cn.com)给你一个字符串 s,找到 s 中最长的回文子串。示例输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。二、思路采用中心扩展的方法:(1)遍历字符串,判断当前字符的左右字符是否相等或是否与下一个字符相等找到最小的子回文字符串;(2)逐步左右指针(l_idx, r_idx)分别左移和右移,若仍满足s[l_idx] == s[r_idx],继续左右移动

2021-12-19 19:26:43 581

原创 Pandas函数应用

Pandas函数应用文章目录Pandas函数应用1.`pipe()`2.apply()3.applymap()4.map()5.agg()6.transform()7.copy()1.pipe()(1)函数签名df.pipe(func, params)series.pipe(func, params)DataFrame或Series对象调用pipe()函数,DataFrame或Series作为func函数的第一个参数,根据需求返回自己定义的任意类型数据。–func: 调用的目标函数;–pa

2021-12-12 19:07:23 583

原创 python爬取动态页面

一、动态页面概述:在页面中执行某些动作,如翻页、点击等,页面的url不变,对这种类型的页面爬取。原理:动态页面的数据的获取主要有两种(就我目前了解到的),(1)网页先将数据请求放在某个<script></script>中,分页展示;(2)页面通过ajax请求获取数据。二、方法如何判断是哪种?(1)打开控制台的网络部分,:(2)再次触发事件,比如说点击下一页,观察是否接收新的数据包(3)出现的话就是原理的第二种方式,查看数据包的详细信息:(4)

2021-12-05 23:14:03 4823

原创 AHP及EWM的python实现

一、AHPA为对比矩阵def AHP(A) -> np.array: # 平均随机一致性指标。 RI_dict = {1: 0, 2: 0, 3: 0.58, 4: 0.90, 5: 1.12, 6: 1.24, 7: 1.32, 8: 1.41, 9: 1.45, 10: 1.49} n = len(A) for i in range(1, n): for k in range(i): A[i][k] = 1 / A[k][

2021-11-28 14:04:51 960

原创 python技巧-day8

一些基本类型的秘诀1.整数(1)进制数的转换x = 16print(bin(x)) # 转换为二进制,带0b前缀print(f"{x: x}") # b:二进制,o:八进制,x:十六进制,不带前缀print(int(f'{x: b}', 2)) # int(str, n), 将n(int类型)的str转换为10进制数"""[out]0b10000 1016"""2.字符串(1) 多重清洗wash_dict = { ord('\t'): ' ', ord('\n

2021-11-21 16:29:40 321

《Hadoop权威指南》学习笔记.pdf

《Hadoop权威指南》学习笔记.pdf

2022-02-06

空空如也

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

TA关注的人

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