接着上次的文章,
其实部署Eureka是需要多台主机的,在这里我们只是实验,因此可以修高配置文件模拟出这种效果linux是etc/hosts Windows是C;\windows\System32\drivers\etc\hosts
修改方式像这样(我是Linux),添加一个主机名,像我就是localhost和kali 2个主机名在这里插入图片描述

添加pop依赖
这个是我们在访问Eureka时的帐号密码认证

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency>

然后我们修改yml配置文件

spring:
  application:
    name: demo-cloud-Eureka-ha
  security:
    user:
      name: admin
      passward: admin           
eureka:
  client:
    service-url:
      defaultZone: http://admin:admin@localhost:8761/eureka/,http://admin:admin@kali:8762/eureka  
---
spring:
  profiles: localhost
server:
  port: 8761
eureka:
  instance:
    hostname: localhost
---
spring:
  profiles: kali
server:
  port: 8762
eureka:
  instance:
    hostname: kali

解释下这个配置
security:
user:
name: admin
passward: admin
这是设置登录时帐号密码

spring:
profiles: kali
这个 是主机名
—是分开的意思将代码分为3段,第一段没有知道spring.profiles,所以是对全部配置有效
第二段在主机名设置为localhost时才有效。
http://admin:admin@localhost:8761/eureka/是添加了帐号密码认证后的注册UML

如果出现拒绝连接问题并且帐号密码正确进不去,说明你的springboot版本过高,需要在启动类里加一下代码:

@EnableWebSecurity
    static class WebSecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.csrf().disable().authorizeRequests()
            .anyRequest()
            .authenticated()
            .and()
            .httpBasic();
        }
    }

版本太高毛病其实挺多的,比较建议降低版本。
结果是这样正常
在这里插入图片描述
登录后
在这里插入图片描述
微服务中的UML也需要修改为http://admin:admin@localhost:8761/eureka/,http://admin:admin@kali:8762/eureka

在微服务中我们可以通过微服务定义元数据,Eureka是可以查询的。
微服务中也可以通过Eureka获得另一个微服务状态

	@RequestMapping("/user-instance")
	public List<ServiceInstance> showIndo(){
		return this.dis.getInstances("demo-cloud-user");//另一个微服务的id
	}

Eureka的高可用构造方式就是通过这样做成的,不过现实中我们使用的服务器,而且构造数目要比这个例子多很多。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