Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 30720 сообщений
Cообщения с меткой

google - Самое интересное в блогах

Следующие 30  »
rss_rss_hh_new

Как быстро подключить google proto3 к вашему spring (boot) web проекту

Среда, 29 Июня 2016 г. 16:06 (ссылка)

Краткое описание как подключить Google Protocol Buffers / Proto3 к вашему Spring проекту





Spring Boot: позволяет быстро разрабатывать stand-alone веб приложения которые вы можете «просто» запустить с минимумом настроек.

Google proto3: легкий, гибкий, автоматический механизм сериализации данных.



Эта статья объяснит как быстро соединить эти технологии вместе. Ознакомиться с технологиями вы можете самостоятельно пройдя по ссылкам в материалах.







Для того чтобы создать новый spring-boot проект вы можете воспользоваться Spring Initializr веб сайтом.

Я выбрал Web как dependency, проект генерировал для maven.



Настройка модуля моделей




В модуле моделей будут находится только файлы с расширением *.proto и автоматически сгенерированные java классы



Proto* файлы помещаются в src/main/proto

Для примера я создал health.proto



package demo.domain;

option java_package = "demo.domain";
option java_outer_classname = "HealthCheckProtos";

message HealthCheck {

required string response = 1;
required string timestamp = 2;
required string version = 3;

}




На основании которого будет генериться java класс HealthCheckProtos который я буду использовать в Spring контроллере.



Необходимая конфигурация pom.xml





4.0.0


demo
spring-boot-proto3
0.0.1-SNAPSHOT


spring-boot-proto3-domain
jar

spring-boot-proto3-domain
Domain module


${project.basedir}/src/main/proto
${project.build.directory}/generated-sources




com.google.protobuf
protobuf-java


com.googlecode.protobuf-java-format
protobuf-java-format







org.apache.maven.plugins
maven-dependency-plugin
2.10


copy-protoc
generate-sources

copy




com.google.protobuf
protoc
${protobuf.version}
windows-x86_64
exe
true
${project.build.directory}








org.apache.maven.plugins
maven-antrun-plugin
1.8


exec-protoc
generate-sources






















run





org.codehaus.mojo
build-helper-maven-plugin
1.9.1


add-classes
generate-sources

add-source



<$ource>${protobuf.output.directory}














Здесь впринципе все стандартно, кроме: classifier у protoc и protoc.filename у maven-antrun-plugin, они к сожалению привязаны к системе на машине сборки, я собирал на Win X64



Настройка веб модуля




К молулю подключаются spring boot и доменный модуль с классами proto3





4.0.0


demo
spring-boot-proto3
0.0.1-SNAPSHOT


spring-boot-proto3-web
jar

spring-boot-proto3-web
Web module



org.springframework.boot
spring-boot-starter-web


demo
spring-boot-proto3-domain






org.springframework.boot
spring-boot-maven-plugin









После этого необходимо добавить ProtobufHttpMessageConverter к HttpMessageConverter



package demo.config;

import java.util.HashMap;
import java.util.List;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
@EnableWebMvc
public class WebConfiguration extends WebMvcConfigurerAdapter {

/**
* {@inheritDoc}
*/
@Override
public void configureMessageConverters(List> converters) {
converters.add(protobufHttpMessageConverter());
}

/**
* {@inheritDoc}
*/
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.replaceMediaTypes(new HashMap<>()) //
.favorPathExtension(false) //
.defaultContentType(ProtobufHttpMessageConverter.PROTOBUF);
}

@Bean
ProtobufHttpMessageConverter protobufHttpMessageConverter() {
return new ProtobufHttpMessageConverter();
}

}




Для примера я создал контроллер который бы показывал статус приложения с использованием модели сгенерированной при помощи proto3




package demo.web;

import java.time.LocalDateTime;

import demo.domain.HealthCheckProtos;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HealthCheckController {

@Value("${health.controller.response}")
private String response;
@Value("${health.controller.version}")
private String version;

@RequestMapping("/ping")
public HealthCheckProtos.HealthCheck get() {
return HealthCheckProtos.HealthCheck.newBuilder() //
.setResponse(response) //
.setTimestamp(LocalDateTime.now().toString()) //
.setVersion(version) //
.build();
}

}





При генерации классов proto3 так же генерирует билдеры которые вы можете использовать для создания модели.



Пример запроса к контроллеру




" alt=«image»/>



Так же добавив header «Accept»:«application/json» вы можете получить тот же ответ сериализованный в json.



Использовался следующий материал:


Исходный код проекта можно скачать тут: bitbucket.org/wickiup/spring-boot-proto3

Быстрый старт со spring boot: projects.spring.io/spring-boot

Быстрый старт с proto3: developers.google.com/protocol-buffers/docs/javatutorial
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/304396/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
vsemmoney

Нацеленное на пользователей Facebook вредоносное ПО распространяется через Google Chrome - Безопасность - Форум о заработке в интернете и инвестициях

