微服务
文章平均质量分 82
CcoWzh
一个初出茅庐的码农
展开
-
consul实践--服务发现
本文中,我们将介绍如何使用consul进行服务发现。首先,我们先运行启动一个consul服务:consul agent -server -bootstrap-expect=1 -data-dir=/tmp/consul -node=consulServer -ui -config-dir=./consul.d/ -client 0.0.0.0启动consul后,就需要进行服务注册了。服务注册consul的服务注册可用通过一个json 配置文件进行配置。我们只需要指定存放的目录,consul启动之原创 2021-05-07 15:20:30 · 1792 阅读 · 0 评论 -
consul实践--运行原理
在上一节中,展示了如何安装consul,本文,我们将继续深入的探究consul。本文将:给出一个简单的启动示例简介consul的架构搭建3个server和3个client的集群简单示例我们将常用命令放到本文中来对照:consul agent ##代理-bind=0.0.0.0 ## 指定consul所在机器的IP地址,默认是0.0.0.0-http-port=8500 ## consul自带一个web访问的默认端口-client=127.0.0.1原创 2021-04-29 18:33:59 · 755 阅读 · 0 评论 -
gRPC实践--拦截器
前提阅读:gRPC实践–加密通信升级版gRPC实践–加密通信gRPC实践–Server&Client本文的代码,可能在以上代码的基础上进行了更改。前言什么是拦截器?拦截器(Interceptor),主要完成请求参数的解析、将页面表单参数赋给值栈中相应属性、执行功能检验、程序异常调试等工作。说人话,就是,我需要在调用 gRPC 方法之前(或之后),对某些参数(如,日子、异常,甚至是token)做一些处理。实现这类功能的活,就叫“拦截器”。gRPC中的拦截器gRPC中原创 2021-04-26 11:04:17 · 994 阅读 · 0 评论 -
gRPC实践--加密通信升级版
本文,将续上一个博客未完成的尾巴,对gRPC加密通信进行一个升级。主要是分为:使用CA,为server端和client端颁发证书并通信。使用token对不同的方法访问进行权限管理。我们将在上一次的代码中进行重构,参考:gRPC实践–加密通信基于CA证书的认证和加密通信如下图所示,为CA与服务端和客户端的交互过程:在上一篇博客中,我们已经为server端颁发了证书,现在,我们需要为client端颁发证书:## 生成client私钥$ openssl genrsa -out clie原创 2021-04-24 18:15:40 · 665 阅读 · 2 评论 -
gRPC实践--加密通信
gRPC实践–加密通信在gRPC的demo通信中,有服务端和客户端,他们之间都是明文通信的,这样会带来安全隐患。一般的,gRPC有几种方法对server 和 client 之间的通信进行加密,即,身份验证机制:这里,介绍最常用的证书认证机制,通过使用证书认证,在TLS协议下,实现加密通信。我们知道,gRPC建立在HTTP/2协议之上,所以对 TLS 提供了很好的支持。之前的gRPC的服务都没有提供证书支持,因此客户端在链接服务器中通过grpc.WithInsecure()选项跳过了对服务器证书原创 2021-04-24 16:53:45 · 2390 阅读 · 1 评论 -
gRPC实践--Server&Client
前言在gRPC中,客户端应用程序可以直接在其他计算机上的服务器应用程序上调用方法,就好像它是本地对象一样,从而使您更轻松地创建分布式应用程序和服务。与许多RPC系统一样,gRPC围绕定义服务的思想,指定可通过其参数和返回类型远程调用的方法。 在服务器端,服务器实现此接口并运行gRPC服务器以处理客户端调用。 在客户端,客户端具有一个存根(在某些语言中仅称为客户端),提供与服务器相同的方法。例如,你可以使用Go,Python或Ruby的客户端轻松地用 Java 创建 gRPC 服务器。前提知识点:.原创 2021-04-23 15:57:58 · 1023 阅读 · 0 评论 -
Google--Proto Buffer的序列化原理
Google–Proto Buffer的序列化原理这篇文档将讨论 protocol buffer 消息的二进制编码格式,了解不同的 protocol buffer 格式如何影响编码消息的大小可能非常有用!!!简单示例让我们来看一看非常简单的消息定义:message Person { string user_name = 1; int64 favorite_number = 2; repeated string interests = 3;}## 赋值:oldData := &am原创 2021-03-10 14:36:00 · 994 阅读 · 1 评论 -
使用 dockerfile构建golang的web服务
在使用docker时,如何将自己的下golang 应用打包成一个镜像呢?1. 编写web应用package mainimport ( "fmt" "log" "net/http")func handler(w http.ResponseWriter, r *http.Request) { if _, err := fmt.Fprintf(w, "hello,you visit url is %q\n", r.URL.Path); err != nil { log.Println(e原创 2021-02-27 16:32:25 · 603 阅读 · 0 评论 -
如何使用阿里云进行Docker镜像加速
如何使用阿里云进行Docker镜像加速1. 镜像加速服务第一步,找到“容器镜像服务”:2. 镜像加速地址第二步,在“镜像中心”下,找到自己的“镜像加速器”:3. 配置加速器根据自己的操作系统,进行加速器的配置:4. 重启sudo systemctl daemon-reloadsudo systemctl restart docker...原创 2021-02-27 14:11:58 · 434 阅读 · 0 评论 -
详解Proto Buffer(初级)语法
这篇博客介绍了如何使用 protocol buffer来构建我们的数据,编写 .proto文件,以及如何从.proto文件生成数据访问类。这是 proto3版本,有关proto2语法的信息,请参见官网的《 Proto2语言指南》1. 定义消息类型首先让我们看一个非常简单的例子。这是官网给的一个经典示例:即,定义一个 SearchRequest(搜索请求)消息格式,其中有一个字符串类型的查询键值、int32类型的特定页面结果以及每页结果数。他的定义如下:syntax = "proto3";mess原创 2021-02-01 17:26:32 · 927 阅读 · 0 评论 -
一文掌握Proto Buffer的安装
Proto Buffer是Google公司开发的一种数据描述语言,并于2008年对外开源。Protobuf刚开源时的定位类似于XML、JSON等数据描述语言,通过附带工具生成代码并实现将结构化数据序列化的功能。但是我们更关注的是Protobuf作为接口规范的描述语言,可以作为设计安全的跨语言PRC接口的基础工具。1. 什么是Proto BufferProtocol Buffers (a.k.a., protobuf) 是Google开发的,和语言无关、平台无关的可扩展机制,用于序列化结构体数据。可以在原创 2021-02-01 17:22:52 · 535 阅读 · 0 评论 -
Consul实践--安装
Consul是一个分布式高可用的系统,包含多个组件,但是作为一个整体,为你的基础设施提供服务发现和服务配置的工具.他提供以下关键特性:服务发现健康检查Key/Value存储多数据中心本章节主要叙述如何安装 consul安装官网下载地址:https://www.consul.io/downloads.html选择对应的操作系统,下载好安装包。这个安装包是一个可执行的 二进制 文件。在Linux上安装解压好下载的安装包:unzip consul_1.9.2_linux_amd64.zi原创 2021-01-27 19:12:05 · 265 阅读 · 0 评论