zoukankan      html  css  js  c++  java
  • 用PCF命令行(CLI)配置服务RabbitMQ, Redis, Service Registry, Config Server 并在项目中使用

    1. 用命令行配置RabbitMQ和Redis,并在项目中使用:

    先查看当前可选的服务列表:

    cf marketplace

     

    然后选择需要安装的服务,命令为:cf create-service 产品名称 产品计划 自己定的名称

    说明:产品名称一定要和上面列表里面显示的保持一致,产品计划也要喝列表里面plans那一列的名称保持一致,不然会报错说找不到的。

    命令示例: cf create-service p.rabbitmq single-node my-rabbitmq

    OK,命令回车之后,会显示正在创建中… 这需要大概几分钟的时间,因为PCF要为这个服务分配服务器资源。

    你可以根据提示的命令去查看当前创建状态或者稍等片刻继续操作。

    查看所有服务的状态:cf services

    可以看到,rabbitmq服务已经创建好了,现在可以创建Service Key(连接信息)了。

    创建Service Key的命令示例:cf create-service-key my-rabbitmq my-rabbit-key

     

    获取刚才创建的Service Key的Credentials 信息(连接信息)。

    命令示例:cf service-key my-rabbitmq my-rabbit-key

    可以看到rabbitmq的连接服务器IP,端口号,用户名,密码等信息,这些可以配置在项目里面直接使用。

     

    接下来,按照刚才那种步骤,你可以试着创建一个Redis服务并拿到它的连接信息。命令规则几乎完全一样,在此就不做冗述。

    cf create-service p.redis 2gb my-redis

     

     

    那么在项目中如何使用RabbitMQ和Redis的服务呢,很简单,和在本地使用一样,只需在项目的配置文件里面配置一下rabbitmq 和 redis的连接信息即可,如果你是Spring Cloud或Spring Boot项目的话,请参看下面配置:

    在application.yml或者响应的配置文件里面加上:

    spring:

      rabbitmq:

    host: 10.xx.xx.xx

    port: 5672

    username: xxxxxxxxxxxxxxxxxxxxxx

    password: xxxxxxxxxxxxxxxxxxxxxxx

     

    示例:

     

     

    2. 用命令行配置service-registry,并使用

    PCF中的service-registry相当于Spring Cloud里面的Eureka, 用作集群注册中心。

    cf create-service p-service-registry standard my-registry

    这同样需要消耗几分钟的时间:

    创建好了之后,这个可以直接绑定你的应用程序了,不需要创建Service Key.

    那么我们如何绑定了,在PCF的发布文件中去绑定:manifest.yml

    关于这个manifest.yml的格式和配置参数,也请查看PCF官方文档。

     

    也可以通过命令去绑定应用程序,具体操作见PCF官方文档:

    https://docs.pivotal.io/pivotalcf/2-4/devguide/services/application-binding.html#bind

    $ cf bind-service my-app mydb

    Binding service mydb to my-app in org my-org / space test as me@example.com...

    OK

    TIP: Use 'cf push' to ensure your env variable changes take effect

     

    3. 配置Config Server, 并使用

    PCF官方文档:

    https://docs.pivotal.io/spring-cloud-services/3-0/common/config-server/index.html

     

    这个比之前的稍微麻烦一点。

    首先,需要确保你有一个github环境,再github上建一个仓库专门来管理配置文件信息。

    然后,配置一下SSH Key,我们来采用SSH Key的方式登录github,并获取config信息(当然也可以用username和password,但是最好用SSH Key,因为有的公司私有github仓库需要用公司账号联合登录的不一定支持用户名密码方式)。配置SSH Key的方式网上一搜一大把,这里就不多说了,找到你本地创建的私有Key (确保共有的key已经配到了github上),然后整理出下面这个文档:

    {

        "git":{

            "uri":"ssh://git@github.com/spring-cloud-services-samples/demo.git",

            "privateKey":"-----BEGIN EXAMPLE RSA PRIVATE KEY-----

    MIIJKQIB..."

        }

    }

     

    上述的SSH Key以及文档整理好了之后,就可以创建config server服务了:

    cf create-service p-config-server standard my-config

    依旧需要几分钟等待…

    好的东西是值得等待的…

    Config server的配置方式和其他又有点不一样,使用的时候可以不创建Service Key,但是要配置git访问信息:

    下面这是我创建并测试成功的一个命令,请最好按这种格式去封装参数信息:

    cf update-service my-config -c "{"count":1,"git":{"privateKey":"-----BEGIN RSA PRIVATE KEY----- XXXX -----END RSA PRIVATE KEY-----","hostKey":"XXX","label":"dev","hostKeyAlgorithm":"ecdsa-sha2-nistp256","uri":"ssh://git@github.com/XXX.git"}}"

     

    说明:

    上面的hostKey是在本地用户目录下.ssh目录下的一个叫known_hosts的文件里面找到的,请直接复制这里面的hostKey信息,并且hostKeyAlgorithm要填hostKey那一行前面指定的。

    还有一个无形坑,uri那里切记是ssh协议的URI,是git@github.com哦,不要写成了git:github.com

    好了 输入命令,并执行吧!

    执行之后,也是需要一点时间冷却的。

     

    等成功之后,可以用下面这个命令,获取访问界面(仪表盘)的URL:

    cf service my-config

     

    那么,项目如何使用这个config server呢,在项目发布文件manifest.yml (上面提到过)里面加入config的配置:

    需要说明的是:

    因为profiles.active配置的是east, 所以会从{applicationName}-east.yml文件里面去读取配置。然后刚才配置config server的时候,指定了一个label为dev, 这个表示从哪个分支去读。

    综合以上,这个项目会从我们配的那个git仓库的dev分支上去读一个叫 {applicationName}-dev.yml文件, 假设应用叫demo, 那么就是从demo-dev.yml文件中读。

     

    OK,这些配置搞定,赶紧部署一下项目试试吧!

    部署项目的命令:

    cf push –f manifest.yml

  • 相关阅读:
    合并排序二
    合并排序
    理解Windows消息循环机制
    直接插入排序
    关于typedef的用法总结
    迭代器的抽象
    C++基础--malloc和new的区别
    C++基础--sizeof和strlen的区别
    C++ VS编译问题--LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
    SSL--Windows下生成OpenSSL自签证书
  • 原文地址:https://www.cnblogs.com/cnsec/p/13407124.html
Copyright © 2011-2022 走看看