Alan Hou的个人博客

微服务基础知识小结

微服务架构

Martin Fowler

Loosely coupled service oriented architecture(SOA) with bounded context

DDD – Domain Driven Design

– 决定软件复杂性的是设计方法

DDD 域微服务四层架构

微服务架构

微服务设计原则

康威定律(Conway’s Law)

Docker 应用场景

Docker常用命令

go-micro:gRPC和 ProtoBuf

RPC

简单、通用、高效

gRPC

Protocol Buffers

常用概念

Protocol Buffers Message 中字段修饰符

.proto类型Java类型C++类型Go语言类型备注
doubledoubledoublefloat64
floatfloatfloatfloat32
int32intintint32可变长编码方式。编码负数时不够高效,如果字段可能包含负数,可以使用sint32
int64longint64int64可变长编码方式。编码负数时不够高效,如果字段可能包含负数,使用sint64。
uint32int[1]uint32uint32
uint64uint64uint64
sint32intint32int32可变长编码方式,有符号的整形值。编码时比int32效率高。
sint64longint64int64可变长编码方式,有符号的整形值,编码时比int64效率高。
fixed32int[1]uint32uint32总是4个字节。如果所有数值均比(2^28)大,该种编码方式比uint32高效。
fixed64long[1]uint64uint64总是8个字节。如果所有数值均比(2^56)大,此种编码方式比uint64高效。
sfixed32intuint32int32总是4个字节。
sfixed64longuint64int64总是8个字节。
boolbooleanboolbool
stringStringStringstring

服务注册:consul, etcd

配置中心:consul, nacos

链路追踪:jaeger (http://localhost:16686)

熔断:hystrix-go CLOSED OPEN HALF_OPEN

限流:漏桶算法 ratelimit

负载均衡 roundrobin

微服务网关

监控:Prometheus Grafana

日志:Elasticsearch Logstash Kibana Filebeat

Logstash-Filter 数据中间件处理插件 grok

https://www.elastic.co/downloads/past-releases

micro new

K8S 核心组件

Kompose 转化 docker-compose文件为 Kubernetes 可部署文件

kubectl 常用命令

k8s 常用资源类型简写

常见问题

1、undefined: resolver.BuildOption…undefined: resolver.ResolveNowOption

2、panic: qtls.ConnectionState not compatible with tls.ConnectionState

将 go 降级至1.12或1.13,重装安装 go-micro(删除 bin 目录下的 micro 可执行文件)

1.13设置代理

3、Registry consul not found

或micro api malformed HTTP response “\x00\x00\x06\x04\x00\x00\x00\x00\x00\x00\x05\x00\x00@\x00″

4、undefined: balancer.PickOptions

5、”detail”: “service not found”, “status”: “Internal Server Error”

将注册的微服务namespace修改为go.micro.api

 

 

退出移动版