标签: netflix

Rx java运算符; 将数据流封装到自定义运算符中

让我们说我正以非常具体的方式观察一个观察者.

    resultObservable = anotherObservable.filter(~Filter code~).take(15);  
Run Code Online (Sandbox Code Playgroud)

我想创建一个自定义运算符,它结合了两个预定义的运算符,如filter和take.这样表现得像

    resultObservable = anotherObservable.lift(new FilterAndTake(15));  
Run Code Online (Sandbox Code Playgroud)

要么...

    resultObservable = anotherObservable.FilterAndTake(15);  
Run Code Online (Sandbox Code Playgroud)

到目前为止,我很乐意编写一个可以执行此操作的特定操作符.我可以解除那个操作员.

但是,鉴于我目前对rx java的知识有限,这将涉及每次我需要在自定义运算符中使用它时重写take和filter功能.

这样做很好,但我宁愿重新使用由开源社区维护的预先存在的运营商,以及我创建的回收运营商.

还有一些东西告诉我,我对运营商和订户缺乏足够的了解.

有人可以推荐不是rx-java文档的教程吗?
我这样说是因为,虽然文档解释了一般概念,但它隔离了它们功能的概念和一般上下文,没有任何例子来激发RX java的更强大的应用程序.

所以特别是

我正在尝试将自定义数据流封装到代表性运算符中.这个功能是否存在?

java netflix reactive-programming rx-java

3
推荐指数
1
解决办法
1557
查看次数

Zuul反向代理语言理解

我和Zuul一起玩,但似乎有些根本我不明白.

根据文档(http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html),以下Zuul配置应该导致所有对"/ myusers"的http调用转发给"用户" "服务.