Среда, 29 Июня 2016 г. 22:47 (ссылка)
vsemmoney.ru/topic/3883-nat...snoe-po-r/


Нацеленное на пользователей Facebook вредоносное ПО распространяется через Google Chrome - отправлено в Безопасность:

 

В ходе вредоносной кампании жертва получает уведомления от Facebook якобы о том, что ее упомянули в комментарии.



Facebook является одной из социальных сетей с наибольшей аудиторией, поэтому привлекает всевозможных киберпреступников. Как сообщается на сайте Information Security Stack Exchange, в настоящее время пользователей соцсети атакует вредоносное ПО...

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Сточные воды как охладитель

Вторник, 28 Июня 2016 г. 13:05 (ссылка)

Как на счет того, чтобы для охлаждения серверов в жару использовать сточные воды? Знаем, умеем, практикуем — компания Apple недавно заявила о своем намерении проспонсировать строительство обьекта по очистке сточных вод в городе Праймвилль (штат Орегон, США). В этом городке уже есть дата-центр компании, согласно информационному агенству Oreon Live, он считается самым крупным потребителем воды в этом регионе.







Идея постройки уникальных систем водоочистки рядом с ЦОД не новая. Многие компании уже спроектировали и построили такие системы, с помощью таких систем можно использовать переработанную канализационную воду для охлаждения серверных ферм с помощью этой же воды. Все это экономит деньги компаний на счетах за электроенергию, при этом еще и снижает негативное влияние инфраструктуры дата-центра на окружающую среду. Уже не раз поднимался вопрос о том, что для работы серверных ферм используется очень большое количество воды, особенно остро вопрос был поднят в прошлом году, из-за засухи в Калифорнии.







На данный момент политика компании Apple нацелена на разработку систем, которые помогут сократить водопотребление. Об этом было заявлено в докладе по Корпоративной ответственности в области защиты окружающей среды (Environmental Responsibility Report 2016). Откровенно сказать, доклад не освещает всю картину, ведь многие помещения для размещения своих инфраструктур компания арендует у сторонних колокейшен-провайдеров. В докладе были упомянуты 4 серверные фермы компании в Мэйдене, штат Северная Каролина, Ньюарке, штат Калифорния, Рино, штат Невада и Праймвилле, штат Орегон.





Мэйден, штат Северная Каролина



Постоянный рост и расширение уже существующих кампусов дата-центров компании приводит к всевозрастающему водопотреблению. В 2012 году Apple использовала немного больше чем 190 млн. литров воды на потребности серверных ферм, водопотребление корпоративных офисов компании составило 850 млн. литров воды. За последние три года потребление воды ЦОДами Apple выросло в три раза. В 2015 году компанией было использовано 2169 млн литров воды, 28 процентов из которых пошли на покрытие нужд серверных ферм.



Apple, стремясь уменьшить неблагоприятное влияние на окружающую среду, намерена минимизировать водопотребление. До недавнего времени с этой целью в дата-центрах использовались системы охлаждения с инновационной конструкцией, ориентированной на максимально интенсивное использование наружного воздуха вместо водяных чиллеров. Система охлаждения серверной фермы компании Apple в Мэйдене яркий пример тому. Данная система обеспечивает 35 кратную рециркуляцию воды, что в свою очередь снижает потребление жидкости на 20 процентов.



Строительство завода по переработке сточных вод в Праймвилле



— как выход со сложившейся ситуации. Это первый подобный проект, финансируемый компанией. За 2015 год местная серверная ферма (общей площадью 31,5 тыс. квадратных метров) израсходовала 100 млн. литров воды, и ожидается, что площадь будет увеличиваться, ведь на территории кампуса сейчас ведутся строительные работы с целью его расширения.



Очистные сооружения будут осуществлять забор воды из канализационной системы города, после чего очищать ее в достаточной степени для использования в системах испарительного охлаждения дата-центров. Представители Apple уверяют, что строительство завода по переработке сточных вод позволит минимизировать риск возникновения дефицита воды, а также значительно сократить уровень негативного влияния серверной фермы на состояние окружающей среды.





серверная ферма Google в Джорджии



Такую систему охлаждения своих дата-центров уже не один год практикует компания Google. Серверная ферма Google в Джорджии была запущена в 2007 году, изначально использовала для охлаждения питьевую воду. Позже, в целях экономии и чтобы снизить влияние своей инфраструктуры на окружающую среду, совместно с местными органами власти, компания создала систему, в которую направляется 30% очищенных сточных вод из близлежащих очистительных сооружений, которые сбрасывались бы в реку Чаттахучи.



Для охлаждения ЦОД Агентства национальной безопасности США в Форт Миди, строительство которого началось в 2014 году, также будет использоваться около 18 млн. литров очищенных сточных вод с коммунального предприятия в Мериленде, после чего эту воду планируется сбрасывать в реку. NSA потратило 40 млн. долларов на постройку насосной станции для систем охлаждения серверной фермы.
Original source: habrahabr.ru.

https://habrahabr.ru/post/303940/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<google - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda