首页 > 编程语言 > 详细

java-springCloud-使用概述

时间:2020-01-03 17:37:34      阅读:66      评论:0      收藏:0      [点我收藏+]

记录学习及搭建springcloud过程的问题及想法。

1:整体流程

  client-->nginx-->微服务(springcloud+springboot)

2:构建springcloud

2.1:主要部件:eureka(基础的服务,服务注册及发现)将springboot服务注册在springcloud框架中进行管理。

        eureka-server(建立一个单独的集群,高可用)

        eureka-client(在springboot的项目中引用,让项目在eureka-server中注册服务)

        使用:eureka-server:创建一个单独的集群,eureka-client:与springboot项目在一起。

2.2:问题及解决,那么多springboot项目,如何相互之间调用呢?

        ribbon/feign:(这两个主件都可以,单纯从应用上说明为啥使用feign)

        理由:    使用ribbon,需要定义http,一般采用restTemplate,这样去做接口的调用有点low。

            采用feign形式只需要把调用的服务定义成接口形式,然后引入调用即可)

        使用:与springboot项目在一起。

2.3:问题及解决,配置文件要重复写(比如连接数据库的配置),且如果变化配置还需要重启项目,怎么能统一配置,且修改配置不用重启服务就有效呢?

        config:(配置主件)

        做法:1:需要git支持(这里采用git方式,将配置文件传到git,让微服务读取git中的配置)

              git的使用:git的创建,仓库搭建,本地仓库与远程仓库的同步

                   1:注册github用户,登录
                   2:settings设置SSH
                      $ ssh -T git@github.com 验证是否成功
                   3:在projects中创建工程
                      +下的new repository(我的创建的工程名是config,所以下面的地址是config.git)
                      git@github.com:zhaodabao140/config.git(选用SSH的形式,如果是http的提交会提示输入账号密码)
                   4:在本地的仓库与远程仓库关联同步
                      git remote add origin git@github.com:zhaodabao140/config.git

            2:配置写好了,怎么让项目可以读取到配置呢?

                如果只是配置到这里,那么就需要执行:http://localhost:9005/actuator/XXX,即哪个服务需要读取配置就找到对应服务的地址执行,很麻烦,

                集群一般都不会单一去执行,所以需要结合springcloud中的另外一个主件bus。

            3:如何解决config高可用的问题?

                我的做法是建立config集群,这个集群在eureka中注册的服务名是同一个名字。

            4:现在项目有开发环境,测试环境,生产环境,怎么部署的项目读取对应的配置呢?

                查阅了一些资料,当前的就是不同配置写在git的不同文件或者目录下,或者在一个人文件中,按不同名字配置,项目读取时候指定读取的文件或者

                使用哪个名字下的配置。(还是觉得这个不够灵活,不知道有没有其他的方法)

         遇到的问题:

            1:项目中的application.properties改名为bootstrap.properties(注意:修改的是config client中的,不是server中的)

                原因:否则项目启动失败,找不到配置的信息,报空指针异常,bootstrap的优先级大于application,会先读取bootstrap,再读取application。

            2:注册eureka的配置还是要写在项目的application.properties中

                原因:否则找不到注册的是什么服务

            3:获取的配置文件会不会中文乱码的问题?(亲测,可用,可能由于版本问题修改的方法有些变化,但是根本的还是把文件重写,改为UTF-8,

                疑问点:对于这种的问题,springcloud config应该会类似的配置才应该啊,或是我没有发现吗?)

                解决:参考 https://www.cnblogs.com/xifenglou/p/11177581.html

         使用:创建一个单独的集群。

2.4:问题及解决,基上文所说,不想配置了git,然后还要分别执行,引入bus?

         bus:

 

         使用:与config集群在一起,与springboot项目在一起,两边配置。

java-springCloud-使用概述

原文:https://www.cnblogs.com/dblog/p/12145701.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!