5 琦彦

尚未进行身份认证

Find out who you are,and be that person.

等级
TA的排名 602

Go基础:指针、Map、结构体

指针Go语言中的函数传参都是值拷贝,当我们想要修改某个变量的时候,我们可以创建一个指向该变量地址的指针变量。区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。要搞明白Go语言中的指针需要先知道3个概念:指针地址、指针类型和指针取值。指针地址和指针类型Go语言中的指针操作非常简单,只需要记住两个符号:&(取地址)和*(根据地址取值)。每个...

2020-02-17 17:51:35

Kindle:电子书资源

Kindlehttps://www.d4j.cn/http://www.iread.cf/https://5kindle.com/电子书转换http://www.alltoall.net/mobi_azw3/https://convertio.co/zh/download/

2020-02-16 08:05:02

Go1.13:使用go mod 管理依赖, 提示cannot find module providing package或cannot find main module

问题现象编译go程序的时候报错:GOROOT=D:\go\GoSDK #gosetupGOPATH=D:\hc\workspace\fly\go\src\github.com\learngo;D:\hc\workspace\fly\go #gosetupD:\go\GoSDK\bin\go.exe build -o C:\Users\FLY\AppData\Local\Temp\__...

2020-02-13 17:27:42

Go:包管理工具GOPATH、vendor、dep 、go module

Go包管理工具:前言Golang一直存在一个被人诟病的问题是缺少一个官方的包依赖管理工具。从我个人的角度上来看存在两个问题:GOPATH特性对于多工程的情况下,支持不算友好。 GOPATH无法对依赖包进行有效的版本管理,没有任何地方能够表明依赖包的具体版本号,无法简单清晰获取到有效的依赖包版本信息等。GOPATH在 go mod 出现之前,所有的 Go 项目都需要放在同一个工...

2020-02-13 17:05:56

GOPROXY:解决 go get golang.org/x 包失败

问题现象当我们使用go get、go install、go mod等命令时,会自动下载相应的包或依赖包。但由于众所周知的原因,类似于golang.org/x/...的包会出现下载失败的情况。如下所示:package golang.org/x/tools/cmd/goimports/...: unrecognized import path "golang.org/x/tools/...

2020-02-10 22:10:57

GoLand:设置gofmt与goimports,保存时自动格式化代码

GoLand也支持在保存代码时,自动调用gofmt和goimports来自动格式化代码。在最新版的GoLand(2019.3)中,是通过File Watchers插件来实现此功能的。在此介绍一下GoLand中如何设置:首先,得保证安装了一个叫做”File Watchers”的插件,并设置为启用状态:然后,直接在Tools -> File Watchers中,添...

2020-02-10 21:54:49

Go基础:下划线“_”、变量和常量、数组、slice

目录前言:Go语言的设计初衷Go语言很特别Go语言的主要特征GO概览Go基础Go语言声明下划线(很特殊)变量声明常量声明数组切片Slice前言:Go语言的设计初衷针对其他语言的痛点进行设计 并加入并发编程 为大数据、微服务、并发而生的通用编程语言Go语言很特别没有“对象”,没有继承多态、类等,没有泛型,没有try/cat...

2020-02-08 18:12:37

Dubbo整合seata实现分布式事务

概览操作步骤如下:1.seata-server端,修改server配置2.client端(你自己的项目),引入配置文件,修改配置文件3.数据源代理设置4.创建数据库表5.启动注册中心(ZK),启动server,启动client(包括订单服务,库存服务)1.此demo技术选型及版本信息运行环境版本要求jdk1.8+Spring Boot1.5+...

2020-02-06 16:37:20

springcloud整合seata实现分布式事务

概览操作步骤如下:1.seata-server端,修改server配置2.client端(你自己的项目),引入配置文件,修改配置文件3.数据源代理设置4.创建数据库表5.启动注册中心(eureka),启动server,启动client(包括订单服务,库存服务、账户服务)1.此demo技术选型及版本信息注册中心:eureka 2.1.2服务间调用:feign 2.1.2...

2020-02-06 15:24:38

深入浅出 gRPC 03:gRPC 线程模型分析

1. RPC 线程模型1.1 BIO 线程模型在 JDK 1.4 推出 Java NIO 之前,基于 Java 的所有 Socket 通信都采用了同步阻塞模式(BIO),这种一请求一应答的通信模型简化了上层的应用开发,但是在性能和可靠性方面却存在着巨大的瓶颈。因此,在很长一段时间里,大型的应用服务器都采用 C 或者 C++ 语言开发,因为它们可以直接使用操作系统提供的异步 I/O 或者...

2020-02-03 19:36:52

深入浅出 gRPC 04:gRPC 服务调用原理

