Go-kit 入门(四)服务调用

调用服务

存在“真空”(即极其独立,与其他任何服务无互相调用的关系)中的服务是罕见的。而我们常见的是,我们需要调用其他的服务。这也是 Go kit 的闪光点 ,我们提供了 传输中间件 机制来解决可能出现的很多问题。

下面我们将实现一个代理功能的中间件,作为一个服务中间件。在这里我们只代理一个方法,Uppercase。

客户端端点

我们已经有了一个跟我们所知道的完全相同的端点,但是我们将使用它来调用一个请求,而不是提供服务。按照这种方式来使用它的时候,我们称它为客户端端点。为了调用客户端端点,我们需要做一些简单的转换。

现在,我们为了构造一个代理中间件,我们将一个代理URL字符串转换为一个端点。加入我们使用 HTTP 协议之上的 JSON,我们可以使用 transport/http 包中的一个辅助(helper)函数。

服务发现和负载均衡

如果我们只使用一个远程的服务就好了。但是实际上,我们往往 会有很多个服务实例。我们希望通过一些服务发现算法来发现它们,然后将我们的负载分散到它们上面,并且如果这些实例中的任何一个变得糟糕,我们能够处理它,并且不影响我们服务的可用性。

Go kit 为不同的服务发现系统提供了适配器,为了获取最新的服务实例集合,暴露端点个体。这些适配器被称为 发布器(publishers)。

在发布器内部,它使用一个私有的工厂函数,将被发现的每一个 host:port 字符串 转换成一个可用的端点。

目前,我们的工程方法,makeUppercaseEndpoint,只是直接请求 URL。但是,在工厂函数中加入一些安全的中间件方法是很重要的,比如 回路断路器 和 限流器。

现在,我们已经有了一系列的端点,我们需要在其中选择一个。负载均衡器包装了 发布器,并且从端点集合中选择其中的某一个。Go kit 提供了一组基本的负载均衡器,并且,如果你希望更多的高级的算法,也可以很容易的自己来写一个。

现在,我们可以根据一下算法来选择端点。我们能够使用它为消费器提供一个单一的、逻辑的可靠的端点。通过重试的策略包装负载均衡器,并且返回一个可用的端点。重试的策略可以将一个失败的请求进行重试,直到达到最大的可重试次数或是达到超时时间。

现在,让我们将最后的代理中间件加入到代码中。为了简洁,我们假设用户会为逗号(,)分隔的多个实例端点指定一个标记。

stringsvc3

截止目前,这个完整的服务是 stringsvc3$ go get github.com/go-kit/kit/examples/stringsvc3 $ stringsvc3 -listen=:8001 & listen=:8001 caller=proxying.go:25 proxy_to=none listen=:8001 caller=main.go:72 msg=HTTP addr=:8001 $ stringsvc3 -listen=:8002 & listen=:8002 caller=proxying.go:25 proxy_to=none listen=:8002 caller=main.go:72 msg=HTTP addr=:8002 $ stringsvc3 -listen=:8003 & listen=:8003 caller=proxying.go:25 proxy_to=none listen=:8003 caller=main.go:72 msg=HTTP addr=:8003 $ stringsvc3 -listen=:8080 -proxy=localhost:8001,localhost:8002,localhost:8003 listen=:8080 caller=proxying.go:29 proxy_to="[localhost:8001 localhost:8002 localhost:8003]" listen=:8080 caller=main.go:72 msg=HTTP addr=:8080

高级话题

线程上下文

上下文对象用来在单个请求中携带那些需要跨越概念性边界的信息。在我们的例子中,我们还没有在业务逻辑中使用线程上下文。但是,这种方式几乎会永远都是一个好方案。它允许我们在业务逻辑和中间件中传递请求范围内的信息,并且对于复杂的任务(比如,分布式系统的细粒度追踪信息)也是很必要的。

具体点来讲,这也意味着你的业务逻辑接口会这样:

 

请求跟踪

一旦你的基础设施增长超过一定的规模,在多个服务中跟踪请求是非常必要的,这样,你就能够分析并解决故障热点。参见 package tracing 获取更多信息。

创建一个客户端软件包

使用 Go kit 为你的服务创建一个客户端软件包是很可能的事情,让你的服务能够很容易对其他的 Go 程序进行调用。实际上,你的客户端package会提供你的服务接口,这个接口会使用指定的传输方式来调用远程服务。参见 package addsvc/client 作为参考例子.

其他例子

addsvc

addsvc 是原来的一个例子。它公开 所有支持的传输方式 的系列操作。它完整地做了日志记录、仪表盘化,并且使用 Zipkin 来跟踪请求。同样,它也示范了如何创建和使用客户端package。它是一个非常棒的例子,为 Go kit 服务提供了完整的功能示例。

profilesvc

profilesvc 示范了如何使用 Go kit 来打造 REST 风格的微服务。

apigateway

