Go语言中文网 为您找到相关结果 35

一个新颖简便的golang orm . 容易比较容易上手。

About 一个数据库ORM. How to use? Insert go get github.com/ablegao/orm 例子 //引用模块 import "github.com/ablegao/orm" //mysql 驱动 import _ "github.com/go-sql-driver/mysql" //建立连接 // 参数分别为 名称 , 驱动, 连接字符串 // 注:必须包含一个default 连接, 作为默认连接。 orm.NewDatabase("default" , "mysql" , "user:passwd@ip/database?charset=utf8") //建立一个数据模型。 type UserInfo struct { orm.Object Id i...阅读全文

博文 2015-01-01 08:00:01 Able

Golang在京东列表页实践总结

目前线上状态 基于搜索实现; 全量数据,搜索结果不理想; 接口响应时间长,影响了用户体验; 没法针对数据做二次优化; 转化率相对较低; 基于以上原因,需要做出改变,所以就需要对老进行重构,如下 重构版本 非全量数据,线下异步根据数据模型进行进行筛选部分最优数据; 要求时时过滤计算,接口相应时间要快,保证用户体验; 数据进行优化,提高转换率,提搞GMV; 为何选择golang golang语言强大的并发能力; 与C相媲美的性能,新版对cpu计算要求较高; 基于以上两点,所以选择了golang语言作为服务端计算使用的语言。 重构后的架构图 解释下架构图各个模块功能 Nginx+Lua: 用来渲染页面,拿到go计算服务的json数据渲染到页面端,最终呈现给终端用户; Config Center 是...阅读全文

博文 2015-09-01 13:47:00 张洪涛

服务监控系统 Prometheus

