自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 问答 (1)
  • 收藏
  • 关注

原创 Golang代码笔记--netpoller

netpoller背景介绍I/O多路复用模型(I/O Multiplexing):select阻塞,直到有FD准备好,FD数量有FD_SETSIZE限制int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);// readfds,write...

2019-10-17 22:42:10 876

原创 golang代码笔记 --sync包

syncsync包实现了一些基础的同步原语;更高级的同步机制官方建议使用channel来实现;同时包含atomic包,实现数据的原子操作;以下原语对象在参数传递时,切忌不可被拷贝:XXX must not be copied after first use.Mutex锁是sync包的核心概念,其他原语的实现到多都是基于Mutex的封装,golang在Mutex之前抽象了Locker接...

2019-07-18 19:26:01 341

原创 golang代码笔记 -- 基础库归纳(持续更新)

主要内容主要根据自己在开发过程中的使用经验,总结一下常用的基础包的使用方式;可能会有疏漏和错误,主要是强迫自己来进行总结;归纳列表1.string & strconvstrconv – 数字转换strconv包最常用的是整型,浮点型,布尔等类型和字符串的转换;FormatBool -- "true"/"false"FormatFloatFormatIntForma...

2019-07-07 21:48:49 445

原创 golang代码笔记 -- timer

Timer案例分析func FailureCase() { i := 0 go func() { for { i = i + 1 time.Sleep(time.Second) if i > 5 { break } } }() for { exit := false select { // 避免使用for...

2019-05-22 11:23:58 410

原创 golang代码笔记 --pprof的基本使用和程序性能分析

背景由于最近线上服务业务量正大暴露出一些性能问题(CPU比日常翻倍、内存释放过程不如预期),所有,不得不借助golang提供的系列工具来分析,帮助快速定位问题代码段,进而优化代码逻辑的(加深对语言特性的理解);主要内容pprof工具的使用trace日志信息1. pprof工具的使用主要package:// 性能分析基础包"runtime/pprof"// web封装“net...

2019-03-31 21:52:14 491

原创 golang代码笔记 -- 使用pid文件控制程序多实例运行

主要包含golang对pid操作的封装和程序状态判断package mainimport ( "fmt" "io/ioutil" "os" "os/signal" "strconv" "syscall")func main() { pid, exist := PidfileExit("./test_pid") if exist { i

2018-12-31 11:19:27 1886 4

原创 golang代码笔记 -- 优雅退出的程序(服务)

主要内容1. 程序为什么需要优雅退出2. 实现办法(举例)3. 总结1. 程序为什么需要优雅退出原因很简单,我们都不希望自己的程序被异常关闭或者ctrl+c给直接干掉,或许我们这回正在写数据库,或许正在完成一个复杂的计算流程;我们希望程序能在完成手头的工作之后才关闭,就好比编辑器退出是自动保存一样,防止之前的工作白费,更糟糕的是,导致异常或者不一致的数据;2.实现办法(举例)其实实...

2018-12-17 22:46:27 3949

原创 国内Docker镜像加速(gcr.io,docker.io)

主要内容问题分析解决方案1. 问题分析由于国内网络原因,对于gcr.io和docker.io的访问慢甚至是不可用,而像Kubernetes,istio等流行的开源项目的容器镜像都在这两个域名之下;2.解决方案使用阿里云开发者平台构建并上传到阿里云公有镜像库中 (https://cr.console.aliyun.com) 阿里云镜像服务支持国外服务器构建并上传到...

2018-07-13 16:02:17 10826

原创 基于NATS构建微服务发布/订阅机制实践

文章内容NATS & NATS Streaming 介绍使用场景分析实践方案介绍总结1. NATS & NATS Streaming 介绍相关参考官方文档:https://www.nats.io/documentation/ 开源代码:gnatsd(NATS):https://github.com/nats-io/gnatsdnats-stre...

2018-07-13 15:45:05 10228

原创 基于canal实现跨数据库订阅

文章内容canal项目介绍canal server部署实践canal client应用示例总结1.canal项目介绍项目地址:https://github.com/alibaba/canalwiki文档:https://github.com/alibaba/canal/wiki简单来说,canal的原理就是模拟一个slave客户端与数据库(master)进行通信,以b...

2018-07-09 18:03:41 2920

转载 编写地道的Go代码

如题,很有参考价值的文章:http://colobu.com/2017/02/07/write-idiomatic-golang-codes/#%E4%B8%80%E4%BA%9B%E5%90%8D%E7%A7%B0

2018-07-07 16:22:10 226

原创 微服务/kubernetes环境下的配置管理

文章内容1.问题分析 2.现状分析 3.解决办法 4.结果分析和以前单体应用不同,在微服务的架构下,多环境,多版本,多实例的特点更加明显,特别是添加了CI/CD流程之后,服务配置文件的管理显得额外重要;目前,也有一些已有的实现,比如kubernetes中的configMap以及CRD,如果你仅仅需要一种轻量和平台无关的实现,可以参考我这个简陋的方案。 注:以下所说的配置不包括...

2018-07-06 20:21:34 1613

原创 容器数量增加导致fs.inotify.max_user_instances超过限制

文章内容1.现象描述 2.问题分析 3.解决办法 4.总结 5.参考链接1.现象描述平台架构:Rancher,k8s,微服务问题的出现发生在最近,当服务的数量增加到一定程度时,出现了容器日志不定期丢失的情况,通过以下方式均没有日志信息输出: 1)通过Rancher,Kubernetes UI查看容器日志 2)通过docker logs查看2.问题分析2....

2018-07-06 10:23:27 4717 1

原创 Golang学习笔记1-组合和接口

主要内容1.组合2.接口3.常见问题4.总结1.组合Golang中没有OOP中继承的概念,取而代之的是组合,同样起到属性和方法继承 的作用,特别是匿名组合,其表现形式和继承的行为类似,但是却有很多不同的地方,相对于继承、多态这些典型的OOP思想,组合显得更加简洁灵活。1.1.一般组合type Wifi struct { Name string}ty...

2018-03-01 21:42:34 600

原创 kubernetes环境搭建(Rancher篇)

主要内容1.Rancher介绍2.通过Rancher部署kubernetes环境(国内加速)3.问题分析4.总结1.Rancher介绍中文官网:https://www.cnrancher.com/ 官方简介:http://rancher.com/docs/rancher/v1.6/zh/ - 容器管理平台 - 一套解决容器平台网络、存储、负载均衡等的基础设施服务 ...

2018-02-17 17:38:20 11632

原创 Qt笔记整理

本文为Qt开发相关的笔记整理,比较零散不成系统; Qt摄像头简单使用http://www.cnblogs.com/annt/p/ant_000.htmlhttp://blog.csdn.net/leixiaohua1020/article/details/38284961 Qt程序打包发布 http://blog.csdn.net/cupidove/...

2018-02-16 17:19:06 229

原创 kubernetes环境搭建(手动篇)

主要内容1.环境准备(2主机)2.安装流程3.问题分析4.总结1.环境准备(2主机)系统:CentOS 7.3 x64 网络:局域网(VPC) 主机: master:172.16.0.17 minion-1:172.16.0.71.1.修改host配置修改master和minion-1的host文件,使得各主机可通过主机名访问,方便更新和迁移;echo "1...

2018-02-16 16:53:57 3429

原创 Golang项目管理实践一--Golang包管理特点以及Glide工具的使用

文章内容Golang包管理的特点Golang包管理的注意点结合Glide工具进行包管理实践总结 由于Golang特殊的包管理策略,同时,目前并没有成熟的包管理工具,因此需要我们在管理Golang项目时,需要首先考虑适合项目的一种包管理策略,已达到“ReproducibleBuild”的最终目的; 注:文章基于Golang 1.7+1.Golang包管理的特点

2018-01-10 18:35:43 8770

原创 CBoard框架数据集实现--DataProvider

文章内容相关类分析Lambda聚合实现数据源聚合实现(JDBC)总结 前段时间在使用Cboard,一致觉得这个框架的DateProvider的实现是核心的内容(其他的就一般般咯……哈哈),所以,最近花了点时间研究了DataProvider的实现,这里只能简单的分析一下它的实现,可以给大家在开发过程中提供一种思路。

2017-12-01 17:29:45 5955 10

原创 CBoard框架使用总结七--添加首页图表

文章内容原理概括数据库调整前端实现总结1.原理概括在实际运用中我们可能不希望首页空白,同时希望用户客户化的配置自己想显示的图表,于是有了文章下面将要谈及的内容。首先,由于是用户级的设置,需要在数据库建立对应的配置表(比如dashboard_user_option),用于保存用户相关配置;其次,需要用户主页布局配置功能界面,可以参考引用系统原有的“看板设计”功能;最后,就是图表的渲染了,同样

2017-11-17 10:45:31 10536 21

原创 Spring Security--概念概览

文章内容UserDetail && UserDetailServiceAuthenticationManager && AuthenticationProviderAccessDecisionManager && SecurityMetadataSource总结 本文重要是对Security使用过程中相关概念的总结

2017-11-05 17:03:44 1089

原创 通过Docker部署Maven私服和使用

主要内容1.获取初始镜像 2.创建基础容器 3.在容器中安装Nexus服务器 4.使用Nexus管理第三方镜像 5.发布自己的镜像 6.Web项目发布 7.资源1.获取初始镜像这里在阿里上面找了一个网友的基础镜像,免去配置jdk和maven环境docker pull

2017-10-13 16:12:40 2992

原创 阿里大于短信平台使用

1.通过官方文档,创建用户阿里云短信服务文档使用指引快速入门短信服务-阿里云 https://help.aliyun.com/document_detail/59210.html?spm=5176.doc55288.6.542.25Ra1M2.配置短信专用子用户建议使用子用户管理策略,遵循权限最小化原则2.1.通过实名认证,开通访问控制 RAM创建用户组(专用于短信平台)–》授权–》创建用户–》关

2017-10-09 10:25:25 1310

原创 Docker学习--环境搭建和使用

文章内容1.Docker环境搭建 2.容器的创建 3.镜像导入/导出 4.常用远程API(命令)使用Docker最突出的优势有两点: 1.应用打包部署和测试,解决平台和应用依赖的问题; 2.结合虚拟平台的支持,充分利用资源和虚拟化特性;1.Docker环境搭建

2017-09-24 13:08:34 473

原创 Java 8特性学习 --- Lambda表达式

文章内容1.匿名类2.函数式接口3.lambda表达式4.lambda表达式、函数接口和Stream接口在数据处理上的运用

2017-09-14 19:08:17 287

原创 Spring基础特性总结二 --- 核心组件Core以及Resource的设计

文章内容1.Core组件的作用 2.Core提供的工具类 3.Resource接口的设计 4.总结1.Core组件的作用Core是主要提供Spring框架使用的一些基础操作的实现(包括convert、io、task等);在Spring框架中起到核心工具类的作用;2.Core提供的工具类2.1.类型转换(convert)最外层定义了类型转换相关的类型和异常;

2017-09-10 23:23:51 362

原创 Spring基础特性总结一--核心组件Bean的使用

文章内容0.Spring整体特性 1.Bean组件的介绍 2.Bean的定义、创建、解析 3.Bean的使用0.Spring整体特性Spring的整体架构可划分为两部分:核心组件和特性功能; 其中核心组件功能包括Core、Bean、Context,Core在Spring框架中用于提供基础操作的工具组件;Bean则用于封装Object来进行一系列操作和管理;Context是一个Bean关系的集

2017-09-03 12:36:16 636

原创 Servlet常见使用和操作

文章内容1.重定向 2.Cookie和Session操作 3.异常处理 4.文件上传下载以上使用大多是针对HttpRequest和HttpResponse进项操作,这两个对象基本包含的与Http相关的参数和操作;1.重定向重定向主要分为两种方式,一种是服务器端通过RequestDispatcherforward的转发请求,对客户端是透明的;另一种是通过HttpResponse

2017-08-13 14:46:06 325

原创 CBoard框架使用总结五--角色权限控制

文章内容1.权限管理策略分析 2.权限管理策略实现 3.策略调整1.权限管理策略分析Cboard将系统所有资源分为两类:

2017-08-13 10:12:33 4531 2

原创 JSP语言基础

文章内容1.JSP语言原理 2.JSP基础指令和动作 3.JSP内置对象 4.JSP标准标签库JSTL、EL表达式1.JSP语言原理JSP作为一种在在服务器端执行的页面语言,它支持在页面中嵌入Java代码,来构建动态页面;然而,在本质上JSP在被请求时,Web服务器的JSP引擎会将其Java转封装成一个对应的Servlet,而页面本身静态页面部分则通过println输出;最终返回给用户的依旧是

2017-08-06 15:15:03 573

原创 CBoard框架使用总结五--扩展菜单配置功能

文章内容1.数据表定义 2.后端调整 3.前端调整 4.功能使用方式 5.实现管理界面 6.总结1.数据表定义由于Cboard原生的菜单项配置在Java代码中,通过static代码块初始化,要实现菜单配置功能,需要建立相关的数据库表来存储菜单信息;1.1.dashboard_menu数据表定义(MySQL) 仅做参考 字段名 类型 字段含义 备注 menu_id b

2017-08-04 17:36:03 7337 9

原创 CBoard框架使用总结三--AdminLTE可扩展性分析

文章内容1.AdminLTE依赖 2.AdminLTE整体架构 3.总结

2017-07-31 11:28:10 3997

原创 CBoard环境配置(JRE/Tomcat/MySQL)

文章内容1.服务器环境 2.安装Java运行环境并配置环境变量 3.配置Tomcat 4.安装MySQL数据库和配置 5.设置Tomcat/Mysql自启动 6.项目部署 7.附录1.服务器环境系统版本:CenOS 7.2 64位

2017-07-28 11:17:29 5529 2

原创 CBoard框架使用总结二--扩展新的功能模块

文章内容1.添加新的菜单项 2.完成后台处理逻辑 3.整体流程1.添加新的菜单项1.1.提供菜单数据基础的CBoard框架菜单项需要在代码里面(Service层)配置,由于是以list形式存储,有必要的时候也能够通过数据库实现;/*org.cboard.services.MenuService */public class MenuService { priv

2017-07-25 20:18:54 8644 11

原创 CBoard框架使用总结一

文章内容1.功能介绍 2.源码结构分析 3.总结1.功能介绍1.1.整体界面 (CBoard支持中英文版本)左侧功能依次为: 已创建的数据面板:包含已经创建的DashBoard 配置功能:DashBoard配置功能集 管理:主要是用户管理(Spring-Security)1.2.DashBoard配置功能主要包括: 数据源定义:支持Elasticsearch、saiku、TextF

2017-07-19 16:21:17 30320 17

原创 从Tomcat的架构谈Servlet职责

文章内容1.Tomcat框架概述和分析 2.Servlet的实现原理概述 3.Servlet在Tomcat中作用1.Tomcat框架概述和分析Tomcat作为典型的Servlet容器(除此之外还有Jetty、Weblogic、JBOSS等),分析和了解Tomcat的整体框架对于了解Servlet在Web开发中的作用很有帮助,有利于加深理解;Tomcat服务器模块划分十分清晰,主要有三个部分组成:

2017-07-18 21:18:56 781

原创 Https协议的使用--服务器端和客户端

文章内容1.Web服务器(tomcat)端配置 2.客户端(HttpClient)实现(Get/Post)1.Web服务器(tomcat)端配置1.1.服务器证书生成 使用keytool按照提示创建一个证书,如果以后真正在产品环境中使用肯定要去证书提供商去购买,证书认证一般都是由VeriSign认证,中文官方网站:http://www.verisign.com/cn/,需要注意

2017-07-16 16:33:28 4387

原创 HttpClient帮助文档总结

文章内容1.HttpClient的主要对象 2.HttpClient特性和机制1.HttpClient的主要对象1.1.URI(资源定位) URI用来定位请求的资源的位置,URI的组成为:[scheme:][//host:port][path][?query][#fragment]在HttpClient中通过构造者模式创建URI;1.2.HTTP request(Http请求)

2017-07-13 21:16:22 1914

原创 Java I/O机制总结

Java常见的I/O机制都是通过同步的方式实现的,其中又分BIO(阻塞)和NIO(非阻塞),传统的BIO方式一次(一个线程)只能同时处理一个I/O操作,对于需要同时处理多个客户端的请求,需要建立对应数目的线程数,对于系统资源是一个很大的开销;而在NIO的机制中,将所有的I/O操作交由Selector来统一调度,当某个通道(Channel)有可读/写数据时,由Selector来完成通道上的数据传输,在

2017-07-09 19:52:53 259

原创 Java语言基础

1.                                                                                                                      Java语言基础1.1.                                                                

2017-07-09 19:49:31 164

空空如也

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

TA关注的人

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