自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 领域驱动设计(DDD)笔记(三)后端工程架构

基于DDD理论,通过战术设计原则;指导具体的落地实现细节,省去浮夸的DDD描述

2024-05-03 17:00:40 1039 1

原创 领域驱动设计(DDD)笔记(二)代码组织原则

具体概括一下领域驱动设计如何落地到具体的工程代码上面

2024-05-03 14:58:33 1032 1

原创 领域驱动设计(DDD)笔记(一)基本概念

DDD是一种面向复杂需求的软件设计方法,在各大佬口中广泛提及但很少落地,基于代码工程角度我抛砖引玉,整理出我的认识

2024-05-03 13:57:33 1356 2

原创 GO 汇编学习笔记(五)

GO 汇编学习笔记(五)​ 程序主要有顺序、分支和循环几种执行流程。本节主要讨论如何将Go语言的控制流比较直观地转译为汇编程序,或者说如何以汇编思维来编写Go语言代码。顺序执行​ 顺序执行时常见的工作模式,所有不含分支,循环、goto语句,并且没有递归调用的Go函数,一般都是顺序执行的。func main() { var a = 10 println(a) var b = (a+a)*a println(b)}TEXT ·main(SB), $24-0

2021-06-08 17:45:22 409

原创 GO 汇编学习笔记(四)

GO 汇编学习笔记(四)函数中的局部变量​ 从Go语言函数角度讲,局部变量是函数内明确定义的变量,同时也包含函数的参数和返回值变量。但是从Go汇编角度看,局部变量是指函数运行时,在当前函数栈帧所对应的内存内的变量,不包含函数的参数和返回值(因为访问方式有差异)。函数栈帧的空间主要由函数参数和返回值、局部变量和被调用其它函数的参数和返回值空间组成。为了便于理解,我们可以将汇编函数的局部变量类比为Go语言函数中显式定义的变量,不包含参数和返回值部分。​ 为了便于访问局部变量,Go汇编语言引入了伪SP寄

2021-06-08 17:43:50 241

原创 GO 汇编学习笔记(三)

GO 汇编学习笔记(三)函数概念​ 因为Go汇编语言中,可以也建议通过Go语言来定义全局变量,那么剩下的也就是函数了。只有掌握了汇编函数的基本用法,才能真正算是Go汇编语言入门。本章将简单讨论Go汇编中函数的定义和用法。基本语法函数标识符通过TEXT汇编指令定义,表示该函数存储在TEXT内存段,TEXT语句后的指令对应函数的实现。TEXT 本身不关心后面十分有指令,因此TEXT和LABEL定义的符号是类似的,区别只是LABEL是用于跳转标号,但是本质上他们都是通过标识符映射一个内存

2021-06-08 17:42:58 322

原创 GO 汇编学习笔记(二)

GO 汇编学习笔记(二)​ GO 汇编学习笔记(一)​ GO 汇编学习笔记(二)​ GO 汇编学习笔记(三)常量程序中一切变量的初始化都直接或间接的依赖常量或者常量表达式生成,GO中很多是默认0初始化的,但是GO汇编中定义的变量最好还是手工通过常量初始化,有了常量就可以全局变量,并且使用常量组成的表达式初始化其它变量。Go中常量通过$符号为前缀,常量的类型有整数、浮点、字符、字符串集中类型$1 // 十进制$0xf4f8fcff // 十六进制$1.5

2021-06-08 17:42:01 654

原创 GO 汇编学习笔记(一)

GO 汇编学习笔记(一)​ GO 汇编学习笔记(一)为什么要学习GO汇编​ 对于一个严肃的GO语言开发者,GO汇编都是不可忽视的技术,了解了GO的汇编可以帮助你更好的理解计算机原理,也更容易理解GO语言的动态栈等高级特性。本文参考 http://books.studygolang.com/advanced-go-programming-book/ch3-asm 但是里面部分示例有错误,无法编译通过;本文都用以修改简单入门​ GO汇编并不是独立的语言,GO汇编无法被独立使用,

