Spring Cloud Config 高可用架构

2018-03-31

何为高可用?

高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间.

1) 假设系统一直能够提供服务,我们说系统的可用性是100%.

2) 如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%.

举个例子,百度的搜索首页是业界公认的高可用保障非常出色的系统

我们通常会通过ping baidu.com来判断网络是否通畅,这也恰巧说明了百度首页的可用性非常之高,值得信赖.

高可用的实现方式

  1. 主从复制: 主服务挂掉后,从服务升级为主服务继续工作.
  2. 双机热备: 一台工作,一台备用,工作服务器挂掉后,备用服务器继续工作.
  3. 分布式集群: 多台实例同时工作,当其中一台挂掉后,前端或者代理踢出这台服务器,负载均衡算法将不再调度它.

Config Server高可用的实现

Config Server 的高可用方案,是借助Eureka(注册中心)实现的,也就是上面提到的分布式集群方案.

多个Config Server同时工作,任何一台挂掉后,Eureka服务器都会通知客户端, 客户端后续将不再从这里请求配置信息.

image

阅读全文...

Angular开发环境跨域代理配置

2017-09-12

问题描述

API地址:

http://fastjee-gateway.com:5002/api/uc/info/{userId}

前端地址:

http://localhost:4200

为解决跨域问题, 我们希望在前端开发环境配置代理转发, 转发后的URL如下:

http://localhost:4200/uc/info/{userId}

新建proxy.conf.json配置文件

{
    "/uc/*": {
        "target": "http://fastjee-gateway.com:5002/api/uc/",
        "secure": false,
        "logLevel": "debug",
        "changeOrigin": true,
        "pathRewrite": {
            "^/uc": ""
        }
    }
}

配置scripts (package.json)

"start": "ng serve -o --proxy-config proxy.conf.json",

使用

this.http.get('uc/info/' + userid)
    .subscribe((res) => {
        console.log(res);
    },(error) => {
        console.error(error);
    });

最终控制台打印如下:

[HPM] POST /uc/info/1 -> http://fastjee-gateway.com:5002/api/uc/info

注意: 此方法只适用于开发环境

阅读全文...

Git多个SSH Key共存解决方案

2017-08-18

目前手上不止一个git账号,平台也不一致,这就比较尴尬了:

  1. 同一个SSH Key中不允许两个账号
  2. 再次生成新的SSH Key会将上次的覆盖

目前的解决办法是,生成多个SSH Key并命别名,通过配置文件指定域

用ssh-keygen生成多个key

$ ssh-keygen -t rsa -C "wuwz@live.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/wuwenze/.ssh/id_rsa): /Users/wuwenze/.ssh/github
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ubuntu/.ssh/id_rsa_github.
Your public key has been saved in /home/ubuntu/.ssh/id_rsa_github.pub.
The key fingerprint is:
SHA256:T4s5hxOOX3ABGNHZNMPX6v7J1rgYxfzXMCuCipIh5Ng wuwz@live.com
The key's randomart image is:
+---[RSA 2048]----+
|      o=.=+  .   |
|      . o.oo. .  |
|          .. .   |
| .         ..o   |
|+.      S o.  *  |
|o.E    o @ ... =.|
| . o  . O *.o .o+|
|  o  . o = ..=o.o|
|   .. . .   .o=. |
+----[SHA256]-----+

根据提示,重新指定文件名,假设我有三个平台需要同时管理,即

/Users/wuwenze/.ssh/github
/Users/wuwenze/.ssh/gitee
/Users/wuwenze/.ssh/coding

依次按照上述操作,添加3个ssh-key,生成后的文件位于~/.ssh

阅读全文...