九、使用Eureka Server集群作为服务注册中心

先放个图:

九、使用Eureka Server集群作为服务注册中心_第1张图片

1.修改原来的eureka服务注册中心,通过修改端口的方式伪装成是不同服务器上的eureka注册中心:

    修改原来的application.yaml配置文件:

九、使用Eureka Server集群作为服务注册中心_第2张图片

    添加application-peer1.yaml配置文件:

九、使用Eureka Server集群作为服务注册中心_第3张图片

    添加application-peer2.yaml配置文件:

九、使用Eureka Server集群作为服务注册中心_第4张图片

    因为我们使用了peer1 和peer2 来映射我们的localhost 或者127.0.0.1 ,我们需要修改我们的HOSTS文件:C:\Windows\System32\drivers\etc

    Host即为我们需要修改的文件:

    使用vs或者其他文本编辑软件打开,添加

    127.0.0.1 peer1

    127.0.0.1 peer2

2.服务测试:

    先用peer1启动,虽然报错,但还是能运行:

九、使用Eureka Server集群作为服务注册中心_第5张图片

    再启动peer2:

九、使用Eureka Server集群作为服务注册中心_第6张图片

    浏览器打开peer1:8700:

九、使用Eureka Server集群作为服务注册中心_第7张图片

    在打开peer2:8701:

九、使用Eureka Server集群作为服务注册中心_第8张图片

    发现已经都相互注册上去了。

3.使用密码:

    添加依赖:

九、使用Eureka Server集群作为服务注册中心_第9张图片

    修改application.yaml配置文件:

九、使用Eureka Server集群作为服务注册中心_第10张图片

    打开peer2:8701,可以了:

九、使用Eureka Server集群作为服务注册中心_第11张图片

不用输密码的访问方式,再application.yaml文件中配置:

     service-url:

      defaultZone: http://root:123456@peer1:8701/eureka,http://root:123456@peer1:8702/eureka

4.将项目打包成docker镜像,自己看网站吧:

     步骤:1.修改注册中心项目配置文件

spring.application.name=eureka-server

server.port=1111

eureka.instance.hostname=IP1  //注册中心所在服务器IP

eureka.client.register-with-eureka=false

eureka.client.fetch-registry=false

eureka.client.serviceUrl.defaultZone=http://IP1:1111/eureka/   //这里注意加上http://

           修改普通服务配置文件    

spring.application.name=api-gateway

server.port=5555

eureka.instance.hostname=IP2   //普通服务所在服务器IP

eureka.client.serviceUrl.defaultZone=http://IP1:1111/eureka/   //这里注意加上http://

步骤2:

九、使用Eureka Server集群作为服务注册中心_第12张图片

步骤3:新建Dockerfile文件,文件内容:

# 基于哪个镜像

FROM java:8

# 将本地文件夹挂载到当前容器

VOLUME /home/container

# 拷贝文件到容器,也可以直接写成ADD eureka-server-0.0.1-SNAPSHOT.jar /app.jar

# 这个地方jar包名称改成自己的jar名称

ADD eureka-server-0.0.1-SNAPSHOT.jar app.jar

RUN bash -c 'touch /app.jar'

# 开放1111端口

EXPOSE 1111

# 配置容器启动后执行的命令

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

实际就是执行的linux命令,容器有自己一套独立的环境,实现了环境的隔离,后面不管在什么环境下,我们pull下这个镜像就可以直接运行

然后打包镜像 docker build -t eureka-server .   //eureka-server是镜像名称可以自己定,最后的一个.不要省略了,他是用来找到Dockerfile文件的,不然会打包不成功的

打包完成后运行docker images查看镜像,发现有我们的eureka-server镜像了

将镜像运行在容器中:docker run -d -p 1111:1111 eureka-server  //-d 表示后台运行,-p是端口映射

成功后查看正在运行容器: docker ps 发现eureka-server已经运行起来,访问http://IP1:1111就出现了我们熟悉的注册中心的界面了

普通服务是一样的,放在另一台服务器上面(当然也可以放在同一台服务器上面的),启动成功我们就在注册中心页面看到api-gate这个服务已经注册进来了

这样我们就实现了基本的spring cloud的docker化,当然如果你会打包docker镜像了就会发现每次都要打包很烦很烦,需求驱动你需要做持续集成了,还有界面化的管理等等。

你可能感兴趣的:(九、使用Eureka Server集群作为服务注册中心)