2021-06-08 17:40:41 305

原创 Colly 爬虫学习笔记(三)——爬虫框架,抓取动态页面数据(上证A股动态数据抓取)

Colly 学习笔记(三)——爬虫框架,抓取动态页面Colly 学习笔记(一)——爬虫框架,抓取中金公司行业市盈率数据Colly 学习笔记(二)——爬虫框架,抓取下载数据Colly 学习笔记(三)——爬虫框架,抓取动态页面数据​ 前两章节主要讨论静态数据的抓取,我们只需要把网页地址栏中的url传到get请求中就可以轻松地获取到网页的数据,但是有的网页是动态页面,我们通过网页源代码无法找到数据,翻页时URL也没有改变。此时就无法抓取数据。比如 http://www.sse.com.cn/assor

2020-12-30 13:37:46 3075

原创 Colly 学习笔记(二)——爬虫框架,抓取下载数据(上证A股数据下载)

Colly 学习笔记(二)——爬虫框架,抓取下载数据Colly 学习笔记(一)——爬虫框架,抓取中金公司行业市盈率数据Colly 学习笔记(二)——爬虫框架,抓取下载上一讲是简单说明了网页数据抓取,通过一个简单的爬虫,掌握简单的数据抓取,但是实际情况常出现网页只提供下载,页面没有数据的情况(如图),此时直接用colly抓取数据即可。遇到这种提供下载的数据,colly可以直接下载。首先查看列表网页结构,如下图所示#原始的获取链接#A股http://query.sse.com.cn

2020-12-29 16:42:13 777

原创 Colly 爬虫学习笔记(一)——爬虫框架,抓取中金公司行业市盈率数据

Colly 学习笔记(一)——爬虫框架,抓取中金公司行业市盈率数据Colly 主体类是 Collector类,Collector管理网络通信,当Collector的任务运行时也负责执行注册的回调函数。初始化过程如下:c:=colly.NewCollector()你可以注册不同的回调函数,通过Collector来控制任务或检索信息。c.OnRequest(func(r *colly.Request) { //在Request请求之前调用 fmt.Println("Visit

2020-12-24 10:17:38 1033

原创 Go日志系统

Go日志系统logrus作为go开发的日志系统;建议采用 log.WithFields 方法以json形式生成日志文件,这样方便ELK日志系统抓取和分析日志。package seedlogimport ( "encoding/json" log "github.com/sirupsen/logrus")const SEED_LOG_VERSION = "1.0.0.0"type SeedLog struct { //FileName string `json:"FileNa

2020-10-12 15:55:06 185

原创 NIMA 算法测试图片清晰度

NIMA 算法测试图片清晰度结果简介该算法从两个不同的维度进行判断。首先是判断照片的质量等。美观等主观方面,该算法也可以用来判断拍照水平。摄影爱好者可以用来提高自己的摄影水平。如何检测图片NIMA基于最新的深度物体识别(object detection)神经网络,能够从直接观感(技术角度)和吸引程度(美学角度)预测人类对图像的评估意见的分布。文中提出的神经网络的打分具有与人类主观打分很相近的优点,因此可以用于图像质量评估工作。NIMA算法是用来单纯检测图片质量,采用AVA数据集合训练。可以

2020-05-22 15:57:15 1708

原创 Pytorch实现MTCNN详解—原理及结构设计2

1.2PNet网络的设计和实现相关连接论文地址下载本人项目地址(已修复Bug)训练数据下载地址⚠️感谢作者,以下代码选自Sierkinhane的GIT,并且进行部分修改,以适配新的wider数据。定义PNet​ 全称为Proposal Network,其基本的构造是一个全连接网络。对上一步构建完成的图像金字塔,通过一个FCN进行初步特征提取与标定边框,并进行Bounding-Box Regression调整窗口与NMS进行大部分窗口的过滤。PNet是一个人脸区域的区域建议网络,该网络的

2020-05-22 00:45:09 1954

原创 Pytorch实现MTCNN详解—模型训练阶段2

2.2模型训练阶段—准备PNet数据相关连接论文地址下载本人项目地址(已修复Bug)训练数据下载地址⚠️以下代码选自Sierkinhane的GIT,并且适配新的wider数据。并非单纯copy训练图片下载:准备训练Pnet的图片数据​ 训练MTCNN的时候,是分别对PNet、RNet、ONet三个网络分开训练,这里先说明PNet的数据处理Sierkinhane的代码中box shape是x1,y1,x2,y2。但是WIDER_FACE的MAT是x1,y1,w,h。所以不能直接使用。

2020-05-21 18:28:40 1627 1

原创 Pytorch实现MTCNN详解—模型训练阶段1

Pytorch实现MTCNN详解(二)相关连接论文地址下载本人项目地址(已修复Bug)训练数据下载地址预处理训练数据在训练MTCNN之前,我们需要收集数据集合,wider_face 提供了训练数据。⚠️以下代码选自Sierkinhane的GIT,并且适配新的wider数据。并非单纯copyimport osfrom scipy.io import loadmatclass DATA: def __init__(self, image_name,bboxes):

2020-05-21 17:11:45 1516

原创 SaaS金融分析系统

内容待续

2020-04-21 20:58:23 303

原创 MediaSoup-demo模块增加nginx

MediaSoup-demo模块增加nginxmediasoup-demo app 模块只能通过 gulp dist,不满足高并发、高新能要求。这里添加nginx docker容器,代理app模块。该项目使用docker容器技术,不会污染宿主机环境。docker搭建mediasoup参考以下项目:使用docker 搭建MediaSoup服务github项目路径docker hub 路径...

2020-04-10 10:13:15 1333

原创 使用docker 搭建MediaSoup服务

使用docker 搭建MediaSoup服务mediasoup-demo 编译并且安装在docker容器上既复杂又浪费时间,我在这里编译一个已经安装好的镜像,并且增加了nginx模块。提升了Web端的性能。github项目路径docker hub 路径环境变量说明DEBUGDOMAINPROTOO_LISTEN_PORTMEDIASOUP_LISTEN_IPMEDIASOUP_...

2020-04-10 10:11:39 3802 3

原创 Mediasoup基本框架学习

Mediasoup 的基本结构mediasoup designmediasoup 模块javaScript层开发的对外接口层,Node.js服务。提供Signal服务(房间服务、SDP、等数据)。C/C++ 模块,用于媒体数据交换层(ICE, DTLS, RTP and so on),UDP类型数据交换。两个模块相互通信,但是开发者无需关心C/C++模块,只要关心JavaScri...

2020-04-09 11:56:46 2403

原创 WebRtc 框架学习(一)

WebRtc​ WebRTC是由Google主导的,由一组标准、协议和JavaScript API组成,用于实现浏览器之间(端到端之间)的音频、视频及数据共享。WebRTC不需要安装任何插件,通过简单的JavaScript API就可以使得实时通信变成一种标准功能。WebRtc协议详解​ WebRTC 传输层主要采用UDP协议,因为TCP讲究可靠、有序,如果丢包,后...

2020-04-07 13:12:02 1400

原创 通过MINIKUBE安装K8S测试环境(国内安装)

minikubeMinikube是一个快速搭建单节点Kubenetes集群的工具,通过使用minikube结合虚拟机(Virtual Box 、VM 、Hyper-V)快速在自己的电脑上搭建开发测试环境。由于阿里云提供的方案对于新版本minikube有部分错误,这里进行改进。Windows(Hyper-V模式):MINIKUBE安装地址:下载地址选择版本:1.8.2下载后修改文件...

2020-03-24 14:33:10 1623

原创 基于K8S搭建VR直播/点播云服务

VR直播VR 应用场景:VR教育直播应用在一些专用化的职业教育,这些场景需要很强的现实体验。比如医护人员现场培训、电视媒体直播、远程教育等。VR 硬件需求:与普通直播相比,VR直播硬件有所改变,直播设备不在是普通摄像机;而是VR全景相机,直播观看则需要VR眼镜。教育行业由于需要做笔记等特殊原因,不能带头盔,所以需要裸眼VRVR网络需求:一段几秒钟的VR视频数据流...

2020-03-24 11:05:53 1141

原创 基于K8S搭建HLS直播/点播云服务

基于K8S搭建HLS直播/点播云服务Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功能相对比较完善的流媒体服务器。同时利用K8S集群管理,快速完成直播点播云服务。Pod模块架构图模块讲解待续容器编排待续该模式缺点由于通过读取ts文件的方式进行流媒体...

2020-03-17 10:30:15 2429

原创 Kubernetes存储

Kubernetes存储在Docker的设计实现中,容器数据是临时性的,当容器销毁或重启时存储在容器内部数据将全部丢失但实际上很多容器化应用是需要持久化保存数据,K8S的POD和容器一样,重建销毁数据就会丢失,K8S也通过挂载数据卷的方式为POD数据持久能力,这些数据卷以Pod为最小单位进行存储,通过共享存储或分布式存储在POD之间实现共享。存储使用场景K8S是由Master节点以及N...

2020-03-16 14:07:46 592

原创 Kubernetes 核心概念 StatefulSet、Service

StatefulSetStatefulSet旨在与有状态的应用及分布式系统一起使用。StatefulSet使用起来相当复杂,当应用具有以下特点时才建议使用StatefulSet有唯一的稳定的网络标识符需求。有稳定性、持久化数据存储需求。有序的部署和扩展需求。有序的删除和终止需求。有序的自动滚动更新需求。如果应用不需要任何稳定的标示、有序的部署、删除和扩展,则该应用应使用一组无状态副...

2020-03-11 16:29:10 780

原创 Kubernetes 核心概念Label、RC、HA、Deployment

LabelKubernetes使用Label的键值对来标识附加到系统中的各种API(Pod、Service、Replication Controller 等)每个API可以有多个Label,但是每个Label的Key只能是唯一的值。相应地LabelSelect 则是针对匹配对象的标签进行查询。Label和LabelSelect是K8s主要的分组机制如果有多个标签,LabelSelect可以...

2020-03-11 14:39:14 537

原创 Kubernetes 核心概念 POD及网络

Pod概念pod 是k8s的基本操作单元,是应用运行的载体。包含一个或多个容器。整个k8s系统都是围绕POD围绕展开的。比如如何运行POD,保持POD数量、如何访问POD等。Pod模板#pod.ymlapiserver: v1 # Kubernetes的API版本声明,目前是V1kind: pod # API对象的类型声明,当前类型是P...

2020-03-10 15:12:52 939

原创 基于Docker的新型PaaS平台(一)

PaaS模式 PaaS作为云计算重要的一类服务,为用户提供完整的应用生命周期管理和相关资源服务。 用户可以通过PaaS平台完成应用的构建、部署、运维管理,无需自行搭建计算执行环境, 如安装服务器,操作系统,中间件和数据库等。IaaS提供虚拟硬件、系统资源, PaaS负责部署、运维,实现弹性伸缩和高可用等功能。传统PaaS有很多局限性:只能提供有限的开发语言,框架和中间件的支持...

2020-03-09 14:37:08 912

原创 HLS-搭建Nginx流媒体点播服务(SaaS docker)

HLS-搭建Nginx流媒体服务器Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功能相对比较完善的流媒体服务器。同时利用Docker容器,编写nginx-rtmp容器,简单高效。docker-compose.yml 编写直接使用docker hub 上的 rt...

2020-03-06 17:44:01 2825

原创 微服务---服务发现架构

微服务概念微服务是将单一服务按照业务独立分开,共同组成稳定的应用系统。每个服务可单独部署、弹性拆分、相互通信。服务的拆分符合低耦合,高内聚的特性。从而降低每个服务间的代码复杂度,提高整个系统稳定性。所有服务遵循统一的分布式管理,统一的通信机制。每个微服务可以使用不同的代码开发。微服务架构可以看做是面向服务架构和分布式架构的拓展,使用更细粒度的服务和一组设计准则来考虑大规模的复杂系统架构设计。...

2019-11-22 15:53:09 213

原创 通过docker容器控制宿主机其他容器---监控容器

Docker架构Docker框架主要由Docker Client、Docker Daemon、Docker Registry、Driver、Docker Container五个模块组成,另外还有Graph和Libcontainer两个辅助模块,如下图所示:用户通过docker-client向daemon发送命令操作docker,根据这个原理,可以通过挂载目录的方式让容器发送命令来操作其它do...

2019-11-13 16:12:02 1182

原创 利用MongoC自动化配置复制集(replSet)

MongoDB复制集简介Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数据集,提供数据的高可用。MongoDB C Drivermongoc 是官方的mongo驱动,用于通过...

2019-11-12 12:32:37 287

原创 PaaS-云性能监控解决方案

PaaS-云性能监控解决方案1 性能监控1.1 概念介绍grafana:度量仪表盘图形界面性能监控工具。heapster: 容器集群监控和性能分析工具。InfluxDB:开源的分布式时序数据库。1.2 运行机制• Grafana 是业界使用最为广泛的开源监控展示面板,高效、可灵活定制。• 系统可以对容器的性能数据进行集中式的采集存储,通过heapster从各个Node上获取相...

2019-09-09 09:37:21 734

原创 PaaS-云计算实时性能监控工具(netdata)

简介Netdata是一个高度优化的性能监控工具,它为Linux系统,docker,SNMP服务等提供实时的性能监测。它用可视化的手段,将被监测者最细微的细节,展现了出来。这样,你便可以清晰地了解你的系统和应用程序此时的状况。由于云计算特性,需要将netdata容器化,目的方便部署使用,简化配置流程。经过几年的发展,以 Docker 为代表的容器技术正逐渐引领着未来,基于kubetnetes...

2019-09-05 15:25:19 648

原创 PaaS•ELK-云计算分布式日志管理

1.概念介绍:ELK: 业界使用最为广泛的开源日志管理平台,由Elasticsearch,logstash和kibana三部分组件组成 Elasticsearch:开源分布式搜索引擎,用来存储各类日志 Logstash:用来对日志进行收集、分析,并且将收集结果发给Elasticsearch。 Kibana:提供web界面,接口用作查询和可视化日志 filebeat:轻量级日志采...

2019-09-05 14:56:40 297

原创 通过kubeadm安装k8s并配置集群

在Ubuntu上通过kubeadm安装k8s并配置集群1.首先 安装docker和docker-compose 过程略过2.配置kubeadm国内源(aliyun)由于官网手册给的是k8s的官方源,无法正常apt安装,这里添加源如下:在 /etc/apt/sources.list.d/kubernetes.list 文件下添加:deb https://mirrors.aliyun.com/...

2019-08-06 15:25:23 312

原创 基于 ZEROMQ 封装的通信模块--SEED_CZMQ

SEED_CZMQ----基于 ZEROMQ 封装的通信模块Zeromq 简介:ZeroMQ号称是“史上最快的消息队列”,基于c语言开发的,实时流处理sorm的task之间的通信就是用的zeroMQ。ZeroMQ可以简化网络开发。代码结构: SEED_LOG--| | |---include----|...

2019-06-26 15:41:22 1095

原创 基于Boost Log 开发的本地日志模块---SEED_LOG(一)

SEED_LOG_LOCAL 是基于Boost.Log的模块的本地日志模块,默认配置每天自动生成日志模块,并且有保留天数的配置,日志超过配置开始自动清理。该模块主要依赖 Boost.Log 和Boost.Thread两大模块,并且可以支持 windows 和 linux 跨平台使用。

2019-06-25 16:34:39 635

原创 SeedCloud微服务框架(1)------SeedCloud系统用例图

SeedCloud微服务框架(1)一、微服务架构介绍微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的类上应用很多SOLID原则。概念:把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的应用程序堆栈,从...

2019-06-05 16:34:14 720

空空如也

空空如也

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

TA关注的人

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