zuul:
  routes:
      users: /myusers/**
Run Code Online (Sandbox Code Playgroud)

我有类似的情况,但它根本不起作用.我的配置是:

zuul:
   route:
       stores: /california/**
Run Code Online (Sandbox Code Playgroud)

服务Id是"商店",它有一个名为"/ hello"的URL.当我点击:

 http://localhost:8765/california/hello, 
Run Code Online (Sandbox Code Playgroud)

我收到Spring Boot 404错误消息.但是,如果我用商店替换california,那么事情会很好,导致以下配置:

zuul:
   route:
       stores: /stores/**
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果我打电话

 http://localhost:8765/stores/hello, 
Run Code Online (Sandbox Code Playgroud)

事情很好.因此,看起来URL的前缀必须与服务的ID匹配.这是预期的行为吗?我错过了什么?

我正在使用Zuul 1.0.0.BUILD-SNAPSHOT.在aisde note上,我注意到发现客户端现在已经内置到Zuul中了.如果我不想运行Eureka,有没有办法禁用它?

reverse-proxy netflix spring-cloud netflix-zuul

3
推荐指数
1
解决办法
3725
查看次数

Zuul路由到HTTPS网址时出错

我有一个Spring Boot应用程序(最近为它启用了HTTPS +自签名证书),该应用程序已在Eureka中注册,并在Eureka仪表板中可见。

我们有一个Zuul Filter层,它可以获取用户请求,然后将其传递给Spring Boot应用程序。在通过HTTP访问该应用程序之前,此方法一直工作良好。但是,一旦启用HTTPS,zuul路由就会失败。

这是我的yaml文件中的Zuul路由配置。我的Zuul Route配置是否应该对启用HTTPS的URL / App进行任何特殊配置?

zuul:
  routes:
    ms:
       path: /app/**
       stripPrefix: true

    ms:   
      ribbon:
        ServerListRefreshInterval: 1000
        ConnectTimeout: 20000
        ReadTimeout: 20000
Run Code Online (Sandbox Code Playgroud)

这是异常堆栈跟踪(显示Zuul正在尝试路由到HTTP URL而不是HTTPS url)

Caused by: com.netflix.hystrix.exception.HystrixRuntimeException: msRibbonCommand failed and no fallback available.
    at com.netflix.hystrix.AbstractCommand$20.call(AbstractCommand.java:816) ~[hystrix-core-1.4.0-RC6.jar:na]
    at com.netflix.hystrix.AbstractCommand$20.call(AbstractCommand.java:798) ~[hystrix-core-1.4.0-RC6.jar:na]
    at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$1.onError(OperatorOnErrorResumeNextViaFunction.java:76) ~[rxjava-core-0.20.7.jar:na]
    at rx.internal.operators.OperatorDoOnEach$1.onError(OperatorDoOnEach.java:70) ~[rxjava-core-0.20.7.jar:na]
    at rx.internal.operators.OperatorDoOnEach$1.onError(OperatorDoOnEach.java:70) ~[rxjava-core-0.20.7.jar:na]
    at rx.Observable$ThrowObservable$1.call(Observable.java:10493) ~[rxjava-core-0.20.7.jar:na]
    at rx.Observable$ThrowObservable$1.call(Observable.java:10483) ~[rxjava-core-0.20.7.jar:na]
    at rx.Observable.unsafeSubscribe(Observable.java:8591) ~[rxjava-core-0.20.7.jar:na]
    at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$1.onError(OperatorOnErrorResumeNextViaFunction.java:77) ~[rxjava-core-0.20.7.jar:na]
    at rx.internal.operators.OperatorMap$1.onError(OperatorMap.java:48) ~[rxjava-core-0.20.7.jar:na]
    at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:318) ~[hystrix-core-1.4.0-RC6.jar:na]
    at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:310) ~[hystrix-core-1.4.0-RC6.jar:na]
    at rx.Observable$2.call(Observable.java:173) ~[rxjava-core-0.20.7.jar:na]
    at rx.Observable$2.call(Observable.java:166) ~[rxjava-core-0.20.7.jar:na] …
Run Code Online (Sandbox Code Playgroud)

netflix netflix-eureka netflix-zuul

3
推荐指数
1
解决办法
1万
查看次数

更新了Netflix电视节目列表

是否可以随时播放电视节目的最新清单Netflix

我想获得一个公共URL,我可以访问该URL以接收带有列表的JSONo XML对象?

我对Netflix不太了解,所以不知道是否所有国家都可以同时播放所有电视节目,但是我对意大利用户可用的电视节目列表特别感兴趣。

谢谢

xml json netflix

3
推荐指数
1
解决办法
3954
查看次数

Spring Cloud Feign/Ribbon与企业代理

我想使用身份验证的公司代理后面的外部世界使用REST服务.

如何配置Spring Boot + Spring Cloud Feign/Ribbon以使用我们的代理?

proxy netflix spring-boot netflix-feign netflix-ribbon

3
推荐指数
1
解决办法
3000
查看次数

Java Spring-boot 微服务异常处理

Java 异常处理细分为错误、已检查异常和未检查异常。这个问题是关于例外的。

正常的 Java 异常处理是为已检查的异常扩展 Exception 类,并通过考虑异常层次结构来根据需要处理这些异常。

例如:

public class ExceptionA extends Exception {}

public class RunClass {

    public static void main() {
        try {
            RunClass runClass = new RunClass();
            runClass.doSomething();
        } catch(ExceptionA eA) {
            // Do ExceptionA related resolutions.
        } catch(Exception e) {
            // Do Exception related resolutions.
        }
    }

    public doSomething() throws ExceptionA {
        throw new ExceptionA();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我看到了主要的 Spring 书籍,甚至在 Internet 教程中提到了 Spring-boot,并且在微服务的上下文中,即使使用 @ControllerAdvice 也总是从 RuntimeException 类扩展。

这明显违反了 Java 异常处理基础。但是仍然有一个说法是,它被扩展为 RuntimeException 因为这个异常是由@ExceptionHandler 方法处理的,并且它是在运行时生成和处理的。

尽管如此,由于 RuntimeException 的这个扩展使得编译时异常处理跟踪不可见,并且很难追溯异常是如何抛出的。由于这些原因,我仍然相信,遵循基本的Java已检查和未检查异常处理概念仍然使用@ExceptionHandler方法。 …

java spring-mvc netflix spring-boot microservices

3
推荐指数
1
解决办法
5285
查看次数

向来自 Netflix Zuul 预过滤器的请求正文添加一个新字段

我正在尝试在 Zuul 预过滤器中向请求正文添加一个新字段。

我正在使用这里的 Neflix 的 Zuul 示例项目之一,我的过滤器的实现与UppercaseRequestEntityFilter此示例非常相似。

我能够应用诸如大写的转换,甚至完全修改请求,唯一不方便的是我无法修改长度超过正文请求原始长度的正文请求的内容。

这是我的过滤器的实现:

@Component
public class MyRequestEntityFilter extends ZuulFilter {
    public String filterType() {
        return "pre";
    }

    public int filterOrder() {
        return 10;
    }

    public boolean shouldFilter() {
        RequestContext context = getCurrentContext();
        return true;
    }

    public Object run() {
        try {
            RequestContext context = getCurrentContext();
            InputStream in = (InputStream) context.get("requestEntity");
            if (in == null) {
                in = context.getRequest().getInputStream();
            }

            String body = StreamUtils.copyToString(in, Charset.forName("UTF-8"));

            body = body.replaceFirst("qqq", "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq");

            // …
Run Code Online (Sandbox Code Playgroud)

filter netflix netflix-zuul

3
推荐指数
1
解决办法
1724
查看次数

如何在 iOS 应用程序中阻止屏幕截图

我想构建一个应用程序,我想在其中阻止用户在 Netflix 应用程序中的屏幕截图,它应该像在 Netflix 中一样返回一个黑色的屏幕截图。现在我无法得到任何关于此的信息。

我不知道 Netflix 是如何处理这个问题的?

有什么方法可以检测块中捕获的图像,我们可以将其遮住吗?

screenshot netflix ios

3
推荐指数
1
解决办法
1783
查看次数

通过NetFlix odata结果进行分页

我正在玩Netflix odata服务,以更好地了解如何使用odata数据.

在VS 2010中,我添加了对NetFlix odata服务的服务引用.然后我写了这个代码,它只返回一些数据.

        var cat = new NetflixCatalog(new Uri("http://odata.netflix.com/v1/Catalog/"));

        var x = from t in cat.Titles
                where t.ReleaseYear == 2009
                select t;

        foreach (Title title in x)
        {
            ProcessTitle(title);
        }
Run Code Online (Sandbox Code Playgroud)

我查看了为调用生成的uri并在浏览器中运行它.它返回的原子进给最后有这个元素

  <link rel="next" href="http://odata.netflix.com:20000/v1/Catalog/Titles()/?$filter=ReleaseYear%20eq%202009&amp;$orderby=AverageRating%20desc&amp;$skiptoken=3.9D,'BVqRa'" />
Run Code Online (Sandbox Code Playgroud)

这是一个将检索下一组数据的链接(由Netflix完成的分页).我的问题是如何让我的代码访问下一批数据和下一批数据?

netflix wcf-data-services odata

2
推荐指数
1
解决办法
2114
查看次数

如何获取 Netflix DGS 解析器中的标头信息

我们可以如下编写查询解析器层

@DgsData(parentType = "Query", field = "answersByQuestionUuid")
    public List<Answer> answersByQuestionUuid(@InputArgument("questionUuid") UUID questionUuid,
                                              @InputArgument("enhancedContent") boolean enhancedContent,
                                              @InputArgument("templateName") String templateName)  {
        if (enhancedContent) {
            return getStructuredAnswersByQuestionUUID(questionUuid.toString(), templateName);
        }
        return getAnswersByQuestionUUID(questionUuid);
    }
Run Code Online (Sandbox Code Playgroud)

如何在解析器中获取 HTTP 标头。

netflix graphql graphql-java netflix-dgs

2
推荐指数
1
解决办法
2823
查看次数