开源镜像源
开源软件镜像地址如果要是下载软件的话,直接执行
1weget wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz
http://mirror.bit.edu.cn/web/ #北京理工大学开源软件镜像服务 (比较全一些软件)
https://mirrors.tuna.tsinghua.edu.cn/ #清华大学开源软件镜像站(比较全一些软件)
http://mirrors.aliyun.com/ #阿里云 (阿里巴巴比较全的一些软件,包括服务呀,使用文档呀,也是软件开发者们首先下载目标)
http://mirrors.zju.edu.cn/ #浙江大学(学校级别的开源网,相对于软件数量不是很多)
http://mirrors.sohu.com/ #搜狐
http://mirrors.tuna.tsinghua ...
Drone+Gitea自动化部署
Drone+Gitea自动化部署
本使用Vagrant搭建虚拟环境
新建一个虚拟机ip为192.168.56.100
1.安装私有仓库harbor
下载地址:https://github.com/goharbor/harbor/releases
1234$ vagrant ssh#密码vagrant$ sudo su$ tar xvf harbor-offline-installer-v1.10.1.tgz
编辑harbor.yml文件
12$ cd ./harbor$ vi harbor.yml
安装执行install.sh
1$ ./install.sh
编辑 /etc/docker/daemon.json
1234{ "insecure-registries":["192.168.56.100"], "registry-mirrors": ["https://c8x7u9xt.mirror.aliyuncs.com"]}
重启doc ...
no cover
This post no cover
vagrantfile配置详解
vagrantfile配置详解1、简介在我们的工作目录下有一个Vagrantfile文件,里面包含有大量的配置信息,通过它可以定义虚拟机的各种配置,如网络、内存、主机名等,主要包括三个方面的配置,虚拟机的配置、SSH配置、Vagrant的一些基础配置。Vagrant是使用Ruby开发的,所以它的配置语法也是Ruby的,每个项目都需要有一个Vagrantfile,在执行vagrant init的目录下可以找到该文件
2、Vagrantfile文件Vagrantfile中有两行配置:
12Vagrant.configure("2") do |config|config.vm.box = "centos7"
这两行就是我们在vagrant init中后面所指定的参数。由此可以看出,vagrant init只是帮我们生成了配置文件而已,换句话说,如果我们写好了Vagrantfile,就不需要vagrant init,只需将准备好的配置文件放入到所需目录中,然后直接执行vagrant up即可。
还有很多注释掉的配置,那些都是一些常用的配置,包括网卡设置 ...
Vagrant搭建虚拟环境
Vagrant搭建虚拟环境
Vagrant 是基于 VirtualBox 虚拟机的,通俗的讲,就是用虚拟机的环境运行本地的代码。代码可以在本地直接编辑和调试,你可以在本地浏览器里查看运行中 Web 应用。而这套虚拟机是可以直接导入到其他电脑上的使用的,这样团队其他成员省去了配置时间,更能保证开发环境和生产环境的统一。
Vagrant的强大在于是一个镜像,配置完以后镜像可以放到任何地方去,真正做到了一劳永逸了。
Vagrant的官方网站: http://www.vagrantup.com/
Vagrant镜像
官方镜像:https://app.vagrantup.com/boxes/search
三方镜像:http://www.vagrantbox.es/
1.安装Virtualbox下载地址:https://www.virtualbox.org/wiki/Downloads
修改配置虚拟机安装路径
2.安装Vagrant下载地址:https://www.vagrantup.com/downloads.html
更改vagrant配置文件的位置
将C:\Users\user ...
github搜索技巧
github搜索技巧按仓库名称、说明或自述文件内容搜索通过 in 限定符,您可以将搜索限制为仓库名称、仓库说明、自述文件内容或这些的任意组合。 如果省略此限定符,则只搜索仓库名称和说明。
限定符
示例
in:name 关键字
in:name jquery匹配其名称中含有 "jquery" 的仓库。
in:description 关键字
in:name,description jquery匹配其名称或说明中含有 "jquery" 的仓库。
in:readme 关键字
in:readme jquery匹配其自述文件中提及 "jquery" 的仓库。
repo:owner/name
repo:octocat/hello-world 匹配特定仓库名称。
基于仓库的内容搜索您可以使用 in:readme 限定符,通过搜索其自述文件中的内容来查找仓库。
除了使用 in:readme 以外,无法通过搜索仓库内的特定内容来查找仓库。 要搜索仓库内的特定文件或内容,您可以使用查找器或代码特定的搜 ...
json时间格式化
json时间格式化Gorm JSON 时间格式化JSON 解析与扩展已有类型
Go 语言是没有完整的 OOP 对象模型的,在 Golang 的世界里没有继承,只有组合和接口,并且是松散的接口结构,不强制声明实现接口。通过对结构体的组合对现有对象进行扩展也是很便利的,参考 interface & struct 接口与结构体。
单一继承关系解决了 is-a 也就是定义问题,因此可以把子类当做父类来对待。但对于父类不同但又具有某些共同行为的数据,单一继承就不能解决了,C++ 采取了多继承这种复杂的方式。GO 采取的组合方式更贴近现实世界的网状结构,不同于继承,GO 语言的接口是松散的结构,它不和定义绑定。从这一点上来说,Duck Type 相比传统的 extends 是更加松耦合的方式,可以同时从多个维度对数据进行抽象,找出它们的共同点,使用同一套逻辑来处理。
注意 People.Name 成员首字母大写,否则不会导出,解析 JSON 时不会正确赋值。 如果想在一个包中访问另一个包中结构体的字段,则必须是大写字母开头的变量,即可导出的变量。
1234567891011121 ...
PO BO VO DTO POJO DAO DO概念
PO BO VO DTO POJO DAO DO概念概念PO 是Persistant Object的缩写,用于表示数据库中的一条记录映射成的 java 对象。PO 仅仅用于表示数据,没有任何数据操作。通常遵守 Java Bean 的规范,拥有 getter/setter 方法。
DAO是 Data Access Object的缩写,用于表示一个数据访问对象。使用 DAO 访问数据库,包括插入、更新、删除、查询等操作,与 PO 一起使用。DAO 一般在持久层,完全封装数据库操作,对外暴露的方法使得上层应用不需要关注数据库相关的任何信息。
VO是Value Object的缩写,用于表示一个与前端进行交互的 java 对象。有的朋友也许有疑问,这里可不可以使用 PO 传递数据?实际上,这里的 VO 只包含前端需要展示的数据即可,对于前端不需要的数据,比如数据创建和修改的时间等字段,出于减少传输数据量大小和保护数据库结构不外泄的目的,不应该在 VO 中体现出来。通常遵守 Java Bean 的规范,拥有 getter/setter 方法。
DTO是Data Transfe ...
N+1优化
N+1优化什么是N+1问题A对象关联B对象,A对象进行列表展示时需显示B对象的关联属性,这样需要先用一条sql将N个A对象查询出来,再用N条sql将这些对象的关联属性查询出来。违背了减少数据库交互原则,影响性能。
解决方法方法一连接查询,在查询A对象的时候,将关联的B对象查询出来。
缺点:
连接的表增加,sql性能下降;
如果N个A对象关联的是同一个B对象,会使结果集非常庞大,返回结果集需要消耗性能,并且影响排序性能。比如100个员工对象都关联ID为1的部门,本来部门的数据只需出现一次,这里为了避免N+1,重复出现100次。
方法二A表中设置冗余字段。
缺点:更新B表需要更新A表。更新A表时需要增加修改B对象属性的逻辑。
方法三性能最佳,1+1查询。
先用sql查出所有员工对象查询出,将他们关联的部门ID放到一个集合中,再发一条sql,将所有部门查出,之后在程序中将部门信息设置到员工对象中。
xorm生成代码
xorm生成代码下载源码1git clone https://gitea.com/xorm/cmd.git
编译12cd ../cmd/xormgo build
生成代码1./xorm reverse mysql "root:123456@tcp(127.0.0.1:3306)/doss" templates/goxorm ./model
配置文件cmd\xorm\templates\goxorm\config
12345678910111213#语言lang=go#生成json tag(0:不生成 1:生成)genJson=1prefix=cos_#当genJson=1时,忽略json字段(数据库字段,逗号隔开)ignoreColumnsJSON=detail#对应数据库字段(逗号隔开)created=created_at#对应数据库字段(逗号隔开)updated=updated_at#对应数据库字段(逗号隔开)deleted=deleted_at
设置created,updated,deleted后,CreatedAt,UpdatedAt会生成crea ...
標籤外掛(Tag Plugins)
Tabs出師表圖庫李白臣亮言:先帝創業未半而中道崩殂,今天下三分,益州疲弊,此誠危急存亡之秋也。然侍衞之臣不懈於內,忠志之士忘身於外者,蓋追先帝之殊遇,欲報之於陛下也。誠宜開張聖聽,以光先帝遺德,恢弘志士之氣,不宜妄自菲薄,引喻失義,以塞忠諫之路也。宮中府中,俱為一體;陟罰臧否,不宜異同:若有作奸犯科及為忠善者,宜付有司論其刑賞,以昭陛下平明之理;不宜偏私,使內外異法也。侍中、侍郎郭攸之、費禕、董允等,此皆良實,志慮忠純,是以先帝簡拔以遺陛下:愚以為宮中之事,事無大小,悉以諮之,然後施行,必能裨補闕漏,有所廣益。將軍向寵,性行淑均,曉暢軍事,試用於昔日,先帝稱之曰“能”,是以眾議舉寵為督:愚以為營中之事,悉以諮之,必能使行陣和睦,優劣得所。親賢臣,遠小人,此先漢所以興隆也;親小人,遠賢臣,此後漢所以傾頹也。先帝在時,每與臣論此事,未嘗不歎息痛恨於桓、靈也。侍中、尚書、長史、參軍,此悉貞良死節之臣,願陛下親之、信之,則漢室之隆,可計日而待也。臣本布衣,躬耕於南陽,苟全性命於亂世,不求聞達於諸侯。先帝不以臣卑鄙,猥自枉屈,三顧臣於草廬之中,諮臣以當世之事,由是感激,遂許先帝以驅馳。後值傾 ...
支付宝沙盒环境搭建
支付宝沙盒环境搭建开发工具在线工具:https://openhome.alipay.com/platform/demoManage.htm#/alipay.trade.wap.pay
密匙生成工具:https://ideservice.alipay.com/ide/getPluginUrl.htm?clientType=assistant&platform=win&channelType=WEB
支付宝开放平台登录蚂蚁金服开放平台:https://open.alipay.com/platform/home.htm
注册开发者账号并登录
安装沙盒版支付宝APP下载地址
使用沙盒账号登陆,支付密码和登陆密码都是111111,可以在该页面给账号充值
生成密钥得到商户应用私钥与商户应用公钥
获取支付宝公钥设置应用公钥
得到支付宝公钥
通知消息订阅
测试代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575 ...
CAS单点登录原理解析
转载:http://www.sohu.com/a/280937943_756465
CAS单点登录原理解析1、基于Cookie的单点登录的回顾
基于Cookie的单点登录核心原理:
将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从Cookie中取出用户名密码进行登录,让用户从某种意义上觉得只登录了一次。
该方式缺点就是多次传送用户名密码,增加被盗风险,以及不能跨域。同时www.qiandu.com与mail.qiandu.com同时拥有登录逻辑的代码,如果涉及到修改操作,则需要修改两处。
2、统一认证中心方案原理在生活中我们也有类似的相关生活经验,例如你去食堂吃饭,食堂打饭的阿姨(www.qiandu.com)告诉你,不收现金。并且告诉你,你去门口找换票的(passport.com)换小票。于是你换完票之后,再去找食堂阿姨,食堂阿姨拿着你的票,问门口换票的,这个票是真的吗?换票的说,是真的,于是给你打饭了。
基于上述生活中的场景,我们将基于Cookie的单点登录改良以后的方案如下:
经过分析,Cookie单点登录 ...
CSS display的32种写法
转载:https://segmentfault.com/a/1190000012833458
CSS display的32种写法
inline:无法设置高度,元素在同一行,自动换行
block:可设置高度,元素无法在同一行
inline-block:可设置高度,元素在同一行,自动换行
你知道『回』字有四种写法,但你知道display有32种写法吗?今天我们一一道来,让你一次性完全掌握display,从此再也不用对它发愁。
从大的分类来讲,display的32种写法可以分为6个大类,再加上1个全局类,一共是7大类:
外部值
内部值
列表值
属性值
显示值
混合值
全局值
外部值所谓外部值,就是说这些值只会直接影响一个元素的外部表现,而不影响元素里面的儿子级孙子级元素的表现。
display: block;这个值大家不陌生,我们最熟悉的<div>缺省就是这个值,最基本的块级元素,属于css入门初学者都知道的概念,只要是容器类型的元素基本都是这个值。除<div>之外,还有<h1>到<h6>,<p>,<form> ...
Sass中文教程
Sass中文教程Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。使用 Sass 以及 Sass 的样式库(如 Compass)有助于更好地组织管理样式文件,以及更高效地开发项目。
1. 特色功能 (Features)
完全兼容 CSS3
在 CSS 基础上增加变量、嵌套 (nesting)、混合 (mixins) 等功能
通过函数进行颜色值与属性值的运算
提供控制指令 (control directives)等高级功能
自定义输出格式
2. 语法格式 (Syntax)Sass 有两种语法格式。首先是 SCSS (Sassy CSS) —— 也是本文示例所使用的格式 —— 这种格式仅在 CSS3 语法的基础上进行拓展,所有 CSS3 语法在 SCSS 中都是通用的,同时加入 Sass 的特色功能。此外,SCSS 也支持大多数 CSS hacks 写法以及浏览器前缀写法 (ve ...
Prometheus + Grafana监控
转载:https://blog.rj-bai.com/post/158.html
本文包括 Prometheus 概述、部署、配置、监控、告警、之前我做监控用的都是 zabbix,zabbix 也算是一个全面型的监控系统,但是他不太适合容器监控,他对容器监控集成欠缺很多,他比较偏向于非容器监控。
Prometheus 算是一个全能型选手,原生支持容器监控,当然监控传统应用也不是吃干饭的,所以就是容器和非容器他都支持,所有的监控系统都具备这个流程,数据采集→数据处理→数据存储→数据展示→告警,本文就是针对 Prometheus 展开的,所以先看看 Prometheus 概述
Prometheus 概述Prometheus 是什么中文名普罗米修斯,最初在 SoundCloud 上构建的监控系统,自 2012 年成为社区开源项目,用户非常活跃的开发人员和用户社区,2016 年加入 CNCF,成为继 kubernetes 之后的第二个托管项目,官方网站
Prometheus 特点
多维数据模型:由度量名称和键值对标识的时间序列数据
PromSQL: — 种灵活的查询语言,可以利用多维数据 ...
5种分布式事务解决方案优缺点对比
5种分布式事务解决方案优缺点对比
原文
背景分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免。
ACID
指数据库事务正确执行的四个基本要素:
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
CAP
CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容忍性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。
一致性:在分布式系统中的所有数据备份,在同一时刻是否同样的值。
可用性:在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。
分区容忍性:以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
BASE理论
BASE理论是对CAP中的一致性和可用性进行一个权衡的结果,理论的核心思想就 ...
cc++
NIM_Duilib_Framework 网易云信Windows应用界面开发框架(基于Duilib)
pubg-mobile-esp 刺激战场腾讯模拟器透视+磁性自瞄
easyserverdev 操作系统层面提供的 API socket API
QStudioSCADA QStudioSCADA是一款集HMI,数据采集于一体的软件。
EasyLogger 高性能的 C/C++ 日志库
Utils C/C++ 基础功能组件代码
Tachftp Linux下ftp服务器(仿vsftpd)
QtFtpServer QtFtpServer 基于QFtpServer
QFtpServer QFtpServer - an FTP server written in Qt
jpeg_open A hardware MJPEG encoder and RTP transmitter
qxmledit QXmlEdit XML editor
CycloneTCP Dual IPv4/IPv6 Stack
QtCustomControls Qt自定义控件
qntp ...
algorithms
Algorithms 全面的算法代码仓库
algorithms Algorithms & Data structures in C++.
Learn-Algorithms 算法学习笔记
c-algorithms A library of common data structures and algorithms written in C.
C All Algorithms implemented in C
LearningMasteringAlgorithms-C Mastering Algorithms with C 《算法精解:C语言描述》源码及Xcode工程、Linux工程
Algorithms Efficient Algorithms
Algorithms Collection of algorithms in multiple programming languages.
algorithms_and_data_structures 180+ Algorithm & Data Structure Problems using C++
architecture
architecture.of.internet-product 互联网公司技术架构,微信/淘宝/微博/腾讯/阿里/美团点评/百度/Google/Facebook/Amazon/eBay的架构
architecture.taobao-alibaba 互联网公司架构: 淘宝技术架构,阿里巴巴技术架构
architecture.wechat-tencent 互联网公司架构: 微信技术架构, 腾讯技术架构
architecture.meituan-dianping 互联网公司架构: 美团点评技术架构
architect-awesome 后端架构师技术图谱