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了
  • 相关阅读:
    Working with WordprocessingML documents (Open XML SDK)
    How to Choose the Best Way to Pass Multiple Models in ASP.NET MVC
    Azure:Manage anonymous read access to containers and blobs
    Convert HTML to PDF with New Plugin
    location.replace() keeps the history under control
    On the nightmare that is JSON Dates. Plus, JSON.NET and ASP.NET Web API
    HTTP Modules versus ASP.NET MVC Action Filters
    解读ASP.NET 5 & MVC6系列(6):Middleware详解
    Content Negotiation in ASP.NET Web API
    Action Results in Web API 2
  • 原文地址:https://www.cnblogs.com/freewsf/p/15403342.html
Copyright © 2011-2022 走看看