- 博客(76)
- 收藏
- 关注
原创 SQL练习
# 1、 查询Student表中的所有记录的Sname、Ssex和Class列。select Sname, Ssex, Class from Student;# 2、 查询教师所有的单位即不重复的Depart列。select distinct Depart, Tname from Teacher;# 3、查询Student表的所有记录。select * from Student;...
2019-09-23 17:48:27
701
原创 Go:100道Go语言面试题
1.【初级】下面属于关键字的是()A. funcB. defC. structD. class参考答案:AC2.【初级】定义一个包内全局字符串变量,下面语法正确的是()A. var str stringB. str := ""C. str = ""D. var str = ""参考答案:AD3.【初级】通过指针变量 p 访问其成员变量 ...
2019-09-03 14:20:36
13509
1
原创 Go:yaml配置文件集成
目录 Yaml配置介绍 Yaml配置文件解析 Koala配置项梳理 Koala配置文件生成器开发Yaml配置文件介绍基本语法 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格...
2019-08-30 08:58:12
2026
原创 Go:普罗米修斯中间件开发
目录 Prometheus介绍 Grafana介绍和使用 Prometheus中间件开发 测试Prometheus中间件Prometheus介绍 分布式监控系统 完全被开源,使用Go进行开发 ...
2019-08-30 08:36:57
2886
原创 Go:中间件
目录 中间件是什么? 中间件设计 中间件代码开发中间件是什么?中间件:是一类连接软件组件和应用的计算机软件,它包括一组服务。以便于运行在一台或多 台机器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架 构的演进,该架构通常用于支持并简化那些复杂的分布式应用程序,它包括web服务器、事务 监控器和消息队列软件。 ...
2019-08-29 06:09:41
510
原创 Go:微服务框架开发三(代码生成工具开发)
目录 共性抽象 代码生成工具设计 代码生成工具开发共性抽象package mainimport( "log" "net" pb "github.com/ibinarytree/koala/example/grpc_example/hello" "golang.org/x/net/context" "google.golang...
2019-08-29 05:43:25
1574
原创 Go:微服务框架开发二
目录 Http2 协议协商 https 密码交换协商 grpc使用示例HTTP2使用示例Golang默认支持http2问题: 如何兼容老的浏览器或客户端? 通过协议协商进行解决协议协商 Upgrade机制 ALPN机制,Application Layer Protocol Neg...
2019-08-29 05:25:41
373
原创 Go:微服务框架开发一
目录 微服务框架整体架构 http/2介绍 grpc介绍微服务框架整体架构微服务框架的意义性能 专业的人做专业的事情 专注框架层面的优化稳定性 专门的团队进行维护 Bug快速fix效率 解决共性问题 ...
2019-08-29 04:35:08
2031
原创 Go:序列化和反序列化
目录 为什么要序列化和反序列化 Json简介和使用 Msgpack简介和使用 Protobuf简介和使用为什么需要序列化和反序列化?微服务特点 1.每个服务专注做好一件事 2.微服务之间需要进行交互 3.每个服务可以使用任何语言进行开发为什么需要序列化和反序列化?服务之间进行沟...
2019-08-29 02:27:51
1846
原创 Go:微服务架构
微服务架构全景图服务注册和发现Client side implement 1.调用需要维护所有调用服务的地址 2.有一定的技术难度,需要rpc框架支持Server side implement 1.架构简单 2.有单点故障问题:在微服务架构中,为什么不选择传统的LV...
2019-08-29 01:57:17
1275
原创 Go:负载均衡组件开发
目录 场景分析 基本算法介绍 接口设计 功能开发场景分析分布式系统 1.每个服务都有多个实例 2.请求如何路由?传统解决方案 DNS+LVS 1...
2019-08-29 01:51:36
818
1
原创 Go:服务发现开发
服务发现 使用DNS进行服务发现 服务注册&发现原理 服务发现接口定义 基于etcd的服务发现开发服务发现的两种方案 1.使用DNS进行服务发现 2.基于SDK的形式进行服务发现使用DNS进行服务发现传统D...
2019-08-29 01:29:16
627
原创 Go:服务注册组件开发
服务注册&发现原理 注册中心选型选项模式介绍问题描述type Options struct{ StrOption1 string StrOption2 string StrOption3 string IntOption1 int IntOption2 int IntOption3 int}...
2019-08-29 01:13:17
454
原创 Go:微服务概述
单体应用概念 1.所有业务功能都在一个应用程序里面 2.研发人员开发并维护同一个代码库 3.架构简单,典型的三层架构单体应用的横向扩展单体应用的优势(规模不大) 1.架构简单,容易上手 2.部署简单,没有复杂的依赖 3.测试方便,...
2019-08-28 18:08:42
806
原创 Go:struct
struct声明和定义1. Go中⾯向对象是通过struct来实现的, struct是⽤户⾃定义的类型type User struct { Username string Sex string Age int AvatarUrl string} 注意:type是⽤来定义⼀种类型2. struct初始化⽅法var...
2019-08-28 17:20:35
278
原创 Go:切片
切⽚定义1. 切⽚是基于数组类型做的⼀层封装。它⾮常灵活,可以⾃动扩容。var a []int//定义⼀个int类型的空切⽚2. 切⽚初始化, a[start:end]创建⼀个包括从start到end-1的切⽚。package mainimport ( "fmt")func main() { a := [5]int{76, 77, 78, 79, 80} ...
2019-08-28 16:48:27
194
原创 Go:map声明和定义
map声明和定义1. map类型是⼀个key-value的数据结构。//var a map[key的类型]value类型var a map[string]intvar b map[int]stringvar c map[float32]string注意:map必须初始化才能使⽤,否则panic2. map类型的变量默认初始化为nil,需要使⽤make分配map内存pa...
2019-08-28 16:21:19
1646
原创 Go:指针
变量和内存地址1. 每个变量都有内存地址,可以说通过变量来操作对应⼤⼩的内存var a int32a = 100fmt.Printf(“%d\n”, a)fmt.Printf(“%p\n”, &a)注意:通过&符号可以获取变量的地址2. 普通变量存储的是对应类型的值,这些类型就叫值类型指针类型3. 指针类型的变量存储的是⼀个地址,所以⼜叫指针类型...
2019-08-28 16:08:56
192
原创 Go:性能优化
性能优化背景以及原理1. 性能优化背景 2. 常见性能优化手段 A. 尽可能的减少 HTTP 的请求数。合并css和js以及图片。 B. 使用CDN系统,实现就近访问。 C. 启用gzip压缩,降低网页传输的大小。 D. 优化后端api服务的性能。...
2019-08-28 15:17:59
1202
1
原创 Go:gin框架
Gin框架介绍1. 简介 A. 基于httprouter开发的web框架。http://github.com/julienschmidt/httprouter B. 提供Martini风格的API,但比Martini要快40倍 C. 非常轻量级,使用起来非常简洁2. Gin框架安装与使用 ...
2019-08-28 14:58:19
2002
原创 Go:依赖管理和Mysql开发
依赖管理介绍1. 简介 A. 所有的第三方包都放在$GOPATH的src目录下。 B. 如果不同程序依赖的版本不一样,怎么管理 C. 每个程序依赖的包,没有版本号的概念。2. godep安装 a. 安装方法: go get github.com/tools/godep ...
2019-08-28 04:04:53
433
原创 Go:数据格式
数据交换格式简介1. 简介 A. 分布式系统 B. 打包和解包操作 C. 传输模式:1. 网络传输,API接口。2. 文件传输。2. JSON数据格式 a. 对象, key-value形式。{} b. 数组,[]{ "dates":{ ...
2019-08-28 03:37:17
410
原创 Go:Web编程
Web编程基础1. Web工作方式HTTP协议详解1. http 请求包体GET /domains/example/ HTTP/1.1 //请求行: 请求方法 请求URI HTTP协议/协议版本Host:www.iana.org //服务端的主机名User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTM...
2019-08-28 03:24:02
325
原创 Go:NSQ消息队列
NSQ介绍1. 简介 A. NSQ是Go语言编写的,开源的内存分布式消息队列中间件 B. 可以大规模地处理每天数以十亿计级别的消息 C. 分布式和去中心化拓扑结构,无单点故障 D. Github地址:https://github.com/nsqio/nsq2. NSQ应用场景1....
2019-08-27 21:48:30
838
原创 Go:Redis
Redis介绍1. 简介 A. 开源的、内存中的数据结构系统。 B. 支持多种数据结构,string、hash、列表、集合以及有序集合 C. 性能非常好,单机能够达到15wQPS。 D. 通常用来做缓存系统,完全可以替代memcache2. 应用场景 ...
2019-08-27 21:34:18
1157
原创 Go:反射
变量介绍1. 变量的内在机制 A. 类型信息,这部分是元信息,是预先定义好的 B. 值类型,这部分是程序运行过程中,动态改变的var arr [10]intarr[0] = 10arr[1] = 20arr[2] = 30arr[3] = 40arr[4] = 50type Animal struct { Nam...
2019-08-27 17:25:59
257
原创 Go:测试和调试
自动化测试框架1. testing A. testing包提供了自动化测试相关的框架 B. 支持单元测试和压力测试import ( "testing")测试规范2. Go中的测试约定 A. 用来测试的代码必须以_test.go结尾 B. 单元测试的函数名必须以Tes...
2019-08-27 17:08:34
828
原创 Go:接口实战(日志库开发)
日志库需求分析1. 日志库产生的背景 A. 程序运行是个黑盒 B. 而日志是程序运行的外在表现 C. 通过日志,可以知道程序的健康状态2. 日志打印级别设置 A. Debug级别:用来调试程序,日志最详细。对程序性能影响比较大。 B. Trace级别:...
2019-08-27 17:00:10
295
原创 Go:接口
1. 接口定义了一个对象的行为规范 A. 只定义规范,不实现 B. 具体的对象需要实现规范的细节2. Go中接口定义 A. type 接口名字 interface B. 接口里面是一组方法签名的集合type Animal interface { Talk() E...
2019-08-27 16:53:31
191
原创 Go:并发与多线程
1. 概念 A. 并发:同一时间段内执行多个操作。 B. 并行:同一时刻执行多个操作。2. 多线程 Goroutine初探 A. 线程是由操作系统进行管理,也就是处于内核态。 B. 线程之间进行切换,需要发生用户态到内核态的切换。 C. 当系统中运行大量线程,系统...
2019-08-27 16:14:42
353
原创 Go:网络
TCP/IP协议介绍1. 互联网起源 1. 起源于美国五角大楼,它的前身是美国国防部高级研究计划局 主持研制的ARPAnet。 2. 互联网的基础是TCP/IP协议 3. TCP/IP 是供已连接因特网的计算机进行通信的通信协议。2. TCP/IP协议 1. TCP ...
2019-08-27 15:47:04
411
原创 Go:线程安全介绍
1. 现实例子 A. 多个goroutine同时操作一个资源,这个资源又叫临界区 B. 现实生活中的十字路口,通过红路灯实现线程安全 C. 火车上的厕所,通过互斥锁来实现线程安全2. 实际例子, x = x +1 A. 先从内存中取出x的值 B. CPU进行计算,x+1...
2019-08-27 15:08:52
895
原创 Go:Select语义介绍和使用
1.多channel场景 多个channel同时需要读取或写入,怎么办? 串行操作? NOpackage mainimport ( "fmt" "time")func server1(ch chan string) { time.Sleep(6 * time.Second) ch <- "from server1"...
2019-08-27 14:57:21
291
原创 bat批量修改文件名
1.将文件全部存入同一文件夹,打开cmd,进入到文件夹。2.输入命令:dir /b>rename.xls3.打开rename.xls,将A内容复制到B,选中B,ctrl+H,将文件名批量替换成要修改的文件名。4.输入公式:="ren "&A1&" "&B1,将C中内容下拉至完整5.创建bat文件ren.bat ,将C中内容复制到bat文件中,双击ba...
2019-08-26 23:47:15
8046
原创 多线程与并发
1.1进程和线程的区别 1.进程和线程的由来 串行:初期计算机只能床行执行任务,并且需要长时间等待用户输入 批处理:预先将用户的指令集中成清单,批量创行处理用户指令,仍然无法并发执行。 进程:进程独占内存空间,保存各自运行状态,相互间不干扰且可以互相切换,为并发处理任务提供了可能 线程:共享进程的内存资源,相互间切换更快速...
2019-08-19 16:38:51
194
原创 Redis
1.1缓存中间件,Memacache 和Redis的区别:1.Memacache: 代码层次类似Hash。 Memacache的优点在于它非常简单易用,并且它跟Hash是非常类似的。是可以通过Hash这个数据结构来实现的 1.支持简单的数据类型 2. 不支持数据持久化存储,一旦服务器宕机之后,数据没有办法保存下来的 3. 不支持M...
2019-08-19 16:12:11
249
原创 数据库
1.1数据库设计:1.存储(文件系统): 将数据最终磁盘化存入硬盘中,如机械硬盘,或固态硬盘2.程序实例(用逻辑结构映射出物理结构来,并且在程序中,提供、获取、以及管理数据的方式,还有必要的问题追踪机制):频繁的IO,会使数据库的执行效率慢如蜗牛,因为一次IO读取多条数据,和单条数据花费的时间并没有多大的区别,我们可 以一次性的区读取多行,提升IO的效能,所以行就失去了它的意义。实...
2019-08-19 15:47:19
252
原创 eclipse源码下载地址
http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.6.2-201102101200/eclipse-sourceBuild-srcIncluded-3.6.2.zip
2019-07-08 17:30:53
1601
原创 .NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonMerge
解决:将下面三个包替换掉项目中的那个。<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version> 2.9.9</version>&...
2019-07-04 16:33:21
8852
2
原创 classcastexception: com.github.pagehelper.pagehelper cannot be cast to org.apac site:blog.youkuaiyun.com
解决:将SqlMapConfig.xml 文件中修改为
2019-07-04 16:06:31
413
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人