Tag: netflix尤里卡

“org.springframework.beans.factory.UnsatisfiedDependencyException:创buildbean时出错”使用docker

我正在试图让docker运行在我的AWS上,并使用docker-compose。 我运行一个maven构build,一切都成功,但是当我做docker-compose,我得到这个假装exception,说我的businessDelegate不是自动assembly,因为我的假装服务得到一个参数0 这是我的代表class @Component public class BusinessDelegateImpl implements BusinessDelegate{ private ShippingService shippingService; @Autowired public void setShippingService(ShippingService shippingService) {this.shippingService = shippingService;} /**More Methods below**/ } 简单的权利? 就我所见,一切正确。 这是我的假装客户端类 @FeignClient("shipping") public interface ShippingService { @RequestMapping(value = "/insert", method = RequestMethod.POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE) ResponseEntity<Shipping> insert(@RequestBody Shipping shipping); @RequestMapping(value = "/save", method = RequestMethod.PUT, produces […]

客户端证书和Docker的FeignClient

我有一个要求我的微服务利用双向ssl。 每个微服务都是Spring Boot Application,注释如下: @SpringBootApplication @EnableFeignClients @EnableDiscoveryClient @EnableZuulProxy public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } 每个yml都有类似于eureka / ribbon的configuration: eureka: client: service-url: defaultZone: ${EUREKA_CLIENT_SERVICEURL_PROTOCOL:http}://${EUREKA_CLIENT_SERVICEURL_HOST:192.168.99.100}:${EUREKA_CLIENT_SERVICEURL_PORT:8761}/eureka/ instance: secure-virtual-host-name: ${spring.application.name} prefer-ip-address: true non-secure-port-enabled: ${EUREKA_NON_SECURE_PORT_ENABLED:false} secure-port-enabled: ${EUREKA_SECURE_PORT_ENABLED:true} secure-port: ${server.port} ribbon: IsSecure: true eureka: enabled: true 每个微服务都有一个控制器,为各种function公开api。 当一个微服务需要调用另一个微服务端点时,我试图通过创build该微服务的客户端接口来实现: @FeignClient(name = "user", configuration = FeignConfiguration.class, […]

如何使用AWS Beanstalk和Spring Cloud Netflixbuild立Docker容器之间的连接

我的应用程序由几个微服务组成。 我想使用NetFlix Eureka作为发现服务器,我想将我的应用程序部署为Docker容器。 我想build立我的服务之间的沟通,但几乎没有问题: Beanstalk始终使用nginx作为容器的反向代理,默认情况下将所有请求路由到端口80.好的,我已经用一些棘手的脚本殴打。 我的EC2 Beanstalk实例上有几个networking接口 – docker0,它是docker和eth0的主机IP。 问题是,我无法dynamic确定容器内的主机IP地址,因此无法将其传递到Eureka发现服务器(也作为Docker映像运行),而无需进行硬编码。 使用代码或configuration我只能公开内部的Docker接口,而不是桥接。 所以,底线 – 我想用Docker,Beanstalk和Eureka构build支持微服务的应用程序。 解决scheme应该是可扩展的,除了Eureka主机IP之外,不应该有任何硬编码的值。 谢谢。

在Windows 8.1上运行netflixoss docker

我已经在Win 8.1笔记本电脑上本地安装了docker-toolbox v1.12。 正如我在这里build议我运行docker run -d –name exhibitor netflixoss/exhibitor:1.5.2 。 这已经把我的docker虚拟机中的所有镜像都“拉回”了。 docker inspect <<container-id>> (从docker ps命令获得的容器ID)显示我的networking设置如下。 "NetworkSettings": { "Bridge": "", "SandboxID": "c1a16c1704f76b2e2a35b2ae6a18780aaedac078cceb005b419cafb405b1e3b2", "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "Ports": { "2181/tcp": null, "2888/tcp": null, "3888/tcp": null, "8080/tcp": null }, "SandboxKey": "/var/run/docker/netns/c1a16c1704f7", "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "EndpointID": "3e19d6c6eeb2e7c9dbb9b357ac4ecc9515bdf391df6688f17420bb9443ce3d22", "Gateway": "172.17.0.1", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "172.17.0.2", […]

Spring Cloud Samples Eureka – Docker – 在链接中使用下划线

使用Spring Cloud,Eureka和Docker可能会遇到一个有趣的exception情况。 我不确定我是否发现了一个问题,或者是否有预期的行为,但这里是要点。 我首先在一个名为docker的容器中运行尤里卡。 接下来,我使用ClientDiscoveryEnabled启动Docker客户端。 docker客户端容器使用docker“link”参数来获取到eureka容器中的主机名可访问性。 yaml文件有一个连接到属性驱动的Eureka的条目: defaultZone: http://user:${eureka.password}@${host.name}:8761/eureka/ 除非我尝试在容器名称中使用下划线,否则一切正常。 如果我使用下划线来命名我的容器,则客户端容器无法使用Eureka注册完全parsing此名称。 如果我删除下划线,一切工作正常。 也许我错过了一些东西,这是预料之中的,但是我还没有看到这个“特色”的提及。 我的客户基于Spring-Cloud-Samples feign-eureka项目。 以下是场景… 这将工作,客户将注册: sudo docker run -d -p=8761:8761 –name foobar chrisccoy/microsvcdemoeureka sudo docker run -d -p=7311:7311 –name democlnt –link foobar:foobar chrisccoy/microsvcdemoclnt java -jar /opt/tst/ms_clnt.jar –host.name=foobar 以下将无法使用! 尤里卡将启动,客户端将启动,但不能注册: sudo docker run -d -p=8761:8761 –name foo_bar chrisccoy/microsvcdemoeureka sudo docker run -d -p=7311:7311 –name […]

Heroku负载平衡器与Netflix zuul

根据这个答案https://stackoverflow.com/a/41811770/2849613我想获得有关Heroku的微服务的最佳做法的一些信息。 问题是哪种方法更好? 安装每个服务作为独立的应用程序,并使用其中之一作为REST“代理”(例如Netflix Eureka)? 要么 创build基于Docker的方法,例如Netflix Zuul作为负载均衡器? 就我自己而言,我已经看到两种方法的优点和缺点: 优点 :更好的可扩展性(易于创build更大的负载的新机器)。 缺点 :服务之间的通信是“在heroku之外”换句话说:因为heroku应用程序有公共地址,所有人都可以直接连接到服务(不用扔尤里卡),因为每个服务都需要提供一些authentication方法,并在每个服务之间共享其他 – 我认为这是风险。 优点 :易于复制testing和开发的生产环境(docker图像),服务之间的通信是“内部”完成的(图像到图像而不是应用程序到应用程序)。 缺点 :难以扩展(我认为Heroku应用程序和Docker镜像之间的负载平衡有一点点负担)。 哪种方法更好? 也许我可以把它们混合在一起? 或者也许有一些不同的,更好的解决scheme? 老实说,我相信唯一的事情是,我想用rabbitMQ作为消息队列…

Spring云服务查找错误:负载平衡器没有可用的客户端服务器

我一直在玩一个由configuration服务器,发现服务器(Eureka)和带Ribbon的Feign客户端(Feign内部使用)组成的Spring云应用程序。 我有2个服务, movie-service和daily-update-service 。 目的是在一个地方每天更新stream行的电影,新闻和天气。 我遇到的问题是movie-service Feign客户端无法从daily-update-servicefind它。 它错误地与以下内容: Caused by: java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client: movie-service daily_update_service_1 | at org.springframework.cloud.netflix.feign.ribbon.LoadBalancerFeignClient.execute(LoadBalancerFeignClient.java:59) ~[spring-cloud-netflix-core-1.1.0.M4.jar:1.1.0.M4] daily_update_service_1 | at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:95) ~[feign-core-8.12.1.jar:8.12.1] daily_update_service_1 | at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:74) ~[feign-core-8.12.1.jar:8.12.1] daily_update_service_1 | at feign.hystrix.HystrixInvocationHandler$1.run(HystrixInvocationHandler.java:54) ~[feign-hystrix-8.12.1.jar:8.12.1] daily_update_service_1 | at com.netflix.hystrix.HystrixCommand$1.call(HystrixCommand.java:294) ~[hystrix-core-1.4.21.jar:1.4.21] daily_update_service_1 | … 21 common frames omitted daily_update_service_1 […]