目录1. 常用的服务调用方式1.1 同步服务调用1.2 并行服务调用1.3 异步服务调用2. 服务调用的一些误区和典型问题2.1 理解误区2.1.1 I/O 异步服务就是异步2.1.2 服务调用天生就是同步的2.1.3 异步服务调用性能更高2.2 Restful API 的潜在性能风险2.2.1 HTTP1.X 的性能问题2.2.2 异步非阻塞 I/...

2020-02-03 19:34:59

深入浅出 gRPC 02:gRPC 客户端创建和调用原理

目录1. gRPC 客户端创建流程1.1 背景1.2 业务代码示例1.3 RPC 调用流程1.3.1 客户端调用总体流程1.3.2 ManagedChannel 创建流程1.3.3 ClientCall 创建流程1.3.4 基于 Netty 的 HTTP/2 Client 创建流程1.3.5 HTTP/2 连接创建流程1.3.6 负载均衡策略1.3.7 ...

2020-02-03 13:18:03

深入浅出 gRPC 01:gRPC 服务端创建和调用原理

目录1. RPC 入门1.1 RPC 框架原理1.2 业界主流的 RPC 框架1.3 gRPC 简介1.3.1 gRPC 概览1.3.2 gRPC 特点2. gRPC 服务端创建2.1 服务端创建业务代码2.2 服务端创建流程2.3 服务端 service 调用流程2.3.1 gRPC 请求消息接入2.3.2 gRPC 消息头和消息体处理2.3....

2020-02-03 09:30:57

微服务设计模式:防腐层(Anti-corruption layer)

微软:微服务设计模式2017年,微软AzureCAT模式和实践团队在Azure 架构中心发布了9 个新的微服务设计模式,并给出了这些模式解决的问题、方案、使用场景、实现考量等。微软团队称这 9 个模式有助于更好的设计和实现微服务,同时看到业界对微服务的兴趣日渐增长,所以也特意将这些模式记录并发布。下图是微软团队建议如何在微服务架构中使用这些模式:微软:微服务设计模式...

2020-02-02 18:10:07

gRPC系列 :RPC 框架原理是?gRPC 是什么?gRPC设计原则

1. RPC 入门1.1 RPC 框架原理RPC 框架的目标就是让远程服务调用更加简单、透明,RPC 框架负责屏蔽底层的传输方式(TCP 或者 UDP)、序列化方式(XML/Json/ 二进制)和通信细节。服务调用者可以像调用本地接口一样调用远程的服务提供者,而不需要关心底层通信细节和调用过程。RPC 框架的调用原理图如下所示:整理成序列图后的效果是:RPC 框架--时...

2020-02-01 20:19:27

SpringCloud容错处理:Hystrix源码分析

容错处理容错处理是指软件运行时,能对由非正常因素引起的运行错误给出适当的处理或信息提示,使软件运行正常结束从解释中可以看出,简单理解,所谓的容错处理其实就是捕获异常了,不让异常影响系统的正常运行,正如java中的try catch一样。而在SpringCloud微服务调用中,自身异常可自行处理外,对于依赖的服务若发生错误,或者调用异常,或者调用时间过长等原因时,避免长时间等待,造成...

2020-01-30 22:24:30

consul配置acl:允许注册和访问所有节点,并读取任何服务

添加acl配置文件# vim acl.json{ "acl": { "enabled": true, "default_policy": "deny", "down_policy": "extend-cache" }}重启consul# docker restart consul_server生成初始token# consul ac...

2020-01-30 12:05:56

ACL:是什么?目的?使用场景?

ACL简介定义访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。ACL结构图A...

2020-01-30 11:26:57

Nacos:是什么?解决的问题?存在的问题?

Nacos是阿里巴巴2018年7月份开源的项目,如其名, Naming and Configuration Service ,专注于服务发现和配置管理领域。Nacos 是什么?Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台,提供「注册中心」、「配置中心」和「动态DNS服务」三大功能。动态配置服务动态配置服务让您能够以中心化、外部化和动态化的方式...

2020-01-29 18:28:20

微服务之后,如何处理数据的统一分析(类似报表)

随着互联网技术的发展,微服务作为一种云服务的架构方式被越来越多的企业采用,使用微服务的架构进行开发,提供了产品的可靠性,可扩展性,降低维护成本,同时也可以支持按需伸缩服务。对于开发人员,微服务的代码量明显减少,遇到问题也更容易解决。但同时微服务也带来了许多问题,例如:分布式部署的复杂度明显提升、接口调整的成本升高、对运维的需求也更高了。其中一个主要的问题是不同的服务使用独立的数据库,提高了数据...

2020-01-28 21:53:48

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    博客专家完成年度认证,即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周上午根据用户上周周三的博文发布情况由系统自动颁发。