zoukankan      html  css  js  c++  java
  • Spring Cloud Alibaba之nacos 集群搭建

    什么是 Nacos

    Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

    Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

    nacos是ali开源的微服务注册中心,其实也是配置中心,详细说明参见:https://nacos.io/zh-cn/docs/what-is-nacos.html。

    一  nacos下载,当前最稳定版本。

    源码下载地址:https://github.com/alibaba/nacos/releases

    百度云提取地址:(安排)

    链接:https://pan.baidu.com/s/1Nbdq54w6_FZanSj5sICD1w
    提取码:1122

    由于nacos是用java开发的,运行时需要JRE环境,配置JDK略。

    二  使用mysql 作为注册中心的数据持久化

    下载好nacos server后,解压可以发现文件目录如下:

    这里我们使用mysql做为nacos数据持久化的数据源。

    创建nacos集群使用的mysql数据库

    三  集群配置

    由于我们是要使用集群的方式来使用nacos,注意:nacos是默认以集群的方式启动的。

    1  修改  /conf/application.properties

    2 添加集群配置  在你需要启动的nacos的conf/ 添加  cluster.conf  将需要启动的节点的信息添加进来,ip:port的方式或者域名的方式也可

    3 修改节点启动的环境变量。

    通过查看启动脚本发现,cluster 方式启动时,nacos占用的内存为  2g,可以修改得比较小一些,方便测试。这里修改为跟standalone 一样的配置启动。方便测试。

     centos启动方式:

    在终端执行  :  到/bin目录下,分别启动nacos_1/nacos_2/nacos_3 服务,直接执行 ./startup.sh  

    windows启动方式:

    四  集群的正确使用方式

    1 访问nacos后台查看。

    2  cloud微服务项目连接Nacos集群

    ##指定当前服务端口号
    #server:
    # port: 10020
    spring:
    application:
    #指定当前服务名字
    name: app-login
    cloud:
    nacos:
    #连接Nacos集群
    server-addr: 127.0.0.1:8818,127.0.0.1:8828,127.0.0.1:8838
    # discovery:
    # # nacos服务端位置(注册中心服务端地址的实际使用)
    # server-addr: ${spring.cloud.nacos.server-addr}
    config:
    # server-addr: ${spring.cloud.nacos.server-addr}
    file-extension: yml

     这种方式最大的问题是,当注册中心有新的节点上线后,修改起来很麻烦,所以可以使用nginx 做负载均衡,方便后续节点的扩展。

    3.使用nginx做为前置负载均衡来连接nacos 集群

    nginx的配置为:

     1 server {
     2     listen       80;
     3     listen  [::]:80;
     4     server_name  localhost;
     5     location / {
     6         root   /usr/share/nginx/html;
     7         index  index.html index.htm;
     8     }
     9 
    10     error_page   500 502 503 504  /50x.html;
    11     location = /50x.html {
    12         root   /usr/share/nginx/html;
    13     }
    14 
    15 }
    16 upstream cluster{
    17     server 127.0.0.1:8818;
    18     server 127.0.0.1:8828;
    19     server 127.0.0.1:8838;
    20 }
    21 
    22 server {
    23     listen      8848;
    24     server_name  localhost;
    25     #charset koi8-r;
    26 
    27     #access_log  logs/host.access.log  main;
    28 
    29     location / {
    30     # root   html;
    31     # index  index.html index.htm;
    32     proxy_pass http://cluster;
    33     }
    34 }

    这时springcloud 的连接配置可以直接更改为:

     1 ##指定当前服务端口号
     2 #server:
     3 #  port: 10020
     4 spring:
     5   application:
     6     #指定当前服务名字
     7     name: app-name
     8   cloud:
     9     nacos:
    10       #更改为nginx端口
    11       server-addr: 127.0.0.1:8848
    12       config:
    13         file-extension: yml
    半斤八两开始写BLOG了
  • 相关阅读:
    线程、同步
    异常、线程
    Map
    List、Set
    Collection、泛型
    Object类、常用API
    h5-上传图片预览
    js 获取get参数
    《转》完美解决微信video视频隐藏控件和内联播放问题
    写入文件(覆盖文件的内容)
  • 原文地址:https://www.cnblogs.com/freewsf/p/15403342.html
Copyright © 2011-2022 走看看