1.   准备工作

  a)      启动三台虚拟机

    s1:10.1.7.141

    s2:10.1.7.139

    s3:10.1.7.138

  b)      每台机器上在 /home新建文件夹    

1
2
3
mkdir /home/consul
 
mkdir /home/consul/data

  c)      下载consul,并将其考入到/home/consul中

    下载地址:https://www.consul.io/downloads.html

2.   启动server agent

  a)      进入consul目录中

1
cd /home/consul 

  b)      执行:

1
./consul agent -server -bootstrap-expect 2 -data-dir=data -node=n1 -bind=10.1.7.141 &

     注:

                 i.  server: 以server身份启动。

                ii.  bootstrap-expect:集群要求的最少server数量,当低于这个数量,集群即失效。

               iii.  data-dir:data存放的目录,更多信息请参阅consul数据同步机制

               iv.  node:节点id,在同一集群不能重复。

                v.  bind:监听的ip地址。

               vi.  &:在后台运行,此为linux脚本语法

              vii.  更多参数及配置说明见consul官方说明文档。

  c)      修改node和bind信息,分别在另外两台机器中执行。

  d)      在s2、s3中分别执行:

1
./consul join 10.1.7.141

  e)     到这里整个consul server 集群就算完成了,可以利用consul members查看集群中包含的node信息。

  f)      使用consul info命令可以查看当前节点状态,包括是否在集群中,是否为leader(主)。

3.   注册服务

  已redis为例

  a)      启动新的虚拟机

    s4:10.1.7.142

  b)     启动redis服务(这里不在赘述)

  c)      新建文件夹/home/consul/config,在这个文件中放置consul的配置信息。

1
mkdir /home/consul/config

  d)     编写redis注册及健康检查方法,每一个服务都写成一个文件,文件格式为:.json

1
vi /home/consul/config/redis.json

  e)     Redis的注册与检查脚本:

{
  "services": [        #服务数组,这里只写一个redis服务,建议一个服务写一个文件
    {
      "id": "redis/node1",  #服务ID
      "name": "redis ",     #服务名称,在发现服务时可以用该名称找到所有服务提供者
      "tags": [],
      "address": "10.17. 142", #服务的IP,这里配置的是本机的内网地址
      "port": 6379,    #服务端口,redis配置的端口为6379
      "checks": [
        {
       #检测redis存活的脚本,consul也提供http命令来检测服务的健康状态
          "script": "redis-cli -h 127.0.0.1 -p 6379 info | grep role:master || exit 2",
       #检测频率,这里定义的是5秒
          "interval": "5s"
        }
      ]
    }
    ]
}

  f)      启动consul 代理

1
./consul agent  -data-dir data -node=n4 -bind=10.1.7.142  -config-file=/home/consul/config

  g)     加入到集群中

1
./consul join 10.1.7.142

      

4.   搭建管理工具

  a)      下载consul web ui,和本机中的consul放到同级目录。

  b)     在本机启动consul

1
consul agent -node=local1abc -bind=10.1.7.167  -ui-dir=web_ui

  c)      加入到集群中

1
consul join 10.1.7.142

  d)     打开浏览器,数据地址http://127.0.0.1:8500。即可看到consul的配置信息和已注册的服务信息。

posted @ 2016-11-28 16:12 Eric.Z 阅读(810) 评论(0) 推荐(1) 编辑
摘要: http://www.golangtc.com/download下载安装包或压缩包 配置环境变量 配置GOROOT: 配置PATH:在PATH最后添加 配置GOPATH:GOPATH的作用请自行百度,具体目录可以自行定义 需要的扩展插件 代码自动完成(使用gocode) 快速提示信息(使用godef 阅读全文
posted @ 2016-02-25 16:35 Eric.Z 阅读(4969) 评论(0) 推荐(1) 编辑
摘要: 好了,前边我们把核心内容介绍完了,接下来要做的就是拦截用户的请求,并把请求转向沙箱内。 这里我们准备通过实现一个HttpModule类来完成请求的拦截与转发。新建一个HuberHttpModule类,并继承IHttpModule。下面我们暂时只处理Application_BeginRequest事件 阅读全文
posted @ 2016-01-07 11:17 Eric.Z 阅读(1372) 评论(1) 推荐(5) 编辑
摘要: 在开头也是先给大家道个歉,由于最近准备婚事导致这篇文章耽误了许久,同时也谢谢老婆大人对我的支持。 回顾上篇文章,我们重造了一个controller,这个controller中用到了视图引擎,我们的视图引擎虽然也叫Razor,但此Razor非mvc中的Razor,MVC中的Razor同样依赖于H... 阅读全文
posted @ 2016-01-05 16:13 Eric.Z 阅读(2779) 评论(0) 推荐(1) 编辑
摘要: 由于.net MVC 的controller 依赖于HttpContext,而我们在上一篇中的沙箱模式已经把一次http请求转换为反射调用,并且http上下文不支持跨域,所以我们要重造一个controller。 我们在写mvc项目的时候经常会用到ViewBag、ViewData,那我们就先声明... 阅读全文
posted @ 2015-12-15 18:09 Eric.Z 阅读(3214) 评论(1) 推荐(4) 编辑
摘要: 上周五写了一个实现原理篇,在评论中看到有朋友也遇到了我的问题,真的是有种他乡遇知己的感觉,整个系列我一定会坚持写完,并在最后把代码开源到git中。上一篇文章很多人看了以后,都表示不解,觉得不知道我到底要干什么,可能就像隔行如隔山吧,就像做移动端开发的人很少去考虑分布式中的通信一样。大家都知道模块... 阅读全文
posted @ 2015-12-08 11:20 Eric.Z 阅读(4465) 评论(10) 推荐(7) 编辑
摘要: 第一节:我们为什么需要一个热插拔式的web框架?模块之间独立开发假设我们要做一个后台管理系统,其中包括“用户活跃度”、“产品管理”、"账单管理"等模块。每个模块中有自己的业务特性,这些模块都与具体业务高度耦合,很难由一个团队开发完所有模块。这样看来,由数据事业部的同事来开发“用户活跃度”模块,产品事... 阅读全文
posted @ 2015-12-04 14:18 Eric.Z 阅读(5337) 评论(22) 推荐(9) 编辑
摘要: 随着vs2015正式版本的发布,实在按捺不住,安装体验了一把,感触最大的除了可以调试lamda以外莫过于对nuget的升级。 先来一张全景: 怎么样,风格完全不同了吧。可以显示预发行版本了,右上角那个小齿轮就是nuget的设置了。 除了界面的风格不同了,更大的区别是增加了很多的新功能,... 阅读全文
posted @ 2015-07-22 17:37 Eric.Z 阅读(8973) 评论(9) 推荐(3) 编辑
摘要: 为什么使用nuget来管理类库引用就不再阐述,好处真的一抓一把。在使用nuget的时候,我们如果总去访问别人的nuget源,受限于网络情况的好坏,速度真的没法保证,更别说访问国外的源了。那好,我们来自己搭建一个属于自己的nuget服务器,这篇文章介绍的很详细了,推荐大家看一下http://www... 阅读全文
posted @ 2015-05-15 18:54 Eric.Z 阅读(602) 评论(0) 推荐(0) 编辑
摘要: 首先我们需要先配置一下yum源中mono的引用说明:第一步:vi/etc/yum.repos.d/mono.repo第二步:在刚打开的文件中编辑如下内容[mono]name=monobaseurl=http://download.mono-project.com/repo/centos/enable... 阅读全文
posted @ 2015-05-15 16:55 Eric.Z 阅读(741) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示