Prometheus 是一个开源的服务监控系统和时间序列数据库。 ![image](http://static.oschina.net/uploads/space/2015/0205/082749_47Dp_5189.png) 特性: * 高维度数据模型 * 自定义查询语言 * 可视化数据展示 * 高效的存储策略 * 易于运维 * 提供各种客户端开发库 * 警告和报警 * 数据导...阅读全文

由Go语言并发模型想到游戏服务器并发

这段时间看了一些Go语言相关的东西,发现Go语言的最大特性并发模型类似于C++里面的线程池,正好我们项目服务器也是用的线程池,记录下。 Go语言的并发单位是语言内置的协程,使用关键字go+函数创建一个新的协程,新创建的协程会自动加入到协程调度上下文的等待调度队列,一个协程调度上下文对应一个线程,一个协程调度上下文对应多个协程。新加入的协程会动态负载到各个调度上下文,如果所有调度上下文的平均负载较高时,总调度器会自动创建新的线程和对应的调度上下文用于工作。整体上看,是N个线程:N个调度上下文:M个协程的关系。 我们项目服务器线程架构使用boost::threadpool作为底层,按照配置设定的线程数量启动threadpool,驱动所有Invoker单元,各个Invoker再驱动持有自己的Ser...阅读全文

博文 2014-10-17 03:00:01 gns3

金融领域的区块链项目 Chain

Chain是由一家刚成立两年的美国创业公司Chain推出,是一个企业级的区块链平台架构,可以让机构构造从零开始更好的金融服务。 作为区块链供应商,Chain在过去的两年多时间中获得了极好的信用。Chain通过将专属区块链和分布式总账的源代码进行开放,可以让更多的人在其软件上增加应用或是建立专属网络。Chain核心开发者版本的创建花费了数年时间,它是区块链供应商和金融机构合作的直接产物。由于这个开源软件针对的是金融领域,因此它允许用户创建和发行他们自己认为合适的数字资产。 Chain 开放标准在以下方面实现突破: • 全新的共识模型在不到一秒的时间里实现交易的最终完成,即便是交易量非常大也能支持 • 私密解决方案对区块链数据进行加密,并让相关对手方和监管者进行有选择的读...阅读全文

开源分布式监控系统 OWL-Go

OWL 是 TalkingData 公司推出的一款开源分布式监控系统 * Go 语言开发,部署维护简单 * 分布式,支持多机房 * 多维的数据模型,类 opentsdb * 支持多种报警算法,报警支持多条件组合、克隆 * 灵活的插件机制,支持任意语言编写,支持传参 * 丰富的报警渠道,邮件、微信、短信 * 原始数据永久存储 * 自带 Web 管理界面以及强大的自定义图表功能 **系统架构** ![image](https://static.oschina.net/uploads/space/2016/1219/125459_fwZh_2720166.png) **Demo** [http://54.223.127.87/](http://54.223.127.87/)...阅读全文

Prometheus 系统监控方案 一

最近一直在折腾时序类型的数据库,经过一段时间项目应用,觉得十分不错。而Prometheus又是刚刚推出不久的开源方案,中文资料较少,所以打算写一系列应用的实践过程分享一下。 Prometheus 是什么? Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作。google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。 Prometheus 的优点 非常少的外部依赖,安装使用超简单 已经有非常多的系统集...阅读全文

Golang: 有限状态自动机

有限状态机 又简称FSM(Finite-State Machine的首字母缩写)。这个在离散数学里学过了,它是计算机领域中被广泛使用的数学概念。是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。编译原理学得好的童鞋应该对FSM不陌生,因为编译器就用了FMS来做词法扫描时的状态转移。 FSM的概念在网上一搜可以搜一大堆出来,但估计您也看不大明白。本文将以不一样的方式来讲述FSM的概念以及实现。 现实生活中,状态是随处可见的,并且通过不同的状态来做不同的事。比如冷了加衣服;饿了吃饭;困了睡觉等。这里的冷了、饿了、困了是三种不同的状态,并且根据这三个状态的转变驱动了不同行为的产生(加衣服、吃饭和睡觉)。 FSM是什么 所谓有限状态机,就是由有限个状态组成的机器。再看上面举到的例子:人...阅读全文

使用GoAdmin极速搭建golang应用管理后台

GoAdmin介绍 GoAdmin是一个基于golang的数据可视化后台搭建框架,内置了管理后台的rbac权限系统,登录以及一个crud逻辑与视图生成的插件。支持不同主题更换,支持添加插件形式添加不同应用进行功能扩展。 官网:https://www.go-admin.cngithub地址:https://github.com/GoAdminGro...在线demo:https://demo.go-admin.cn文档地址:https://book.go-admin.cn/zh 上手 这里直接实战介绍如何上手,最小化的实现一个真实应用的数据管理后台。我从github搜索到了这样一个golang的web例子:eddycjy/go-gin-example,我们以这个简单例子为例来搭建这个应用的管理...阅读全文

博文 2020-03-31 16:33:46 cg33

关于Golang过滤敏感信息的正确姿势

今天正好看到一篇关于敏感信息过滤的文章,这算做一个interface实际应用的一些举例和应用。 例子中介绍了一种比较常见的使用场景:使用JSON保存数据时的对诸如用户密码等信息进行保护时候应该做的事情。作者以使用JSON格式保存用户账户和密码为例,讲解了使用json.Unmarshaler接口类型过滤敏感信息。 比如,对于保存敏感数据的结构体: 1234567891011type Credentials struct { Email string `json:”email”` Password string `json:”password”`}func (co Credentials) MarshalJSON() ([]byte, error) { type credentials Cred...阅读全文

博文 2018-10-08 19:09:02 ipfans's Blog

大数据机器学习框架(弥勒佛) MLF

**让天下没有难做的大数据模型!** # 功能 下面是弥勒佛框架解决的问题类型,括号中的斜体代表尚未实现以及预计实现的时间 * 监督式学习:[最大熵分类模型](https://github.com/huichen/mlf/blob/master/doc/maxent.md)(max entropy classifier),决策树模型(decision tree based models,_2014 Q1_) * 非监督式学习:聚类问题(k-means,_2014 Q1_) * 在线学习:[在线梯度递降模型](https://github.com/huichen/mlf/blob/master/doc/online.md)(online stochastic gradient des...阅读全文

Golang RESTful API的简单实现

RESTfull API是现在很流行的API设计风格。众所周知HTTP1.1规范正是基于REST架构风格的指导原理来设计的。需要注意的是,REST是一种风格而不是标准。如果一个架构复合REST原则,我们就称它为RESTful架构。 先来实现一个最简单的,启动一个RESTFul服务。代码示例:package mainimport ("net/http""fmt""html""log")func main() {http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {fmt.Fprintln(writer, "Hello, ", html.EscapeString(request.URL.Path...阅读全文

博文 2018-07-25 17:20:06 yuluxs

MongoDB 上市后,带你认识这款非同一般的文档数据库

本文地址:https://linux.cn/article-9006-1.html 2017-10-28 20:18 收藏: 1 10 月 20 日,位于纽约的 MongoDB 在纳斯达克上市,当日收于 32.07 美元,比 24 美元的 IPO 价格高出 34%。MongoDB 首席财务官 Michael Gordon 放言:MongoDB 在数据库系统这个市场大有机会取代 IBM 和 Oracle!如此的霸气,底气哪里来? 大数据和云计算的风被谷歌吹起来的时候,被谷歌收购的网络广告公司 DoubleClick 的原 CEO 和 CTO 们觉得自己应该蹭上时代的列车,再次创业,然后 10gen 公司就这样在纽约诞生了。它的创始人分别是 DoubleClick 的创始人兼 CTO 德怀特 ·...阅读全文

监控系统:Prometheus源码分析

第一次接触Prometheus就被深深吸引,决定阅读源码,了解它的设计方式。首先分析的是pull metrics部分,讨论Prometheus是如何从目标点采集数据的。 Prometheus 的主要优势有: * 由指标名称和和键/值对标签标识的时间序列数据组成的多维数据模型。 * 强大的查询语言 PromQL。 * 不依赖分布式存储;单个服务节点具有自治能力。 * 时间序列数据是服务端通过 HTTP 协议主动拉取获得的。 * 也可以通过中间网关来推送时间序列数据。 * 可以通过静态配置文件或服务发现来获取监控目标。 * 支持多种类型的图表和仪表盘。 目前总结了两篇,欢迎交流: * [一、Prometheus源码分析之:数据采集](http://ldaysjun.com/2019/11/13/...阅读全文

Java面试题大全(流行的框架部分)

1、什么是MVC模式? MVC (Model View Controller) 是一个设计模式,使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以应用于不同的表现形式。MODEL: 封装了所有的商业逻辑以及规则。通常被JavaBean或EJB实现。VIEW: 使用商业逻辑处理后的结果并构建呈现给客户端的响应。通常被JSP实现。CONTROLLER:管理和控制所有用户和应用程序间的交互。通常是一个servlet接收用户的请求并把所有的输入转交给实际工作的MODEL。最后调用JSP返回输出。MVC模式的好处: 1.各施其职,互不干涉 在MVC模式中,三个层各...阅读全文

博文 2018-09-17 14:36:09 Java1122zzz

TODO:Golang UDP连接简单测试慎用Deadline

TODO:Golang UDP连接简单测试慎用DeadlineUDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。 1.Golang UDP服务 package main import ( “f...阅读全文

博文 2017-02-10 15:49:47 OneTODO

Node.js-Koa2框架生态实战-从零模拟新浪微博

​Node.js+Koa2框架生态实战 - 从零模拟新浪微博 完整无密 【点击下载】课程为纯实战项目,从零模拟开发一个基本功能完备的微博系统(包括注册、登录、关注和取关,微博浏览、创建和回复,及 @ 关注人等各个功能),带你完成整个Koa2框架生态的综合技术实战,包括各类中间件,MySQL数据库设计,微博项目架构等诸多干货内容,最后带你回顾整个开发过程,从技术层面总结 Node.js 的最佳实践经验适合人群有 Node.js 基础,但想继续提升能力的同学技术储备要求掌握Node.js基础熟悉 es6 语法了解 Koa2或 Express 框架章节目录:第1章 课程介绍介绍课程内容,演示微博的最终成果1-1 导学 试看第2章 技术选型和知识点介绍(上)从框架、数据库、ORM 工具、登录注册、单...阅读全文

博文 2020-01-07 02:12:03 yimengshan

IPFS数据模型-IPLD

ipld.io Github:ipld 原文:IPLD specs 有许多系统使用merkle-tree和hash-chain受启发的数据结构(例如git,bittorrent,ipfs,tahoe-lafs,sfsro)。IPLD(星际链接数据)定义: merkle-links:merkle-graph的核心单元 merkle-dag:任何边为merkle-links的图。dag代表“有向无环图” merkle-paths:使用命名的merkl-links来遍历merkl-dags的unix风格的路径。 IPLD格式:可以表示IPLD对象的一组格式,例如JSON,CBOR,CSON,YAML,Protobuf,XML,RDF等。 IPLD规范格式:一种序列化格式的确定性描述,确保相同的逻辑...阅读全文

有限状态机FSM的原理与GO的实现

有限状态机(Finite-state machine, 简写FSM)又可以称作有限状态自动机。它必须是可以附着在某种事物上的,且该事物的状态是有限的,通过某些触发事件,会让其状态发生转换。为此,有限状态机就是描述这些有限的状态和触发事件及转换行为的数学模型。 有限状态机组成 有限状态机有两个必要的特点,一是离散的,二是有限的。基于这两点,现实世界上绝大多数事物因为复杂的状态而无法用有限状态机表示。 而描述事物的有限状态机模型的元素由以下组成: 状态(State):事物的状态,包括初始状态和所有事件触发后的状态 事件(Event):触发状态变化或者保持原状态的事件 行为或转换(Action/Transition):执行状态转换的过程 检测器(Guard):检测某种状态要转换成另一种状态的条件是...阅读全文

博文 2017-07-24 02:13:43 陈康stozen

MongoDB基础

在此之前要了解关系型数据库与非关系型数据库 关系型数据库(mysql , oracle, sqlserver,db2) 大部分收费 支持关系关联 支持SQL语句查询 更好的对事务支持 存储过程 函数 视图。。。 非关系型数据库 NOSQL : (NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。 NoSQL数据库的四大分类 键值([Key-Value]*)存储数据库 关系型数据库与非关系型数据库区别 关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织 优点...阅读全文

博文 2019-09-26 14:33:11 aside section ._1OhGeD

zetcd:让应用解除对ZooKeeper的依赖

【编者的话】etcd团队最近发布了zetcd的beta版本,一款能够让etcd兼容Zookeeper协议的代理工具,用户可以通过它解除现有应用对Zookeeper服务的依赖。 分布式系统通常都依赖一个仲裁系统协同工作,一般这样的系统通过仲裁来保证信息的准确传达,以避免出现脑裂。这类系统通过牺牲通用性换来了充分的设计余地,这种做法显然已经被不断扩散的各种具体实现所例证。这样的系统有很多,例如:chubby,ZooKeeper,etcd和consul等。尽管这些系统的理念和协议不同,但是提供的都是类似的基于key-value的分布式仲裁。作为将etcd打造成分布式系统最受瞩目的基础组件计划的一部分,etcd团队开发了一款全新的代理,zetcd,无需变动就可以让etcd集群消费ZooKeeper的...阅读全文

博文 2017-06-21 02:07:33 hokingyang

Nebula Graph 的数据模型和系统架构设计

本篇主要介绍 Nebula Graph 的数据模型和系统架构设计。 有向属性图 DirectedPropertyGraph Nebula Graph 采用易理解的有向属性图来建模,也就是说,在逻辑上,图由两种图元素构成:顶点和边。 image.png 顶点 Vertex 在 Nebula Graph 中顶点由标签 tag 和对应 tag 的属性组构成, tag 代表顶点的类型,属性组代表 tag 拥有的一种或多种属性。一个顶点必须至少有一种类型,即标签,也可以有多种类型。每种标签有一组相对应的属性,我们称之为 schema 。 如上图所示,有两种 tag 顶点:player 和 team。player 的 schema 有三种属性 ID (vid),Name (sting)和 Age (in...阅读全文

区块链教程Fabric1.0源代码分析Ledger(账本)二

区块链教程之Fabric1.0源代码分析Ledger(账本)二。 Fabric 1.0源代码笔记 之 Ledger(账本) 补充PeerLedger接口嵌入的commonledger.Ledger接口定义如下: type Ledger interface { GetBlockchainInfo() (*common.BlockchainInfo, error) //获取blockchain基本信息 GetBlockByNumber(blockNumber uint64) (*common.Block, error) //按给定高度获取Block,给定math.MaxUint64将获取最新Block GetBlocksIterator(startBlockNumber uint64) (Res...阅读全文

博文 2018-10-31 17:34:41 兄弟连区块链

涂鸦智能分布式定时调度系统Sigmax设计与实践

1.导读 Sigmax是涂鸦智能中间件团队基于Golang开发的一款高性能,分布式的定时任务调度引擎。针对IoT领域特有的复杂多样的定时任务场景,Sigmax提供了一套统一,稳定,精准的定时调度平台,来协助公司内各业务线方便的实现定时场景。 目前Sigmax已经在公司内部稳定运行了1年时间,单集群的日任务调度、日均任务触发数达千万次。 2.背景 涂鸦智能作为全球领先的AI+IoT平台,连接着海量的智能设备,每天会有大量的用户控制自己的智能设备以实现一些智能化的场景,比如: 用户A,每天早上7点自动打开窗帘; 用户B,当访客通过智能门禁之后,定时移除访客的权限; 用户C,日出或者日落之后,延时执行一个联动的场景,等等; 除此之外,我们的内部服务之间也存在大量的定时任务,比如: BI同学每天定时...阅读全文

博文 2020-05-30 08:32:42 涂鸦智能技术团队

Prometheus 监控 k8s集群(介绍)

一、介绍 本文介绍Prometheus 监控及在k8s集群中使用node-exporter、prometheus、grafana对集群进行监控。实现原理类似ELK、EFK组合。node-exporter组件负责收集节点上的metrics监控数据,并将数据推送给prometheus, prometheus负责存储这些数据,grafana将这些数据通过网页以图形的形式展现给用户。 1. 在开始之前有必要了解下Prometheus是什么? Prometheus (中文名:普罗米修斯)是由 SoundCloud 开发的开源监控报警系统和时间序列数据库(TSDB).自2012年起,许多公司及组织已经采用 Prometheus,并且该项目有着非常活跃的开发者和用户社区.现在已经成为一个独立的开源项目。P...阅读全文

图解kubernetes中api聚合机制的实现

kubernetes中apiserver的设计无疑是复杂的,其自身内部就包含了三种角色的api服务,今天我们一起来臆测下其内部的设计,搞明白aggregator、apiserver、apiExtensionsServer(crd server)的设计精要 1.从web服务到web网关到CRD apiserver还是蛮复杂的,今天我们只讨论其kube-aggregator/apiserver/apiextensions三者架构上的设计,而不关注诸如请求认证、准入控制、权限等等 1.1 最基础的REST服务 一个最基础的Rest服务通常会包括一个resource资源和一组HTTP请求的方法, 在kubernetes中被称为一个REST,其内部还内嵌了一个Store(可以理解为继承),其提供了针...阅读全文

博文 2020-03-04 18:35:26 8小时_2020

新手练习-消费者生产者模型

``` package main import ( "fmt" "math/rand" "sync" ) func main() { c := sync.NewCond(&sync.Mutex{}) queueList := make(chan int, 10) //producer go func() { for { c.L.Lock() if len(queueList) == 5 { c.Wait() } num := rand.Intn(100) fmt.Println("Producer:", num) queueList <- num if len(queueList) == 5 { c.Signal() } c.L.Unlock() } }() //consumer go fu...阅读全文

博文 2018-12-29 10:36:07 liuzhang

基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(v6.9.0版)

TableGo_20200520 v6.9.0 正式版发布,此次版本更新如下:1、新增对JDK9及以上版本Java环境的支持2、生成JavaBean更名为生成数据模型并且提供了C#、C++、Golang、Rust、Python、Objective-C、Swift等编程语言数据模型的简单模板3、新增生成SpringBoot项目工程的功能,在生成自定义文件界面直接生成一个可以跑起来的项目4、新增对数据库视图的支持5、新增大量自定义模板示例6、新增SQL查询导出数据功能,在生成自定义文件时通过配置SQL查询数据导出生成任何需要的文件7、新增一些内置静态对象用于生成自定义文件时使用,例如:org.apache.commons.lang.StringUtils8、移除是否目录直通,如果文件保存路径设置...阅读全文

博文 2020-05-31 22:33:14 TableGo