apigateway 示范了如何实现一个 API 网关模式,通过 Consul 作为服务发现系统。

shipping

shipping 是一个完整的,真实的应用,由多个微服务组成,基于领域驱动设计原则。

|2|left
此条目发表在MircroService分类目录,贴了, 标签。将固定链接加入收藏夹。

Go-kit 入门(四)服务调用》有 31 条评论

  1. Stanleygew说:

    Для того, чтобы провести отпуск в Греции, следует получить соответствующую документацию, подробнее читайте на сайте gturs.com

  2. Charlestal说:

    только сейчас вы бесплатно можете найти все эко товары
    На доске я нашел для себя много полезного и важного в частности аквариум,рыбок и фильтра к нему.Кому что понадобится смотрите.
    Рекомендуйте друзья: размещяйте сами объявлния

    Купить корову
    Приглошаем всех к сотрудничеству: в любой садово- хозяйственной деятельности!!
    Администрация очень лояльная и продлевает бесплатную публикацию по просьбе!!!
    сами лично убедитесь!!! Гарантия 100%

  3. Michaeldoupe说:

    A fascinating discussion is definitely worth comment. There’s no doubt that that you need to write more on this subject, it might not be a taboo matter but typically people do not discuss such subjects. To the next! Kind regards!!
    ——————————————
    http://megasto.com.ua

    f7rpf9Sg6L

  4. 为啥我又来,因为这里百看不厌!

  5. MichaelWaf说:

    It’s awesome to go to see this web site and reading the views of all colleagues concerning this post, while I am also eager of getting knowledge.
    ——————————————
    http://megasto.com.ua

    f7rpf9Sg6L

  6. ednaio2说:

    New sissy girls blog website
    girdle gf inflatable but plugs male chastity contract
    http://sissyabuse.blogporn.in/?profile.mariela
    foam rollers for hair ЩЃЫЊЩ„Щ… Ш¬ШЇЫЊШЇ ШіЩ€ЩѕШ± Ш§ЫЊШ±Ш§Щ†ЫЊ female masks realitsic clothes of uk breast success reviews handmade baby clothes uk sustainable development of agriculture cannabis seeds in amsterdam

  7. Michaexike说:

    помощь должникам по кредиту
    В нашей многомиллионной стране количество банков превышает все разумные пределы, большая часть наших банков принадлежит иностранным компаниям и корпорациям, которым в своей стране кредитовать население под 60% годовых, никто не позволит. Наше государство и власть не собирается защищать свое население от финансового порабощения.
    Принцип работы нашего государства и власти:

    Юрист по долгам
    Обеспечивать в стране экономическую ситуацию, при которой покупка квартиры или машины без кредита была бы невозможна;
    Заработная плата рядового гражданина не должна превышать 35 тыс. рублей (при таком доходе любая нестандартная ситуация вынуждает бежать в банк за кредитом);
    Поддерживать работу банковской системы на деньги налогоплательщиков, чтобы потом эти налогоплательщики страдали от действий банков;
    Законодательная база регулирующая сферу кредитования.
    В нашей стране закон никогда не стоит на стороне должника, так как владельцы банков как раз авторы большинства законопроектов.
    Наша компания создавалась, для помощи и защиты простых обывателей от действий кредитных организаций нашей Великой страны. Мы не сотрудничаем с банками и кредитными организациями, в отличии от большинства юристов по кредиту.
    Каждому обратившемуся к нам Клиенту мы гарантируем:
    Выбрать оптимальную стратегию разрешения проблемы;
    Оставить Ваше имущество в собственности и сберечь от описи и ареста;
    Держать Вас в курсе всех событий;
    Защитить Вашу честь и достоинство на всех этапах решения проблемы.

  8. Michaexike说:

    помощь должникам по кредиту
    В нашей многомиллионной стране количество банков превышает все разумные пределы, большая часть наших банков принадлежит иностранным компаниям и корпорациям, которым в своей стране кредитовать население под 60% годовых, никто не позволит. Наше государство и власть не собирается защищать свое население от финансового порабощения.
    Принцип работы нашего государства и власти:
    Защита от коллекторов
    Обеспечивать в стране экономическую ситуацию, при которой покупка квартиры или машины без кредита была бы невозможна;
    Заработная плата рядового гражданина не должна превышать 35 тыс. рублей (при таком доходе любая нестандартная ситуация вынуждает бежать в банк за кредитом);
    Поддерживать работу банковской системы на деньги налогоплательщиков, чтобы потом эти налогоплательщики страдали от действий банков;
    Законодательная база регулирующая сферу кредитования.
    В нашей стране закон никогда не стоит на стороне должника, так как владельцы банков как раз авторы большинства законопроектов.
    Наша компания создавалась, для помощи и защиты простых обывателей от действий кредитных организаций нашей Великой страны. Мы не сотрудничаем с банками и кредитными организациями, в отличии от большинства юристов по кредиту.
    Каждому обратившемуся к нам Клиенту мы гарантируем:
    Выбрать оптимальную стратегию разрешения проблемы;
    Оставить Ваше имущество в собственности и сберечь от описи и ареста;
    Держать Вас в курсе всех событий;
    Защитить Вашу честь и достоинство на всех этапах решения проблемы.

  9. Charlestal说:

    Привтсвую вас дорогие форумчане
    На доске я нашел для себя много полезного и важного в частности аквариум,рыбок и фильтра к нему.Кому что понадобится смотрите.
    Рекомендуйте друзья: размещяйте сами объявлния

    Продать растения на дачу
    Приглошаем всех к сотрудничеству: в любой садово- хозяйственной деятельности!!
    Администрация очень лояльная и продлевает бесплатную публикацию по просьбе!!!
    сами лично убедитесь!!! Гарантия 100%

  10. Robertmew说:

    Проверенная доска объявлений подробности здесь

    Проверенная доска объявлений

  11. Pingback引用通告: Buy generic cialis

  12. Pingback引用通告: Viagra or viagra

  13. JamesAdece说:

    Многие пользователи желают выбор материала, исходя из плотности материала. Но специалисты утверждают, что такой подход – неправильный. Объясняют это тем, что одни и те же материалы с одинаковыми показателями плотности могут обладать разной теплопроводностью. Подробнее читайте на сайте blitz-remont.ru

  14. Pingback引用通告: Cialis generique

  15. Pingback引用通告: Viagra 5mg prix

  16. Jeaunfona说:

    Order Kamagra Cialis Levitra Comment Viagra cialis without a doctor’s prescription Cialis 20 Mg Internet Pharmacy Top Pills Coupons Effetto Kamagra

  17. 增大网说:

    日看博客两三篇,每天生活乐无边!

  18. Pingback引用通告: Buy cialis

  19. Pingback引用通告: Cialis daily

  20. Pingback引用通告: Viagra from canada

  21. Diaabonse说:

    Doxycycline Worldwide Coр“в»t Priligy canadian pharmacy cialis 20mg Zithromax Single Dose Chlamydia

  22. Michaexike说:

    помощь должникам по кредиту
    В нашей многомиллионной стране количество банков превышает все разумные пределы, большая часть наших банков принадлежит иностранным компаниям и корпорациям, которым в своей стране кредитовать население под 60% годовых, никто не позволит. Наше государство и власть не собирается защищать свое население от финансового порабощения.
    Принцип работы нашего государства и власти:

    Как подать на банкротство
    Обеспечивать в стране экономическую ситуацию, при которой покупка квартиры или машины без кредита была бы невозможна;
    Заработная плата рядового гражданина не должна превышать 35 тыс. рублей (при таком доходе любая нестандартная ситуация вынуждает бежать в банк за кредитом);
    Поддерживать работу банковской системы на деньги налогоплательщиков, чтобы потом эти налогоплательщики страдали от действий банков;
    Законодательная база регулирующая сферу кредитования.
    В нашей стране закон никогда не стоит на стороне должника, так как владельцы банков как раз авторы большинства законопроектов.
    Наша компания создавалась, для помощи и защиты простых обывателей от действий кредитных организаций нашей Великой страны. Мы не сотрудничаем с банками и кредитными организациями, в отличии от большинства юристов по кредиту.
    Каждому обратившемуся к нам Клиенту мы гарантируем:
    Выбрать оптимальную стратегию разрешения проблемы;
    Оставить Ваше имущество в собственности и сберечь от описи и ареста;
    Держать Вас в курсе всех событий;
    Защитить Вашу честь и достоинство на всех этапах решения проблемы.

  23. Archiesounc说:

    Подарок руководителю, крупному бизнесмену, серьезному и ответственному человеку зрелого возраста должен быть солидным, запоминающимся, весомым, и недешевым, однозначно. Подробнее об этом читайте на сайте fi-hi.ru

  24. ericamm4说:

    My novel number
    free download android mobile games free role playing games free downloading xxx free call application for android download apk jogos
    http://sex.games.market.pornpost.in/?register.estefani
    dictionary for scrabble popular mobile market android app download app download app games

  25. Justinrok说:

    Конкуренцию стандартным петельным межкомнатным открывающимся конструкциям составляют более функциональные решения – сдвижные двери. Они так же включают в себя полотна из древесины или иного материала, вот только главные элементы блока движутся по прямым линиям (направляющим) параллельно стене. Читайте об этом подробнее на сайте akro-spb.ru

  26. cocaporn说:

    Excellent and high-quality sex movies absolutely free and easy to watch on any device, just check it out!

  27. DomAccine说:

    Generico Priligy Funziona Cheap Generic Viagra Lowest Prices tadalafil cialis from india Tretinoin Cream 0.1 Buy Viagra With Debit Card

发表评论

电子邮件地址不会被公开。 必填项已用*标注